이 출시되었습니다! 11월의 새로운 기능 및 수정 사항을 읽어보세요.

GitHub Copilot 에이전트 모드 소개 (미리 보기)

2025년 2월 24일 | Isidor Nikolic

에이전트 모드가 VS Code Stable에 출시되었으며 MCP 서버를 지원합니다. 블로그 게시물에서 에이전트 모드 업데이트에 대해 더 자세히 알아보세요.

Copilot 에이전트 모드는 AI 기반 코딩의 다음 진화입니다. 자율적인 동료 프로그래머 역할을 수행하며, 코드베이스 분석, 관련 파일 읽기, 파일 수정 제안, 터미널 명령 및 테스트 실행 등 다단계 코딩 작업을 명령에 따라 수행합니다. 컴파일 및 린트 오류에 응답하고, 터미널 및 테스트 출력을 모니터링하며, 작업이 완료될 때까지 루프를 통해 자동 수정합니다. 오늘부터 모든 VS Code Insiders 사용자가 사용할 수 있으며, 곧 VS Code Stable에서도 제공될 예정입니다.

Copilot 에이전트 모드 사용 방법

VS Code Insiders에서 Copilot 수정 보기()를 열고, 모드 드롭다운에서 **Agent**를 선택한 후 프롬프트를 입력하세요.

Copilot 에이전트 모드는 앱을 처음부터 생성하고, 여러 파일에 걸쳐 리팩토링을 수행하며, 테스트를 작성하고 실행하며, 레거시 코드를 최신 프레임워크로 마이그레이션할 수 있습니다. 자동으로 문서를 생성하거나, 새 라이브러리를 통합하거나, 복잡한 코드베이스에 대한 질문에 답변하는 데 도움을 줄 수 있습니다. Copilot 에이전트 모드는 워크스페이스를 이해하는 AI 협업자를 통해 생산성을 극대화합니다. 개발 흐름을 조율하면서도 사용자를 통제할 수 있도록 합니다.

Copilot 에이전트 모드는 원하는 결과를 달성하기 위해 더 자율적이고 동적인 방식으로 작동합니다. 요청을 처리하기 위해 Copilot은 다음 단계를 루프하며 필요에 따라 여러 번 반복합니다.

  • 자율적으로 관련 컨텍스트 및 수정할 파일을 결정합니다.
  • 작업 완료를 위해 코드 수정 및 터미널 명령을 모두 제공합니다. 예를 들어, Copilot은 코드를 컴파일하거나, 패키지를 설치하거나, 테스트를 실행하는 등의 작업을 수행할 수 있습니다.
  • 코드 수정의 정확성과 터미널 명령 출력의 정확성을 모니터링하고 문제를 해결하기 위해 반복합니다.

Copilot 에이전트 모드는 이러한 작업을 수행하기 위해 일련의 도구를 사용합니다.

Screenshot of the Copilot agent mode, and the proposed inline changes

이상적인 상황에서는 Copilot 에이전트 모드의 최종 결과에만 신경 쓰면 되지만, 때로는 실수를 하거나 예상 경로에서 벗어날 수 있습니다. 이러한 상황에서 쉽게 개입하고 실행 취소할 수 있도록 모든 도구 호출은 UI에 투명하게 표시되며, 터미널 도구는 승인이 필요합니다. 또한 풍부한 실행 취소 기능을 지원합니다. 마지막 수정이 적용되기 전 상태로 돌아가려면 보기 제목 표시줄의 **마지막 수정 취소** 컨트롤을 사용할 수 있습니다. 완벽한 솔루션을 얻기 위해 하나의 길고 상세한 프롬프트에 의존하는 대신, Copilot과 반복적으로 작업해야 합니다. UI는 반복을 위해 구축되어 프로세스를 완벽하게 제어하고 최종 결과가 더 나은지 확인할 수 있습니다.

Copilot 에이전트 모드는 올바른 워크스페이스 도구를 호출하여 정확한 컨텍스트를 자동으로 찾고 파일 작업 세트를 설정합니다. Copilot을 더 정확하게 안내하기 위해, 드래그 앤 드롭을 사용하거나 **파일 추가** 버튼을 클릭하여 ` #file `을 사용하여 컨텍스트를 명시적으로 참조할 수 있습니다. 예를 들어, `specifications.md` 파일을 생성하고 이를 컨텍스트로 추가하여 Copilot을 더 잘 제어하거나, 사용자 지정 지침을 설정하여 Copilot이 코딩 지침 또는 기타 환경 설정을 존중하도록 할 수 있습니다.

Copilot 에이전트 모드는 프롬프트당 여러 요청을 보낼 수 있으므로 일반적인 수정 모드보다 빠르지 않으며 무료 Copilot 할당량을 빠르게 소진할 수 있습니다. 잘 정의되고 범위가 지정된 작업의 경우 수정 모드를 사용하세요. 여러 번의 수정이 필요하거나 더 개방적인 작업의 경우 에이전트 모드로 전환하세요.

작동 방식

Diagram showing the inner works of agent mode and how it interacts with context, LLM and tools

에이전트 모드에서 Copilot에 요청을 보내면, 모델 드롭다운에서 선택한 LLM에 대한 프롬프트를 생성합니다. 이 프롬프트에는 다음이 포함됩니다.

  • 귀하의 쿼리
  • 전체 코드베이스 대신 워크스페이스의 요약된 구조 (토큰 보존)
  • 머신 컨텍스트 (예: 사용 중인 OS)
  • 도구 설명 (선택적으로 도구 호출 결과)

LLM이 호출할 수 있는 일련의 도구를 정의하며, 각 도구는 Copilot이 작업을 완료하는 데 도움이 되는 고유한 기능을 가지고 있습니다. 이러한 도구를 사용하여 Copilot은 워크스페이스를 검색하고, 파일 내용을 읽고, 터미널에서 명령을 실행하고, 편집기에서 컴파일 또는 린트 오류를 가져오고, 추측 디코더 엔드포인트를 통해 제안된 변경 사항을 적용할 수 있습니다 (성능 개선 작업 중). 에이전트 모드에서 Copilot의 기능을 향상시킬 수 있는 다른 도구를 실험함에 따라 도구 목록은 계속 확장되고 있습니다.

Screenshot Copilot agent mode proposing a terminal tool to "npm run dev"

각 도구에는 LLM이 이를 사용하고 사용하는 방법에 대한 자세한 지침이 있습니다. 다음은 `read_file` 도구 설명의 예입니다.

{
  "name": "read_file",
  "description": "Read the contents of a file. You must specify the line range you're interested in, and if the file is larger, you will be given an outline of the rest of the file. If the file contents returned are insufficient for your task, you may call this tool again to retrieve more content.",
  "parameters": {
    "type": "object",
    "properties": {
      "filePath": {
        "description": "The absolute paths of the files to read.",
        "type": "string"
      },
      "startLineNumberBaseZero": {
        "type": "number",
        "description": "The line number to start reading from, 0-based."
      },
      "endLineNumberBaseZero": {
        "type": "number",
        "description": "The inclusive line number to end reading at, 0-based."
      }
    },
    "required": ["filePath", "startLineNumberBaseZero", "endLineNumberBaseZero"]
  }
}

LLM이 도구를 정확하게 사용하도록 이러한 도구 설명을 개선하는 데 많은 개발 시간이 소요되었습니다. Anthropic에서도 효과적인 에이전트 구축 블로그에서 이를 언급했습니다. 자동 평가를 수행하지만, 프롬프트 및 설명을 업데이트하고 실제 사용 사례에서 어떻게 작동하는지 확인하는 데 많은 반복 작업이 필요합니다.

GPT 4o와 Claude Sonnet 간에 다른 동작을 관찰했지만, 현재로서는 해당 모델에 유사한 시스템 프롬프트를 보냅니다. 향후 Copilot 에이전트 모드 지원을 더 많은 LLM으로 확장함에 따라 각 모델에 맞게 프롬프트를 맞춤 설정할 것입니다.

자체 호스팅을 사랑합니다

VS Code 출시 첫날부터 저희는 자체 호스팅을 강력하게 신봉해 왔습니다. 팀이 프로덕션 준비 변경을 위해 새로운 기능을 사용하지 않는다면, 해당 기능에는 문제가 있는 것입니다. 저희에게는 그만큼 간단합니다.

저희 팀은 200개 이상의 GitHub 리포지토리를 보유하고 있으며, Copilot 에이전트 모드가 이미 생산성 향상을 이끌고 있는 소규모 리포지토리에서 탁월한 성능을 발휘하는 것을 보았습니다. 개방형 질문을 Copilot에 할 수 있는 기능은 모든 크기의 리포지토리에서 잘 작동합니다. 예를 들어 특정 기능이 어디에서 어떻게 구현되는지 등을 알 수 있습니다. vscode와 같은 대규모 코드베이스에서 여러 파일에 걸친 리팩토링은 오늘날 모든 소프트웨어 엔지니어링 에이전트에게 어려운 과제입니다. 복잡한 리포지토리에서 Copilot 에이전트 모드를 개선하면 저희 팀의 자체 호스팅 기회가 더 많이 열릴 뿐만 아니라 여러분에게도 유용한 상호 작용이 가능해질 것입니다.

자체 호스팅 외에도 VS Code 팀원들은 날씨 예보, 식사 계획, 커피 섭취량 또는 헬스장 운동을 위한 앱과 같은 취미 프로젝트에 Copilot 에이전트 모드를 사용하는 것을 즐깁니다.

오늘날 VS Code 팀은 Copilot 에이전트 모드 사용 사례에 대해 GPT-4o보다 Claude Sonnet을 선호합니다. Claude 3.7 Sonnet의 초기 테스트에서 Copilot 에이전트 모드 기능이 크게 개선되었습니다.

오늘부터 사용 가능

Copilot 에이전트 모드는 미리 보기 상태이며 오늘부터 모든 VS Code Insiders 사용자가 사용할 수 있습니다. Copilot 개선을 위해 매일 코드를 배포하므로 VS Code Insiders의 경험은 매일 향상되고 있습니다 (예: 오늘 제안된 터미널 명령을 수정하는 기능을 배포했습니다). 저희 리포지토리에서 여러분의 피드백을 기다립니다. Copilot 에이전트 모드를 어떻게 사용하고 싶으신지 알려주시면, 저희가 제공하는 기능이 여러분에게 영향력 있을 수 있도록 하겠습니다.

다음으로 작업할 계획은 다음과 같습니다.

  • 세분화된 실행 취소 기능
  • 컨텍스트 UI (작업 세트) 단순화
  • 노트북 지원 (현재 편집 세션은 텍스트 편집기에서만 작동)
  • 특정 터미널 명령 자동 승인 기능
  • 터미널 도구 UI 개선 (예: 터미널 명령 출력 인라인 표시)
  • 에이전트 모드를 위한 도구 확장성MCP 서버 탐색. 확장 기능 아이디어가 있다면 저희에게 알려주세요.
  • 채팅 및 편집 경험 통합
  • 병행하여, 모든 VS Code Stable 사용자에게 Copilot 에이전트 모드를 제공하는 것을 목표로 품질과 성능을 개선하고 있습니다.

Copilot 에이전트 모드에 대한 자세한 내용은 공식 문서를 참조하세요.

Copilot 에이전트 모드에 대해 매우 기대하고 있습니다. 오늘 시도해 보시고 의견을 알려주세요.

즐거운 코딩 되세요!

Isidor와 VS Code 팀

© . This site is unofficial and not affiliated with Microsoft.