GitHub/모델 컨텍스트 프로토콜

12 개의 포스트

github3분 읽기큐레이션 요약

코더에서 오케스트레이터로: 에이전트가 개발자의 역할을 어떻게 바꾸는가

한 번의 프롬프트로 코드를 만드는 시연과, 코드를 반복적·안전하게 배포하는 시스템을 구축하는 일은 다르다. AI 에이전트 시대의 개발자는 단순히 코드를 작성하는 사람을 넘어, 코드 생성부터 검증·리뷰·배포까지의 흐름을 설계하고 통제하는 ‘오케스트레이터’가 되어야 한다. 에이전트의 유연성과 CI·브랜치 보호·리뷰 같은 결정론적 통제를 결합해야 팀이 신뢰할 수 있는 개발 시스템을 만들 수 있다. ## 일회성 프롬프트에서 반복 가능한 워크플로로 - 한 번의 프롬프트는 빠르게 결과를 만들 수 있지만, 매번 안정적으로 재현되는 산출물을 보장하지는 않는다. - 실제 개발에는 다음 요소가 연결된 워크플로가 필요하다. - 작업을 시작하는 이벤트와 트리거 - 에이전트가 수행할 작업의 범위 - 코드 검증과 보안 검사 - 리뷰 및 승인 절차 - 안전한 병합과 배포를 위한 통제 - 따라서 개발자는 코드뿐 아니라 코드가 제안되고, 검증되고, 리뷰되고, 배포되는 시스템 자체를 설계해야 한다. ## 이벤트 기반 에이전트 흐름 - 익숙한 저장소 이벤트를 에이전트 작업의 시작점으로 활용한다. - 이슈에 특정 라벨 추가 - 예약된 야간 워크플로 실행 - 기타 GitHub 저장소 이벤트 - 이벤트가 GitHub Actions 워크플로를 실행하고, 사전에 범위를 정한 작업을 Copilot 에이전트가 수행한다. - 에이전트가 만든 결과는 풀 리퀘스트에 기록된다. - 이후 자동화된 검증 절차가 결과를 평가한다. - 린트 - 테스트 - 보안 스캔 - 빌드 검증 ## 에이전트의 유연성과 결정론적 통제 - 에이전트는 모호하고 맥락이 많은 작업을 처리하는 데 적합하다. - 반면 다음과 같은 규칙 기반 장치는 예측 가능하고 반복 가능한 품질 신호를 제공한다. - CI 검사 - CODEOWNERS - 필수 리뷰 - 브랜치 보호 규칙 - 브랜치 보호는 검증되지 않은 변경이나 승인되지 않은 병합을 막는다. - 위험도가 높은 변경에는 사람의 판단이 반드시 개입되도록 리뷰 요건을 설정할 수 있다. - 팀이 에이전트를 신뢰하려면 에이전트의 자율성을 무제한으로 허용하기보다, 명확한 결정론적 경계 안에서 운영해야 한다. ## 개발자의 역할 변화 - 개발자는 여전히 코드를 작성하지만, 동시에 다음을 책임진다. - 어떤 이벤트가 에이전트를 실행할지 정의 - 에이전트의 권한과 작업 범위 제한 - 에이전트와 검증·리뷰 단계 사이의 인계 설계 - 사람의 판단이 필요한 지점 결정 - GitHub Copilot은 이러한 자동화와 에이전트 운영을 한곳에서 관리하는 제어 평면 역할을 한다. - Copilot cloud agent 워크플로, GitHub Actions의 Copilot CLI, MCP를 통한 외부 도구·컨텍스트 연동은 같은 성숙 경로에서 선택할 수 있는 구현 방식이다. ## 작은 범위에서 시작하기 - 처음부터 전체 개발 프로세스를 자동화하기보다 범위가 명확하고 위험이 낮은 작업 하나를 선택하는 것이 좋다. - 예시: - 이슈 분류 - 문서와 테스트의 동기화 - 단순 유지보수 변경 - 기존 소프트웨어 개발 인프라에 Copilot을 단계적으로 도입하고, 실제로 필요한 다음 자동화 단계를 확인하며 확장한다. 실용적으로는 에이전트에게 제한된 권한을 부여하고, 모든 변경을 풀 리퀘스트와 자동 검사를 거치게 하는 방식이 적합하다. 즉, AI가 코드를 대신 작성하는 것보다 중요한 것은 사람이 통제 가능한 검증·승인·배포 체계를 설계하는 일이다.

원문 읽기(새 탭에서 열림)
github4분 읽기큐레이션 요약

모델과 작업별 GitHub Copilot 에이전틱 하니스의 성능 및 효율성 평가

GitHub은 모델 자체의 지능뿐 아니라 도구·컨텍스트·작업 흐름을 조율하는 에이전틱 하니스(harness)가 실제 성능을 좌우한다고 주장합니다. 동일한 모델과 작업을 기준으로 비교한 결과, GitHub Copilot 하니스는 모델 제공업체의 하니스와 비슷한 작업 해결률을 유지하면서 대부분 더 적은 토큰을 사용하는 것으로 나타났습니다. 따라서 하나의 하니스를 개선하면 Copilot CLI, 앱, 코드 리뷰, IDE 등 여러 제품 경험이 함께 향상된다는 결론입니다. ## 에이전틱 하니스의 역할 - 모델은 기본적인 추론 능력을 제공하지만, 하니스가 그 능력을 실제 작업에 적용하는 방식을 결정합니다. - 하니스는 다음 요소를 조율합니다. - 사용할 도구 - 모델에 제공할 컨텍스트 - 작업 실행 순서와 워크플로 - 메모리 및 MCP 서버 활용 - GitHub Copilot의 하니스는 Copilot SDK의 공통 구성 요소입니다. - Copilot CLI, Copilot 앱, Copilot 코드 리뷰, VS Code·Xcode 등 다양한 GitHub 및 Microsoft 경험에서 공유됩니다. - GitHub은 좋은 하니스의 조건으로 빠른 속도, 낮은 토큰 사용량, 예측 가능성을 제시합니다. ## 벤치마크 비교 방법 - 공개 벤치마크와 GitHub·Microsoft 대규모 코드베이스에서 도출한 내부 벤치마크를 함께 사용합니다. - 통제된 실험 결과를 실제 사용 지표와 온라인 실험으로 보완합니다. - 비교 시 다음 조건을 동일하게 맞췄습니다. - 같은 모델 - 같은 벤치마크 작업 - 동일하게 정규화한 컨텍스트 윈도우 - 동일한 추론 수준 - 동일한 도구 선택 및 MCP 서버 - 비교 대상은 다음과 같습니다. - GitHub Copilot CLI - Claude 모델의 기본 하니스인 Claude Code - GPT 모델의 기본 하니스인 Codex CLI - 평가 모델은 Claude Sonnet 4.6, Claude Opus 4.7, GPT-5.4, GPT-5.5입니다. ## 사용한 벤치마크 - **SWE-bench Verified** - 오픈소스 Python 저장소의 사람이 검증한 버그 수정 500개 - 코딩 에이전트의 대표적인 산업 표준 벤치마크 - **SWE-bench Pro** - 여러 단계의 추론과 광범위한 코드 변경이 필요한 어려운 작업 - 실제 소프트웨어 엔지니어링에 가까운 복잡한 문제를 평가 - **SkillsBench** - 에이전트가 스킬을 얼마나 효과적으로 사용하고 호출하는지 평가 - **TerminalBench** - 개발자가 사용하는 명령줄·터미널 기반 작업 수행 능력 측정 - **Win-Hill** - Windows 컨테이너에서 실행되는 내부 벤치마크 - 운영체제와 실행 환경이 달라져도 성능이 유지되는지 검증 ## 토큰 효율 - 동일한 모델과 작업을 사용했을 때 Copilot 하니스는 대부분의 설정에서 더 적은 토큰을 소비했습니다. - 토큰 사용량이 줄었음에도 전반적인 작업 완료율은 다른 모델 제공업체 하니스와 비슷한 수준이었습니다. - Claude Sonnet 4.6과 Opus 4.7에서는 Copilot CLI가 비교된 모든 사례에서 더 나은 결과를 보였습니다. - GPT-5.4와 GPT-5.5에서도 대부분 Copilot CLI가 우세했지만, SWE-bench Verified에서는 각각 7%, 4% 낮은 성능을 기록했습니다. - 단순히 비용을 줄이는 것이 아니라, 작업 해결 능력을 유지하면서 토큰 소비를 낮추는 것이 핵심입니다. ## 작업 해결률 - 전체적으로 Copilot 하니스의 작업 해결률은 모델 제공업체 하니스와 대등했습니다. - SWE-bench Verified에서는: - Sonnet 4.6과 Opus 4.7에서 Copilot CLI가 더 높은 해결률을 보였습니다. - GPT-5.4와 GPT-5.5에서는 더 낮았습니다. - SWE-bench Pro에서는: - Sonnet 4.6에서만 Copilot CLI가 소폭 낮았습니다. - 나머지 모델에서는 더 나은 성능을 보였습니다. - SkillsBench에서는 Claude 모델에서 낮았지만 GPT 모델에서는 더 높았습니다. - Win-Hill에서는 모든 모델에서 같거나 더 나은 결과를 기록했습니다. - TerminalBench 2에서는: - Sonnet 4.6과 Opus 4.7에서 더 높았습니다. - GPT-5.5에서는 동률이었습니다. - GPT-5.4에서는 더 낮았습니다. - 저자들은 모델의 확률적 특성으로 인한 실행별 변동을 고려하면 이러한 차이는 실질적으로 “동등한 수준”이라고 해석합니다. ## 실행별 변동성과 비용 분석 - TerminalBench 2.0을 사용해 작업 해결률뿐 아니라 작업당 비용과 실행별 변동도 분석했습니다. - 벤치마크 결과는 한 번의 실행만으로 하니스 성능을 판단하기 어렵다는 점을 보여줍니다. - 같은 에이전트와 모델 조합도 실행마다 결과가 달라질 수 있습니다. - 평가에서는 더 많은 작업을 해결하면서 비용을 적게 쓰는 구성이 더 좋은 것으로 간주합니다. - Copilot CLI는 이러한 분석에서 모델 제공업체 하니스와 비교해 같거나 더 나은 해결률·토큰 효율을 보였습니다. ## 실용적인 의미 - 모델을 선택할 때 모델의 벤치마크 점수만 보지 말고 하니스의 도구 사용, 컨텍스트 관리, 토큰 효율도 함께 평가해야 합니다. - 여러 모델을 한 제품에서 사용해야 한다면, 특정 모델에 종속되지 않으면서 성능을 유지하는 공통 하니스가 유리합니다. - 실제 도입 전에는 SWE-bench 같은 표준 평가뿐 아니라 조직의 코드베이스와 터미널 작업을 반영한 내부 벤치마크를 반복 실행하는 것이 좋습니다. - 단일 실행 결과보다 해결률, 비용, 토큰 사용량, 실행 간 변동을 함께 비교해야 신뢰할 수 있는 판단을 내릴 수 있습니다.

원문 읽기(새 탭에서 열림)
github4분 읽기큐레이션 요약

내부 데이터 분석 에이전트를 구축한 방법

GitHub는 사내 데이터 웨어하우스에 자연어로 질문하면 SQL을 작성하고 결과를 해석해 주는 GitHub Copilot 기반 분석 에이전트 ‘Qubot’을 구축했다. Qubot은 대시보드나 정기 리포트의 대체재가 아니라, 데이터 모델·필터·쿼리 작성법을 몰라도 탐색적 분석을 수행하도록 돕는 도구다. 핵심 성공 요인은 데이터에 대한 구조화된 컨텍스트와 자동화된 평가 체계이며, 이를 통해 분석 정확도뿐 아니라 응답 속도도 크게 향상됐다. ## Qubot의 목적과 활용 범위 - GitHub의 여러 제품·엔지니어링 팀이 데이터 분석가의 도움 없이 제품 텔레메트리를 활용하도록 지원한다. - 사용자는 다음과 같은 탐색적 질문을 자연어로 입력할 수 있다. - 특정 기능의 유지율이 가장 높은 사용자 코호트는 무엇인가? - 지난주 특정 지표의 변화에 가장 큰 영향을 준 제품은 무엇인가? - 정기 보고서나 대시보드를 대체하지 않고, 데이터셋을 빠르게 이해하고 가설을 검증하는 데 초점을 둔다. - 데이터 분석 지원 요청을 줄이고, 데이터 웨어하우스를 사용해 본 적이 적은 직원도 의사결정에 필요한 데이터를 직접 탐색할 수 있게 한다. ## 세 가지 핵심 구성 요소 Qubot은 사용자 인터페이스, 컨텍스트 계층, 쿼리 엔진으로 구성된다. - **사용자 인터페이스** - Slack, VS Code, Copilot CLI에서 사용할 수 있다. - Slack에서는 채널에 질문을 올리면 GitHub.com에서 Copilot Cloud Agent가 실행된다. - 답변은 Slack에 바로 게시되며, 스레드에서 질문을 추가로 구체화할 수 있다. - 분석 결과는 Markdown 보고서로 작성되어 Pull Request에 저장된다. - VS Code와 Copilot CLI에서는 플러그인 설치 후 다른 에이전트·스킬·도구와 함께 사용할 수 있다. - **컨텍스트 계층** - 데이터의 관리 수준에 따라 서로 다른 정보를 제공한다. - Bronze 데이터에는 제품 팀이 제공한 이벤트 스키마와 메타데이터가 포함된다. - Silver 데이터에는 예시 쿼리, 사용 지침, 필수 필터 등이 포함된다. - Gold 데이터에는 해당 데이터셋을 소유한 팀이 정의한 비즈니스 규칙과 지표 정의가 포함된다. - ETL 파이프라인이 추가 신호와 파생 메타데이터를 자동으로 보강한다. - 에이전트는 실행 시점에 GitHub MCP Server를 통해 필요한 컨텍스트를 가져온다. - **쿼리 엔진** - GitHub의 주요 분석 엔진인 Kusto와 Trino를 MCP 서버로 연결한다. - Kusto는 최근 이벤트 데이터를 빠르게 탐색하는 데 적합하다. - Trino는 복잡한 조인과 장기간의 이력 분석에 적합하다. - 사용자가 엔진을 직접 선택하지 않아도 Qubot이 기본적으로 Kusto를 사용하고, 복잡한 질문에는 Trino로 자동 전환한다. ## 컨텍스트 에이전트와 지식 관리 - 컨텍스트 정보는 여러 저장소에 Markdown 형태로 관리된다. - 팀은 표준 템플릿을 사용하거나 관련 컨텍스트가 있는 저장소를 참조해 지식을 기여할 수 있다. - 컨텍스트 에이전트가 정보를 수집한 뒤 정리·정규화해 Qubot이 활용하기 쉬운 구조로 변환한다. - 데이터 모델 자체보다 데이터의 의미, 올바른 필터, 지표 정의, 사용 사례를 함께 제공하는 것이 에이전트의 분석 품질을 높이는 핵심이다. ## 자동화된 평가 프레임워크 - 컨텍스트나 에이전트 설정이 변경될 때마다 배포 전에 오프라인 평가를 수행한다. - 평가 대상은 정확도뿐 아니라 적절한 답을 찾는 데 걸리는 시간과 기존 기능의 회귀 여부다. - 평가 프레임워크는 다음 세 부분으로 구성된다. - **테스트 케이스**: 정답, 기준 SQL, 도메인, 난이도를 포함한 표준 질문 집합 - **실행 오케스트레이션**: GitHub CLI의 `gh agent-task create`를 이용해 테스트를 병렬 실행하고 JSON 결과를 저장 - **통계 집계**: 테스트별 완료율, 정확도, 평균·최소·최대 소요 시간을 계산 - 전체 과정은 테스트 정의 → 여러 차례 실행 → 결과 수집 → 통계 집계 → 설정 비교 순서로 진행된다. - 이를 통해 컨텍스트 추가나 에이전트 변경이 실제 품질 향상으로 이어지는지 검증할 수 있다. ## 도입 효과와 핵심 교훈 - Qubot은 수백 명의 사용자가 수천 건의 쿼리를 실행할 정도로 확산됐다. - 데이터·분석 Slack 채널에 반복적으로 들어오던 질문이 크게 줄었다. - 사용자는 간단한 질문을 직접 해결하고, 분석 전문가는 더 복잡한 문제에 집중할 수 있게 됐다. - Slack, VS Code, Copilot CLI를 함께 제공해 기술 수준과 업무 방식에 따른 진입 장벽을 낮췄다. - 실험 결과, 잘 구조화되고 큐레이션된 컨텍스트는 Qubot의 정확도를 높였을 뿐 아니라 올바른 답을 반환하는 속도도 약 3배 향상시켰다. - 따라서 데이터 문서, 지표 정의, 사용 규칙 같은 컨텍스트 자산을 단순한 문서가 아니라 분석 시스템의 핵심 구성 요소로 관리해야 한다. 실무적으로는 처음부터 모든 데이터를 자동 분석하려 하기보다, 자주 묻는 도메인부터 표준화된 컨텍스트와 기준 테스트를 구축하는 접근이 적합하다. 또한 여러 쿼리 엔진을 사용한다면 사용자가 엔진을 선택하지 않아도 되도록 에이전트가 질문 특성에 따라 자동 라우팅하도록 설계하는 것이 좋다.

원문 읽기(새 탭에서 열림)
github4분 읽기큐레이션 요약

각 토큰에서 더 많은 것을 얻기: Copilot이 컨텍스트 처리와 모델 라우팅을 개선하는 방법

GitHub Copilot은 에이전트형 작업이 길어질수록 단순히 토큰을 줄이는 것이 아니라, 반복되는 컨텍스트와 도구 정의를 효율적으로 재사용하고 작업에 맞는 모델을 선택해야 한다고 설명합니다. 이를 위해 VS Code에서는 프롬프트 캐싱과 지연된 도구 로딩을 개선하고, Auto 기능은 작업 난이도와 실시간 모델 상태를 바탕으로 적절한 모델로 라우팅합니다. 목표는 품질을 유지하면서 불필요한 비용과 지연을 줄이는 것입니다. ## 프롬프트 캐싱과 지연된 도구 로딩 - 긴 Copilot 세션에는 지침, 저장소 컨텍스트, 대화 기록, 도구 목록, 작업 상태 등 반복적으로 전달되는 정보가 많습니다. - **프롬프트 캐싱**은 반복되는 프롬프트 접두부의 모델 상태를 재사용해 매 요청마다 같은 내용을 다시 계산하지 않도록 합니다. - **도구 검색(tool search)**은 모든 도구의 전체 스키마를 처음부터 컨텍스트에 포함하지 않고, 모델이 필요할 때 관련 도구 정의만 불러옵니다. - MCP 도구, 터미널, 파일 조작, 워크스페이스 검색 등 도구가 많아질수록 이 방식의 효과가 커집니다. - 사용 가능한 도구의 범위는 넓게 유지하면서도, 현재 작업과 무관한 도구 정의가 매 턴마다 차지하는 토큰 비용을 줄일 수 있습니다. ## 작업별 모델 자동 선택 - Auto는 “현재 작업에 어떤 모델이 가장 적합한가?”를 자동으로 판단합니다. - 빠른 설명, 특정 파일의 간단한 수정, 여러 파일에 걸친 복잡한 변경은 요구되는 추론 수준이 서로 다르므로 동일한 모델을 사용할 필요가 없습니다. - 평가 결과 모든 작업에서 항상 최고 성능을 내는 단일 모델은 없었습니다. - 효율적인 모델이 더 적은 비용으로 같은 결과를 내는 경우가 많지만, 복잡한 추론이나 디버깅에서는 강력한 모델이 더 유리합니다. - Auto는 필요할 때만 더 강한 모델로 전환하고, 단순한 작업에는 효율적인 모델을 사용해 품질과 비용 사이의 균형을 맞춥니다. ## Auto의 라우팅 기준 Auto는 모델의 현재 상태와 작업의 특성이라는 두 가지 신호를 함께 사용합니다. - **실시간 모델 상태** - 모델의 가용성, 사용률, 응답 속도, 오류율, 비용을 동적으로 추적합니다. - 성능이 좋은 모델이라도 현재 과부하 상태이거나 응답 오류가 많다면 최적의 선택이 아닐 수 있습니다. - 따라서 작업을 처리할 능력뿐 아니라 현재 안정적으로 응답할 수 있는지도 고려합니다. - **HyDRA 기반 작업 인식 라우팅** - HyDRA는 추론 깊이, 코드 복잡도, 디버깅 난이도, 도구 오케스트레이션 필요성 등을 분석합니다. - 먼저 해당 작업의 품질 기준을 충족할 수 있는 모델들을 선별한 뒤, 그중 가장 적합한 모델을 선택합니다. - 게시글의 평가에서는 HyDRA가 품질과 비용 절감 수준을 조정할 수 있음을 보여줍니다. - 한 운영 지점에서는 Sonnet보다 높은 성능을 내면서 12.9% 비용을 절감했고, 다른 운영 지점에서는 품질을 균형 있게 유지하며 72.5%를 절감했습니다. - SWE-bench 평가에서 보수적 설정은 70.8% 해결률로 OpenRouter Auto와 동률을 기록하면서 3.3배 높은 절감 효과를 보였습니다. ## 캐시를 고려한 모델 전환 - 매 턴마다 모델을 바꾸면 유연성은 높아지지만, 기존 프롬프트 캐시가 깨져 오히려 비용이 증가할 수 있습니다. - 같은 모델을 계속 사용하면 대화의 프롬프트 접두부를 여러 턴에 걸쳐 재사용할 수 있습니다. - Auto는 다음과 같은 **자연스러운 캐시 경계**에서 주로 모델을 다시 선택합니다. - 첫 번째 요청: 아직 재사용할 캐시가 없는 시점 - 컨텍스트 압축(compaction) 이후: 이전 대화를 요약하면서 프롬프트 접두부가 초기화된 시점 - 그 사이에는 선택된 모델을 유지해 캐시가 축적되도록 합니다. - 즉, 모델 라우팅 자체의 이득뿐 아니라 모델 전환으로 발생하는 캐시 손실까지 함께 계산합니다. ## 여러 언어를 지원하는 라우팅 - Copilot은 영어뿐 아니라 다양한 언어로 사용되므로 라우팅 모델도 다국어 환경에서 작동해야 합니다. - 라우팅 모델은 CJK, 유럽 언어권 등을 포함한 16개 언어군의 대화 데이터로 학습되었습니다. - 19개 언어에서 추출한 VS Code Chat 텔레메트리 평가에서 언어군별 라우팅 정확도는 영어 기준선과 4포인트 이내의 차이를 보였습니다. - 언어군 사이에 통계적으로 유의미한 품질 격차도 나타나지 않았습니다. Copilot의 효율성을 높이려면 모든 정보를 매번 다시 보내거나 모든 작업에 가장 큰 모델을 사용하는 대신, 반복 컨텍스트는 캐시하고 도구는 필요할 때 불러오며 작업 난이도에 맞는 모델을 선택하는 것이 효과적입니다. 특히 긴 에이전트 세션에서는 모델 전환으로 캐시가 손실되지 않도록 하는 전략이 비용과 응답 속도 모두에 중요합니다.

원문 읽기(새 탭에서 열림)
github4분 읽기큐레이션 요약

GitHub 에이전틱 워크플로의 토큰 효율성 향상

GitHub Agentic Workflows는 반복 실행되는 CI 자동화인 만큼 토큰 비용이 누적되기 쉬우며, YAML과 실행 로그를 분석하면 이를 체계적으로 줄일 수 있다. GitHub는 토큰 사용량을 표준화해 수집하고, 감사·최적화 워크플로를 통해 불필요한 MCP 도구를 제거하거나 GitHub CLI로 대체했다. 그 결과 동작을 바꾸지 않고도 요청당 수천 토큰을 절약할 수 있었다. ## 토큰 사용량을 표준화해 기록 - Claude CLI, Copilot CLI, Codex CLI 등 에이전트 프레임워크마다 로그 형식이 달라 사용량 비교가 어려웠다. - 인증 정보를 에이전트에 직접 노출하지 않도록 사용하는 API 프록시를 활용해 모든 실행의 토큰 사용량을 한 형식으로 수집했다. - 각 워크플로는 `token-usage.jsonl` 아티팩트를 생성한다. - API 호출별 입력 토큰 - 출력 토큰 - 캐시 읽기·쓰기 토큰 - 모델과 제공업체 - 호출 시각 - 실행 로그와 이 데이터를 결합해 워크플로별 일반적인 토큰 소비 패턴과 이상 실행을 파악했다. ## 감사·최적화 워크플로로 자동 개선 - **Daily Token Usage Auditor** - 최근 실행의 토큰 사용량을 워크플로별로 집계한다. - 사용량이 급증한 워크플로, 비용이 큰 워크플로, 비정상적인 실행을 탐지한다. - 예를 들어 평소 4번의 LLM 턴으로 끝나던 작업이 18턴까지 늘어난 경우를 표시한다. - **Daily Token Optimizer** - 감사 결과가 나온 워크플로의 YAML과 최근 로그를 분석한다. - 불필요한 동작과 구체적인 최적화 방안을 GitHub Issue로 제안한다. - 감사·최적화 도구 자체도 에이전트 워크플로이므로 사용량을 함께 측정할 수 있고, 이를 통해 개선 작업이 반복되는 순환 구조를 만든다. ## 사용하지 않는 MCP 도구 제거 - LLM API는 상태를 유지하지 않기 때문에 MCP 도구의 함수명과 JSON 스키마가 매 요청에 포함되는 경우가 많다. - GitHub MCP 서버의 도구가 40개라면 매 턴마다 10~15KB의 스키마가 추가될 수 있다. - 실제로 두 도구만 사용하는 에이전트라면 나머지 38개 도구의 스키마는 매번 순수한 오버헤드가 된다. - 도구 설정과 실제 호출 기록을 대조하면 장기간 사용되지 않은 도구를 식별할 수 있다. - 스모크 테스트에서는 사용하지 않는 MCP 도구를 제거해 요청당 컨텍스트를 8~12KB 줄였고, 동작 변경 없이 실행당 수천 토큰을 절약했다. ## 데이터 조회를 GitHub CLI로 대체 MCP 호출은 단순한 데이터 조회에도 LLM의 판단 과정을 요구한다. - 에이전트가 도구를 선택하고 인자를 구성한 뒤 결과를 받는 과정 전체가 추가 LLM 호출이 된다. - 이 과정에서 도구 스키마, 인자 JSON, 응답 데이터가 모두 토큰을 소비한다. - 반면 `gh pr diff` 같은 GitHub CLI 명령은 결정적인 API 요청이므로 LLM 추론 단계가 필요 없다. GitHub는 두 가지 방식으로 MCP 데이터 조회를 CLI로 옮겼다. - **에이전트 실행 전 데이터 다운로드** - 항상 필요한 PR diff, 변경 파일 목록 등을 에이전트 시작 전에 `gh` 명령으로 가져온다. - 결과를 작업 공간 파일에 저장하고 에이전트가 파일을 읽도록 한다. - MCP 호출과 별도 추론 라운드트립을 제거하며, 에이전트가 Bash 도구를 활용해 데이터를 효율적으로 처리할 수 있다. - **에이전트 내부 CLI 프록시** - 실행 중 어떤 데이터를 가져올지 에이전트가 결정해야 하는 경우 사용한다. - 인증 토큰을 노출하지 않는 투명 HTTP 프록시가 CLI 요청을 GitHub API로 전달한다. - 에이전트는 `gh pr view --json` 같은 명령을 실행하고 구조화된 결과를 받는다. - 보안상 “에이전트에 비밀정보를 직접 제공하지 않는다”는 원칙을 유지하면서 토큰 사용량을 줄인다. ## 효율성 측정에서 고려할 요소 단순히 토큰 개수만 비교하면 최적화 효과를 정확히 판단하기 어렵다. - 모델별 토큰 가격이 다르다. - Claude Haiku와 Sonnet은 비슷한 토큰 수를 사용할 수 있지만 Haiku가 토큰당 약 4배 저렴하다. - 이를 반영하기 위해 모델과 토큰 종류에 가중치를 적용한 **Effective Tokens(ET)** 지표를 사용한다. ```text ET = m × (1.0 × I + 0.1 × C + 4.0 × O) ``` - `m`: 모델 비용 배수 - Haiku = 0.25 - Sonnet = 1.0 - Opus = 5.0 - `I`: 새로 처리한 입력 토큰 - `C`: 캐시에서 읽은 토큰 - `O`: 출력 토큰 - 출력 토큰은 입력 토큰보다 비용 영향이 크므로 4배 가중치를 적용한다. - 따라서 최적화가 토큰 수를 줄였는지뿐 아니라, 더 저렴한 모델을 사용했는지와 작업 품질을 유지했는지도 함께 평가해야 한다. 반복 실행되는 에이전트 워크플로는 먼저 사용량을 관측하고, 실제 사용 도구만 남기며, 결정적인 데이터 조회를 CLI나 사전 다운로드로 이동하는 방식이 효과적이다. 특히 MCP를 편리하다는 이유로 전체 등록하기보다 워크플로별 최소 도구만 구성하고, ET 같은 비용 반영 지표로 품질 저하 없이 최적화되는지 검증하는 것이 권장된다.

원문 읽기(새 탭에서 열림)
github3분 읽기큐레이션 요약

GitHub Copilot CLI로 개인용 정리 커맨드 센터 구축하기

여러 앱에 흩어진 업무 정보를 하나로 모으기 위해, GitHub 엔지니어 Brittany Ellich가 개인용 조직 관리 커맨드 센터를 만들었다. 이 프로젝트는 일상적인 디지털 파편화 문제를 해결하는 데 초점을 맞췄으며, GitHub Copilot을 기획과 구현 전반에 활용해 하루 만에 v1을 완성했다. 글은 작은 개인적 불편에서 출발해 AI 도구로 실제 생산성 도구를 만드는 과정을 소개한다. ## 디지털 파편화를 해결하는 개인용 커맨드 센터 - 여러 앱을 오가며 발생하는 컨텍스트 전환과 정보 분산을 해결하기 위해 중앙 집중형 작업 공간을 구축했다. - 사용자가 정보를 시각적으로 파악하고 사고하는 방식에 맞춘 “차분하고 시각적인 홈 화면”을 목표로 했다. - 캘린더, 업무 정보, 음성 비서 등 다양한 기능을 한곳에서 사용할 수 있도록 설계했다. ## 기획 후 구현하는 AI 협업 방식 - Brittany는 먼저 요구사항을 정리한 뒤 구현하는 `plan-then-implement` 방식을 사용한다. - 기획 단계에서 Copilot이 질문을 연속적으로 던지도록 해 다음 사항을 구체화했다. - 애플리케이션이 어떻게 동작해야 하는지 - 사용자가 어떤 흐름으로 기능을 이용하는지 - 구현에 필요한 요구사항과 우선순위 - 충분히 구체화된 계획을 Copilot에 전달하고, 이를 기반으로 실제 구현을 진행했다. - 이 방식 덕분에 다른 업무를 병행하면서도 아이디어에서 작동하는 v1까지 하루 만에 도달할 수 있었다. ## 동기·비동기 에이전트 활용 - 동기식 개발에는 VS Code의 Agent Mode를 사용한다. - 서로 충돌하지 않는 작업은 최대 2개의 에이전트 워크플로로 동시에 진행한다. - 감독이 필요한 작업은 VS Code에서 직접 처리하고, 다음과 같은 범위가 명확한 작업은 Copilot Cloud Agent에 맡긴다. - 버그 수정 - 기술 부채 정리 - 비동기적으로 처리 가능한 소규모 변경 - 이를 통해 집중적인 개발과 백그라운드 작업을 병렬화한다. ## 기술 스택과 프로젝트 공개 - 애플리케이션은 다음 기술로 구성됐다. - **Electron**: 크로스 플랫폼 데스크톱 애플리케이션 프레임워크 - **React**: UI 컴포넌트와 상태 관리 - **Vite**: 빠른 개발 서버와 Hot Module Replacement를 제공하는 빌드 도구 - **Tailwind CSS**: 유틸리티 기반 CSS 프레임워크 - **WorkIQ MCP**: Microsoft 365 데이터에 접근하기 위한 MCP 서버와 CLI - 초기 구현 대부분을 Agent Mode로 진행했기 때문에 Electron 자체를 깊이 학습하지는 않았다고 설명한다. - 다만 공개 저장소로 정리하는 과정에서는 직접 코드를 읽고 불필요한 코드를 제거했다. - 에이전트는 코드를 추가하는 데는 능숙하지만, 불필요한 코드를 삭제하고 저장소를 단순화하는 작업에는 상대적으로 소극적이라는 경험도 공유한다. - 프로젝트는 `brittanyellich/command-center-lite` 저장소에서 확인할 수 있다. ## 실행에 필요한 환경 - 직접 프로젝트를 실행하려면 다음 조건이 필요하다. - Node.js 18 이상 - WorkIQ 설정을 위한 GitHub Copilot CLI - 캘린더 동기화를 위한 Microsoft 365 계정 - 음성 비서 기능을 위한 ElevenLabs 계정 - 구체적인 설치 및 실행 절차는 프로젝트의 README에 정리되어 있다. ## 작은 불편에서 시작하는 개발 - 가장 유용한 프로젝트는 거대한 아이디어보다 일상적인 불편을 해결하려는 시도에서 시작될 수 있다. - 기술 스택을 완벽히 이해한 뒤 시작하기보다, AI 도구의 도움을 받아 새로운 프레임워크와 서비스를 빠르게 조합할 수 있다. - Brittany의 조언은 간단하다. 직접 무언가를 만들어 보면서 새로운 AI 도구를 사용하는 방법을 익히라는 것이다. 개인 업무에서 반복적으로 앱을 전환하거나 정보를 수동으로 모으고 있다면, 먼저 해결할 불편을 하나 정한 뒤 Copilot으로 요구사항을 인터뷰하고 작은 v1을 만들어보는 접근이 실용적이다.

원문 읽기(새 탭에서 열림)
github4분 읽기큐레이션 요약

AI 에이전트 해킹: GitHub Secure Code Game으로 에이전틱 AI 보안 기술 강화하기

에이전트형 AI는 파일 접근, 웹 검색, API 호출, 셸 명령, 다른 에이전트와의 협업까지 수행하므로 기존 LLM보다 훨씬 넓은 공격면을 가진다. GitHub Secure Code Game 시즌 4는 의도적으로 취약하게 만든 AI 비서 ‘ProdBot’을 통해 사용자가 공격자 관점에서 에이전트 보안 문제를 체험하도록 설계됐다. 핵심 목표는 단순히 특정 취약점을 외우는 것이 아니라, 실제 에이전트 시스템에서 위험한 설계와 공격 패턴을 발견하는 감각을 기르는 것이다. ## 에이전트형 AI의 등장과 보안 우려 - OpenClaw와 같은 개인용 AI 비서는 다음과 같은 작업을 수행한다. - 이메일과 일정 관리 - 웹 검색 및 브라우징 - 셸 명령 실행 - 플러그인 작성 - WhatsApp·Telegram 등을 통한 사용자 명령 처리 - 이러한 자율성과 편의성은 악성 입력과 결합될 경우 심각한 위험으로 이어질 수 있다. - 에이전트가 접근해서는 안 되는 파일을 읽도록 유도 - 악성 웹 페이지가 에이전트의 지시사항을 덮어씀 - 다중 에이전트 환경에서 한 에이전트의 오염된 데이터를 다른 에이전트가 신뢰 - 에이전트는 단순히 텍스트를 생성하는 모델이 아니라 실제 시스템과 상호작용하므로, 공격 결과가 데이터 유출이나 원격 코드 실행으로 확대될 수 있다. ## Secure Code Game의 발전 - Secure Code Game은 개발자가 의도적으로 취약한 코드를 공격하고 수정하면서 보안을 학습하는 무료 오픈소스 에디터 과정이다. - 시즌별 주제는 AI와 개발 환경의 변화에 맞춰 확장됐다. - 시즌 1: 일반적인 보안 코딩 - 시즌 2: JavaScript, Python, Go, GitHub Actions 등 여러 기술 스택 - 시즌 3: 악성 프롬프트와 LLM 보안 - 시즌 4: 자율적으로 행동하는 AI 에이전트 보안 - 지금까지 업계, 오픈소스, 학계에서 10,000명 이상의 개발자가 참여했다. - 시즌 4는 웹 브라우징, API 호출, 도구 사용, 에이전트 간 협업 등 에이전트의 실제 기능을 보안 학습에 반영한다. ## 에이전트 보안이 중요한 이유 - OWASP의 2026년 에이전트 애플리케이션 주요 위험에는 다음 문제가 포함된다. - 에이전트 목표 탈취 - 도구 오용 - 신원 및 권한 악용 - 영구 메모리 오염 - Dark Reading 설문에서는 사이버보안 전문가의 48%가 2026년 말까지 에이전트형 AI를 가장 큰 공격 벡터로 예상했다. - Cisco 보고서에 따르면 조직의 83%가 에이전트형 AI 도입을 계획했지만, 안전하게 배포할 준비가 됐다고 답한 비율은 29%에 불과했다. - 빠른 도입 속도와 낮은 보안 준비도의 격차가 새로운 취약점이 발생하는 환경을 만든다. - 따라서 방어 설계뿐 아니라 공격자가 어떤 방식으로 시스템을 악용하는지 직접 이해하는 것이 중요하다. ## ProdBot: 의도적으로 취약한 AI 비서 - 시즌 4의 실습 대상인 ProdBot은 터미널에서 실행되는 생산성 AI 비서다. - 다음 기능을 단계적으로 제공한다. - 자연어를 bash 명령으로 변환하고 실행 - 가상 웹 환경 탐색 - MCP 서버 연결 - 조직 승인 스킬 실행 - 세션 간 지속 메모리 저장 - 여러 전문 에이전트의 작업 조정 - 사용자의 최종 목표는 ProdBot이 노출해서는 안 되는 `password.txt`의 내용을 읽도록 만드는 것이다. - 모든 상호작용은 CLI에서 자연어로 진행되므로 별도의 AI나 프로그래밍 경험 없이도 실험할 수 있다. ## 다섯 단계로 확장되는 공격면 - **Level 1 — 셸 명령과 샌드박스** - ProdBot이 샌드박스 내부에서 bash 명령을 생성·실행한다. - 핵심 과제는 샌드박스 탈출 가능성을 찾는 것이다. - **Level 2 — 웹 접근** - 뉴스, 금융, 스포츠, 쇼핑 사이트로 구성된 가상 인터넷을 탐색한다. - 신뢰할 수 없는 웹 콘텐츠가 에이전트의 행동이나 지시를 오염시킬 수 있다. - **Level 3 — MCP 서버** - 주식 시세, 웹 브라우징, 클라우드 백업 등의 외부 도구 제공자와 연결된다. - 기능이 늘어나는 만큼 외부 도구의 권한과 입력 검증 문제가 새로운 진입점이 된다. - **Level 4 — 승인된 스킬과 지속 메모리** - 사전 제작된 자동화 플러그인을 실행하고 사용자 선호를 세션 간 기억한다. - 조직의 승인이나 기존 신뢰가 실제로 안전성을 보장하는지 검증해야 한다. - **Level 5 — 다중 에이전트 통합** - 6개의 전문 에이전트, 3개의 MCP 서버, 3개의 스킬, 가상의 오픈소스 프로젝트 웹이 결합된다. - 모든 에이전트가 샌드박스 처리되고 데이터가 사전 검증됐다는 가정을 공격 관점에서 시험한다. ## 실제 위협과 학습 목표 - 각 단계의 취약점은 에이전트 시스템이 기능을 추가하며 실제로 마주할 수 있는 공격 패턴을 반영한다. - 예로 언급된 `CVE-2026-25253`(CVSS 8.8, High, “ClawBleed”)는 악성 링크를 통해 인증 토큰을 탈취하고 OpenClaw 인스턴스를 완전히 장악할 수 있었던 원격 코드 실행 취약점이다. - 게임의 목적은 특정 익스플로잇 하나를 암기하는 것이 아니다. - 에이전트 아키텍처 검토 - 도구 통합 감사 - 외부 콘텐츠와 메모리의 신뢰성 평가 - 에이전트 간 데이터 전달 검증 - 이런 과정을 통해 실제 운영 환경에서 목표 탈취, 권한 남용, 프롬프트 오염, 도구 악용과 같은 패턴을 빠르게 식별하는 보안 감각을 기를 수 있다. 에이전트형 AI를 도입할 때는 기능 구현보다 먼저 도구 권한, 샌드박스 경계, 외부 입력 검증, 메모리 격리, 에이전트 간 신뢰 모델을 점검해야 한다. ProdBot 같은 공격·방어 실습을 통해 실제 시스템의 실패 가능성을 사전에 경험하는 것이 효과적인 준비 방법이다.

원문 읽기(새 탭에서 열림)
github3분 읽기큐레이션 요약

입문자를 위한 GitHub Copilot CLI: GitHub Copilot CLI 시작하기

GitHub Copilot CLI는 에이전트형 AI를 터미널에 통합해 코드 작성, 테스트 실행, 오류 수정 등을 지원하는 도구다. 이 글은 npm을 통한 설치부터 GitHub 인증, 폴더 권한 설정, 첫 프롬프트 실행까지의 시작 과정을 소개한다. 또한 프로젝트 분석, 엔드포인트 생성, Copilot Cloud Agent로 작업 위임 같은 활용 사례를 설명한다. ## GitHub Copilot CLI란? - Copilot의 에이전트 기능을 명령줄 환경에서 사용할 수 있게 해주는 도구다. - 저장소 전체 맥락을 바탕으로 파일을 탐색하고 코드를 작성할 수 있다. - 코드 빌드와 테스트 실행을 자율적으로 수행하며, 오류를 발견하면 스스로 수정할 수 있다. - 사용자는 작업을 요청한 뒤 결과를 검토하고 추가 변경을 지시할 수 있어, 다른 도구로 전환하지 않고 개발 흐름을 유지할 수 있다. - CLI에서 Copilot Cloud Agent에 작업을 위임하는 것도 가능하다. ## 설치 방법 Node.js가 설치되어 있다면 npm으로 전역 설치할 수 있다. ```bash npm install -g @github/copilot ``` - Windows에서는 WinGet, macOS에서는 Homebrew 등 패키지 관리자를 사용할 수도 있다. - 패키지 관리자별 정확한 설치 명령은 해당 도구의 문서를 확인해야 한다. ## 최초 실행과 인증 설치가 끝나면 터미널에서 `Copilot` 명령으로 실행한다. ```plaintext Copilot ``` 처음 사용하는 경우 `/login` 명령으로 GitHub 계정에 로그인한다. ```plaintext /login ``` 로그인 과정에서 다음 작업이 수행된다. - Copilot 클라이언트와 GitHub Copilot 계정을 연결한다. - GitHub 리소스에 접근할 수 있도록 읽기 전용 GitHub MCP 서버를 연결한다. ## 폴더 권한 설정 Copilot이 프로젝트를 분석하거나 파일을 수정하려면 해당 폴더에 대한 접근 권한을 부여해야 한다. - 현재 세션에서만 권한을 허용할 수 있다. - 같은 프로젝트에서 반복적으로 사용할 경우 권한 설정을 저장할 수 있다. - 파일을 생성하거나 수정하는 작업에서는 Copilot이 별도로 사용자 승인을 요청할 수 있다. - 권한을 부여한 뒤 자연어로 프로젝트 분석, 코드 작성, 테스트 등의 작업을 요청할 수 있다. ## 프로젝트 분석과 코드 생성 Copilot CLI는 저장소의 파일과 문서를 직접 탐색해 프로젝트 구조와 개발 관례를 파악한다. 예를 들어 다음과 같이 요청할 수 있다. ```plaintext Give me an overview of this project ``` - 주요 파일과 프로젝트 구성을 확인한 뒤 개요를 제공한다. - 새 기능을 요청하면 기존 문서와 코드 예제를 참고해 프로젝트 스타일에 맞추려 한다. - 예를 들어 카테고리 전체를 반환하는 새 엔드포인트를 추가하도록 요청할 수 있다. ```plaintext Let’s add a new endpoint to return all categories ``` - 파일 생성이나 변경 전에는 필요한 권한을 요청한다. ## Copilot Cloud Agent로 작업 위임 명확하게 정의된 작업은 CLI에서 Copilot Cloud Agent에 넘길 수 있다. ```plaintext /delegate Let’s deal with issue #14 to add the rest of the CRUD endpoints to games ``` 위임하면 Copilot이 다음 작업을 수행한다. - 현재 CLI 세션의 컨텍스트를 유지한다. - 새 브랜치를 생성한다. - 초안 상태의 Pull Request를 연다. - 백그라운드에서 요청된 변경 작업을 진행한다. - 작업 완료 후 사용자가 결과를 검토하도록 한다. ## 이후 학습할 기능 이 글은 입문 시리즈의 첫 번째 내용으로, 다음 주제들이 후속 글에서 다뤄질 예정이라고 안내한다. - 대화형 모드와 비대화형 모드 비교 - `-p` 플래그를 이용한 빠른 요약 - Copilot CLI의 슬래시 명령 - MCP 서버 연동 - CLI 사용법과 모범 사례 Copilot CLI는 터미널을 떠나지 않고 프로젝트를 이해하고 코드를 수정할 수 있게 해주는 도구다. 처음에는 작은 프로젝트 개요나 단순한 기능 추가부터 사용하고, 파일 변경과 권한 요청 결과를 직접 검토하면서 점차 작업 위임 범위를 넓히는 것이 좋다.

원문 읽기(새 탭에서 열림)
github3분 읽기큐레이션 요약

Copilot Applied Science의 에이전트 주도 개발

GitHub Copilot Applied Science 팀의 Tyler McGoffin은 코딩 에이전트를 활용해 벤치마크 결과 분석에 필요한 지적 반복 작업을 자동화한 프로젝트 `eval-agents`를 만들었다. 핵심은 에이전트를 단순한 코드 생성기가 아니라 계획·구현·검증에 참여하는 협업자로 활용하고, 에이전트가 기여하기 쉬운 저장소 구조를 만드는 것이다. 그 결과 3일도 안 되어 5명이 11개 에이전트와 4개 스킬을 추가하고, 345개 파일에 걸쳐 약 2만 8천 줄의 변경을 만들어냈다. ## 반복적인 벤치마크 분석에서 `eval-agents` 탄생 - 연구자는 TerminalBench2, SWEBench-Pro 같은 코딩 에이전트 평가 벤치마크를 분석한다. - 각 평가 작업은 에이전트의 사고 과정과 행동을 담은 trajectory로 기록되며, 대개 수백 줄의 `.json` 파일로 저장된다. - 수십 개 작업과 여러 번의 벤치마크 실행을 합치면 분석 대상이 수십만 줄에 달한다. - 기존에는 Copilot으로 trajectory에서 패턴을 먼저 찾은 뒤 사람이 직접 조사해 읽어야 할 분량을 수백 줄로 줄였다. - 이 반복 과정을 에이전트가 자동 수행하도록 만든 도구가 `eval-agents`다. ## 프로젝트 설계 목표 - 에이전트를 쉽게 공유하고 사용할 수 있도록 구성한다. - 새로운 에이전트를 쉽게 작성할 수 있도록 한다. - 사람보다 코딩 에이전트가 프로젝트 기여의 주요 수단이 되도록 설계한다. - 특히 세 번째 목표를 적용하자 프로젝트 자체의 사용성과 협업성도 함께 좋아졌다. - 과학자와 엔지니어가 각자의 필요에 맞는 에이전트와 기능을 직접 추가할 수 있는 기반이 마련됐다. ## 코딩 에이전트를 중심으로 한 개발 환경 - 코딩 에이전트: Copilot CLI - 사용 모델: Claude Opus 4.6 - IDE: VS Code - Copilot SDK를 사용해 Copilot CLI의 도구, MCP 서버, 사용자 정의 도구와 스킬 등록 기능을 재활용했다. - 에이전트 실행 기반을 직접 처음부터 만들지 않아도 되어 에이전트 생성 속도를 높일 수 있었다. ## 효과적인 프롬프트 전략 - 에이전트는 범위가 명확한 작업에는 강하지만, 복잡하고 고차원적인 문제에는 충분한 안내가 필요하다. - 짧은 요구사항보다 문제를 고민하는 과정, 전제, 우려 사항을 자세히 설명하는 대화형 프롬프트가 효과적이다. - 바로 구현을 지시하기보다 계획 모드에서 조사와 설계를 먼저 진행하게 하는 것이 좋다. - 예를 들어 테스트가 에이전트의 변경에 맞춰 부적절하게 수정되는 문제를 해결하기 위해, 계획 모드에서 에이전트가 건드릴 수 없는 보호된 테스트 영역을 설계하도록 했다. - 그 대화의 결과로 사람이 승인해야만 수정할 수 있는 계약 테스트와 유사한 회귀 방지 장치가 만들어졌다. - 결론적으로 효과적인 인간 엔지니어에게 필요한 설명, 사고 유도, 검토 과정이 에이전트에도 동일하게 중요하다. ## 에이전트 우선 저장소를 위한 아키텍처 전략 - 에이전트 중심 프로젝트에서는 새 기능보다 코드 구조 개선, 리팩터링, 문서화, 테스트 작성이 더 중요한 기반 작업이 된다. - 명확한 이름과 파일 구조는 에이전트가 코드를 탐색하고 변경하기 쉽게 만든다. - 기능과 패턴을 문서화하면 에이전트가 프로젝트의 규칙과 설계 의도를 더 잘 따를 수 있다. - 발견된 문제를 테스트 케이스로 남기면 이후 에이전트의 변경으로 인한 회귀를 방지할 수 있다. - 에이전트가 기능을 빠르게 추가할수록 사람이 죽은 코드와 불필요한 복잡성을 정리하는 작업도 병행해야 한다. - 잘 관리된 저장소에서는 Copilot을 통한 기능 전달이 쉬워지므로, 과거에 미뤄두었던 유지보수 작업이 개발 생산성의 핵심 요소가 된다. ## 짧은 기간에 이루어진 협업 성과 - 처음 참여한 팀원 5명이 3일 이내에 프로젝트에 기여했다. - 새로 추가된 항목: - 에이전트 11개 - 스킬 4개 - 과학자의 추론 흐름을 표현하는 `eval-agent workflows` - 전체 변경 규모는 345개 파일에서 `+28,858/-2,884`줄이었다. - 이는 에이전트에게 적절한 개발 환경과 구조를 제공하면 새로운 기능과 협업을 매우 빠르게 확장할 수 있음을 보여준다. 에이전트를 효과적으로 활용하려면 좋은 프롬프트만으로는 부족하다. 계획 모드와 상세한 대화를 적극 활용하고, 문서·테스트·리팩터링을 지속해 에이전트가 이해하기 쉬운 저장소를 유지하는 것이 실용적인 출발점이다.

원문 읽기(새 탭에서 열림)
github3분 읽기큐레이션 요약

‘텍스트로서의 AI’ 시대는 끝났다. 실행이 새로운 인터페이스다.

이 글은 AI가 단순히 텍스트를 주고받는 도구를 넘어, 계획을 세우고 도구를 호출하며 실제 작업을 수행하는 실행 계층으로 발전하고 있다고 주장합니다. GitHub Copilot SDK를 사용하면 애플리케이션에 Copilot CLI의 검증된 계획·실행 엔진을 직접 내장할 수 있습니다. 이를 통해 개발자는 고정된 자동화 스크립트나 자체 오케스트레이션 계층을 만들지 않고도, 제약 조건 안에서 적응적으로 동작하는 에이전트형 시스템을 구축할 수 있습니다. ## 텍스트 기반 AI에서 실행 기반 AI로 - 기존 AI 사용 방식은 텍스트를 입력하고 텍스트를 받은 뒤, 사용자가 다음 행동을 직접 결정하는 구조였습니다. - 실제 운영 소프트웨어는 다음과 같은 실행 루프를 필요로 합니다. - 작업 계획 수립 - 도구 호출 - 파일 및 시스템 변경 - 명령 실행 - 오류 복구 - 실행 중 상황 변화에 따른 대응 - 따라서 AI의 핵심 인터페이스가 텍스트가 아니라, 제약 조건과 관찰 가능성을 갖춘 실행으로 바뀌고 있습니다. ## 여러 단계 작업을 에이전트에 위임 - 기존 스크립트는 작업 단계가 고정되어 있을 때는 유용하지만, 상황에 따라 흐름이 바뀌거나 오류 복구가 필요하면 취약해집니다. - Copilot SDK를 사용하면 애플리케이션이 구체적인 절차 대신 작업의 의도와 제약 조건을 전달할 수 있습니다. - 예를 들어 “이 저장소를 릴리스 준비 상태로 만들어라”라고 요청하면 에이전트가 다음을 수행할 수 있습니다. - 저장소 구조 탐색 - 필요한 작업 계획 수립 - 파일 수정 - 명령 실행 - 실패 발생 시 대안 적용 및 복구 - 고정된 예외 처리를 직접 작성하지 않고도, 규모가 커지는 업무 흐름에 적응하는 자동화를 구현할 수 있다는 점이 핵심입니다. ## 구조화된 런타임 컨텍스트 활용 - 시스템 로직을 프롬프트에 계속 추가하면 프롬프트가 복잡하고 취약해지며, 테스트와 유지보수가 어려워집니다. - Copilot SDK는 컨텍스트를 텍스트가 아닌 구조화되고 조합 가능한 도구와 데이터로 제공합니다. - 애플리케이션은 다음과 같은 방식으로 실행 환경을 확장할 수 있습니다. - 도메인 전용 도구 및 에이전트 스킬 정의 - Model Context Protocol(MCP)을 통한 도구 연결 - 실행 시점에 필요한 컨텍스트 검색 - 예를 들어 에이전트가 직접 다음 정보를 조회할 수 있습니다. - 서비스 소유 팀 - 과거 의사결정 기록 - 의존성 그래프 - 내부 API 스키마 - 권한과 안전 제약 조건 - MCP는 에이전트가 실제 시스템과 권한이 부여된 데이터에 근거해 행동하도록 연결하는 기반 역할을 합니다. ## IDE 밖에 실행 기능 내장 - AI 기능은 더 이상 IDE나 터미널 안에서만 제공될 필요가 없습니다. - Copilot SDK를 활용하면 다음과 같은 애플리케이션에 에이전트 실행을 통합할 수 있습니다. - 데스크톱 애플리케이션 - 사내 운영 도구 - 백그라운드 서비스 - SaaS 플랫폼 - 이벤트 기반 시스템 - 파일 변경, 배포 이벤트, 사용자 동작 등을 감지한 뒤 애플리케이션에서 Copilot을 프로그래밍 방식으로 호출할 수 있습니다. - 결과적으로 AI는 별도의 보조 창이 아니라 제품 내부에서 실행되는 인프라가 됩니다. ## 애플리케이션 아키텍처의 변화 - Copilot SDK는 Copilot CLI를 구동하는 계획·실행 엔진을 애플리케이션의 프로그래밍 가능한 계층으로 제공합니다. - 개발자는 매번 오케스트레이션 로직을 새로 구축하기보다, 애플리케이션이 달성해야 할 목표와 실행 가능한 범위를 정의하는 데 집중할 수 있습니다. - 다만 실제 운영 환경에서는 도구 권한, 안전 제약, 실행 결과 관찰, 오류 처리 등을 명확히 설계해야 합니다. Copilot SDK는 AI를 “답변을 생성하는 기능”에서 “실제 업무를 수행하는 시스템 구성 요소”로 확장하려는 접근입니다. 반복 작업이나 복잡한 운영 흐름에 적용할 때는 의도 중심의 에이전트 실행, MCP 기반의 구조화된 컨텍스트, 명확한 권한·안전 제약을 함께 설계하는 것이 좋습니다.

원문 읽기(새 탭에서 열림)
github4분 읽기큐레이션 요약

내부 살펴보기: GitHub

GitHub Agentic Workflows는 에이전트를 기존 CI/CD에 통합하되, 에이전트의 비결정성과 프롬프트 인젝션 위험을 전제로 설계된 보안 아키텍처를 사용합니다. 핵심은 자유로운 에이전트 작성과 통제된 실행을 분리하고, 워크플로를 명시적인 권한·출력·네트워크·감사 제약이 있는 GitHub Actions로 컴파일하는 것입니다. 특히 에이전트에 비밀을 직접 제공하지 않고, 계층적 격리와 단계적 쓰기 검증으로 피해 범위를 제한합니다. ## 에이전트 자동화가 만드는 새로운 위협 - 에이전트는 저장소 상태와 외부 입력을 해석해 런타임에 자율적으로 결정을 내리므로 기본적으로 신뢰할 수 없습니다. - GitHub Actions는 구성 요소들이 하나의 신뢰 도메인에서 실행되는 비교적 개방적인 환경입니다. - 에이전트가 손상되면 다음과 같은 행동이 가능해질 수 있습니다. - MCP 서버와 상호작용 - 인증 토큰과 환경 변수 접근 - 임의의 인터넷 호스트로 네트워크 요청 - 악성 이슈·웹 페이지를 통한 프롬프트 인젝션 실행 - 원치 않는 커밋, 댓글, 이슈 생성 - 따라서 기본 보안 모드는 에이전트가 읽거나 쓰면 안 되는 상태에 접근하고, 허가되지 않은 통신 채널을 악용한다고 가정합니다. ## 다층 방어 구조 GitHub Agentic Workflows는 **기반 인프라(substrate)**, **구성(configuration)**, **계획(planning)**의 세 계층으로 방어합니다. - **기반 인프라 계층** - GitHub Actions 러너 VM과 신뢰된 컨테이너를 사용합니다. - 컨테이너 격리, 커널 수준 통신 경계, 권한 있는 작업과 시스템 호출 중재를 제공합니다. - 사용자 수준 구성 요소가 손상되어 컨테이너 내부에서 임의 코드를 실행하더라도 격리 경계를 넘는 피해를 제한합니다. - **구성 계층** - 어떤 구성 요소를 실행하고 서로 어떻게 연결할지 선언적으로 정의합니다. - 허용되는 통신 채널과 각 구성 요소의 권한을 결정합니다. - 에이전트 API 키와 GitHub 토큰 같은 외부 자격 증명을 어떤 컨테이너에 주입할지 통제합니다. - 컴파일러, 방화벽 정책, MCP 설정 등이 이 계층에 포함됩니다. - **계획 계층** - 구성 계층이 정한 구성 요소들을 언제, 어떤 순서로 실행할지 결정합니다. - 구성 요소 간 데이터 교환을 명시한 단계적 워크플로를 생성합니다. - 안전한 출력 시스템을 통해 쓰기 작업을 검증하고 제한하는 역할을 담당합니다. ## 에이전트에 비밀을 제공하지 않는 설계 - 일반적인 GitHub Actions 환경에서는 여러 프로세스가 환경 변수와 설정 파일에 저장된 토큰을 볼 수 있습니다. - 프롬프트 인젝션을 받은 에이전트는 셸 도구를 이용해 다음 정보에 접근할 수 있습니다. - 설정 파일 - SSH 키 - Linux `/proc` 상태 - 워크플로 로그 - 탈취한 자격 증명은 외부 웹사이트로 전송하거나 공개 이슈·풀 리퀘스트·댓글에 삽입할 수 있습니다. - 이를 막기 위해 에이전트를 별도 컨테이너에서 실행하고 네트워크 경로를 제한합니다. - 인터넷 접속은 방화벽을 통해 통제 - MCP 호출은 신뢰된 MCP 게이트웨이를 통해서만 허용 - LLM 호출은 API 프록시를 통해 중계 - MCP 게이트웨이는 별도의 신뢰 컨테이너에서 MCP 서버를 실행하며, MCP 인증 정보에 독점적으로 접근합니다. - 에이전트 컨테이너는 LLM 인증 토큰을 직접 보지 않고, 격리된 API 프록시가 인증을 대신 처리하는 구조를 사용합니다. ## 네트워크와 권한의 제한 - 에이전트와 방화벽 사이에 전용 사설 네트워크를 구성해 인터넷 연결을 통제합니다. - 허용 목록 기반 방화벽 정책으로 에이전트가 통신할 수 있는 대상과 채널을 제한합니다. - MCP 서버와 LLM API를 직접 노출하지 않고 각각 게이트웨이와 프록시 뒤에 배치합니다. - 이 구조는 에이전트가 손상되더라도 임의의 외부 호스트로 데이터를 반출하거나 인증 서비스를 직접 악용하는 가능성을 줄입니다. ## 안전한 쓰기와 감사 가능성 - 에이전트가 저장소나 GitHub 객체에 직접 자유롭게 쓰지 못하도록 출력 단계를 별도로 통제합니다. - 계획 계층의 안전한 출력 시스템은 다음을 담당하도록 설계됩니다. - GitHub 쓰기 작업의 허용 여부 결정 - 호출 가능한 기능과 호출 횟수 제한 - 출력에서 비밀 정보 제거 - 부적절하거나 원치 않는 내용 조정 - 에이전트의 실행 결과와 외부 효과를 추적할 수 있도록 모든 작업을 기록하는 원칙을 적용합니다. - 결과적으로 에이전트의 자유로운 추론 능력은 유지하되, 실제 커밋·댓글·이슈 생성 같은 효과는 검증된 단계와 명시적 정책을 거쳐야 합니다. ## 실용적인 결론 에이전트 기반 CI/CD를 도입할 때는 에이전트를 일반 스크립트처럼 신뢰하지 말고, 처음부터 침해 가능성을 전제로 설계해야 합니다. 별도 컨테이너 격리, 비밀의 프록시 위임, 허용 목록 네트워크, 단계적 쓰기 검증, 전체 감사 로그를 함께 적용하는 것이 안전한 기본값입니다.

원문 읽기(새 탭에서 열림)
github3분 읽기큐레이션 요약

멀티 에이전트 워크

멀티 에이전트 워크플로는 에이전트들이 상태, 실행 순서, 검증 방식에 대해 암묵적으로 가정하기 때문에 쉽게 실패한다. 이를 안정적으로 운영하려면 에이전트를 대화형 인터페이스가 아니라 분산 시스템의 구성 요소처럼 다뤄야 하며, 타입 스키마·명시적 액션·강제된 인터페이스가 필요하다. 특히 MCP(Model Context Protocol)는 이러한 계약을 실행 전에 검증해 잘못된 상태가 시스템에 전파되는 것을 막는다. ## 멀티 에이전트 시스템이 실패하는 이유 - 이슈 분류, 변경 제안, 테스트 실행, 풀 리퀘스트 생성처럼 관련 작업을 여러 에이전트가 나눠 처리하면 상태와 순서에 대한 암묵적 가정이 생긴다. - 한 에이전트가 이슈를 열자마자 다른 에이전트가 이를 닫거나, 후속 검사를 알지 못한 채 변경 사항을 배포하는 문제가 발생할 수 있다. - 자연어와 일관되지 않은 JSON만으로 통신하면 필드명, 자료형, 형식이 쉽게 달라져 자동화가 불안정해진다. ## 타입 스키마로 데이터 계약 정의 - 에이전트 간 데이터 교환에는 기계적으로 검증 가능한 타입과 엄격한 스키마를 사용해야 한다. - 예를 들어 사용자 프로필을 다음처럼 정의할 수 있다. - `id`: 숫자 - `email`: 문자열 - `plan`: `free`, `pro`, `enterprise` 중 하나 - 잘못된 메시지는 다음 단계로 전달하기 전에 실패시켜야 한다. - 재시도 - 메시지 수정 - 사람에게 에스컬레이션 - 디버깅도 로그를 해석하는 방식에서 “어떤 스키마 계약을 위반했는가”를 확인하는 방식으로 바뀐다. ## 액션 스키마로 의도 명확히 하기 - 데이터 형식이 올바르더라도 “분석하고 팀이 행동하도록 돕는다”처럼 지시가 모호하면 에이전트마다 다른 결정을 내릴 수 있다. - 가능한 결과를 제한된 액션 집합으로 정의하면 자동화 가능한 결과만 반환하게 만들 수 있다. - 예시 액션: - 추가 정보 요청: 필요한 정보 목록 포함 - 담당자 지정: 담당자 식별자 포함 - 중복 이슈로 종료: 원본 이슈 번호 포함 - 조치 없음 - 에이전트는 반드시 하나의 유효한 액션을 반환해야 하며, 그 외 결과는 검증 실패로 처리해 재시도하거나 에스컬레이션한다. - 글은 멀티 에이전트 장애의 상당수가 데이터 자체보다 “잘못된 행동 선택”에서 발생한다고 설명한다. ## MCP로 인터페이스 강제 - 스키마와 액션 규칙을 문서로만 정해두면 관례에 불과하며, 모든 에이전트가 이를 지킨다는 보장이 없다. - MCP는 각 도구와 리소스에 명시적인 입력·출력 스키마를 제공하고, 도구 호출 전에 이를 검증한다. - 예를 들어 `create_issue` 도구에 입력 스키마와 출력 스키마를 함께 정의할 수 있다. - MCP를 사용하면 에이전트가 다음과 같은 오류를 일으키기 어렵다. - 존재하지 않는 필드 생성 - 필수 입력 누락 - 에이전트 간 인터페이스 형식 변경 - 실행 전에 검증하므로 잘못된 호출이 운영 시스템에 영향을 주기 전에 차단된다. ## 실용적인 적용 방향 - 에이전트 간 모든 경계에 타입 스키마를 적용한다. - 자연어 지시의 최종 결과는 제한된 액션 스키마로 변환한다. - 도구 호출과 데이터 교환에는 MCP 같은 검증 계층을 둔다. - 스키마 위반을 자동 재시도, 수정, 에스컬레이션 대상으로 명시한다. - 멀티 에이전트 시스템을 챗봇이 아니라 계약과 인터페이스를 갖춘 소프트웨어 컴포넌트로 설계하는 것이 핵심이다.

원문 읽기(새 탭에서 열림)