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

채팅에서 도구 사용

도구는 Visual Studio Code에서 코드 검색, 명령 실행, 웹 콘텐츠 가져오기 또는 API 호출과 같은 특정 작업을 수행하기 위한 전문 기능을 통해 채팅을 확장합니다. VS Code는 빌트인 도구, 모델 컨텍스트 프로토콜(MCP) 도구 및 확장 도구의 세 가지 유형의 도구를 지원합니다.

이 문서는 VS Code에서 사용할 수 있는 다양한 유형의 도구, 채팅 프롬프트에서 도구를 사용하는 방법, 도구 호출 및 승인을 관리하는 방법을 설명합니다.

도구 유형

VS Code는 채팅에서 사용할 수 있는 세 가지 유형의 도구를 지원합니다.

빌트인 도구

VS Code는 채팅에서 자동으로 사용할 수 있는 포괄적인 빌트인 도구 세트를 제공합니다. 이러한 도구는 일반적인 개발 작업을 다루며 작업 공간 내에서 작업하는 데 최적화되어 있습니다.

빌트인 도구는 설치나 구성이 필요하지 않으며 채팅 사용을 시작하면 바로 사용할 수 있습니다.

빌트인 도구의 전체 목록과 설명은 채팅 도구 참조를 참조하세요.

MCP 도구

모델 컨텍스트 프로토콜(MCP)은 AI 모델이 통합 인터페이스를 통해 외부 도구 및 서비스를 사용할 수 있도록 하는 개방형 표준입니다. MCP 서버는 채팅에 추가 기능을 추가하기 위해 VS Code에 추가할 수 있는 도구를 제공합니다.

채팅에서 해당 도구를 사용하려면 MCP 서버를 설치하고 구성해야 합니다. MCP 서버는 로컬 컴퓨터에서 실행되거나 원격으로 호스팅될 수 있습니다.

VS Code에서 MCP 서버를 구성하는 방법에 대해 자세히 알아보세요.

확장 도구

VS Code 확장은 편집기와 깊이 통합되는 도구를 제공할 수 있습니다. 확장 도구는 언어 모델 도구 API를 사용하여 VS Code 확장 API의 전체 범위에 액세스하면서 전문적인 기능을 제공합니다.

확장 도구는 해당 도구를 제공하는 확장을 설치하면 자동으로 사용할 수 있습니다. 사용자는 확장 자체를 설치하는 것 외에 별도의 설치나 구성이 필요하지 않습니다.

확장 도구를 만들려는 개발자는 언어 모델 도구 API 가이드를 참조하세요.

채팅에 도구 사용 설정

채팅에서 도구를 사용하려면 먼저 채팅 보기에서 도구를 사용 설정해야 합니다. 도구 선택기를 사용하여 요청별로 도구를 사용 설정하거나 사용 중지할 수 있습니다. MCP 서버 또는 도구를 제공하는 확장을 설치하여 더 많은 도구를 추가할 수 있습니다.

결과를 개선하려면 프롬프트에 관련 있는 도구만 선택하세요.

도구 선택기에 액세스하려면

  1. 채팅 보기을(를) 열고 에이전트 선택기에서 에이전트을(를) 선택합니다.

  2. 채팅 입력 필드에서 도구 구성 버튼을 선택합니다.

    Screenshot showing the Chat view, highlighting the Configure Tools button in the chat input.

  3. 현재 요청에 사용할 도구를 제어하기 위해 도구를 선택하거나 선택 취소합니다.

    검색 상자를 사용하여 도구 목록을 필터링합니다.

프롬프트 파일 또는 사용자 지정 에이전트로 채팅을 사용자 지정할 때 특정 프롬프트 또는 모드에 사용할 수 있는 도구를 지정할 수 있습니다. 도구 목록 우선 순위에 대해 자세히 알아보세요.

프롬프트에서 도구 사용

에이전트를 사용할 때 에이전트는 프롬프트와 요청 컨텍스트를 기반으로 사용 가능한 도구에서 사용할 도구를 자동으로 결정합니다. 에이전트는 필요한 경우 작업을 완료하기 위해 관련 도구를 자율적으로 선택하고 호출합니다.

또한 ` # ` 다음에 도구 이름을 입력하여 프롬프트에서 도구를 명시적으로 참조할 수도 있습니다. 이는 특정 도구를 사용하도록 하려는 경우에 유용합니다. 채팅 입력 필드에 ` # `를 입력하면 빌트인 도구, 설치된 서버의 MCP 도구, 확장 도구 및 도구 세트를 포함한 사용 가능한 도구 목록이 표시됩니다.

명시적 도구 참조 예시

  • "#fetch https://vscode.gisul.kr/updates의 콘텐츠 요약"
  • "Next.js에서 라우팅은 어떻게 작동하나요? #githubRepo vercel/next.js"
  • "#problems의 문제 해결"
  • "인증 흐름 설명 #codebase"

일부 도구는 프롬프트에서 직접 매개변수를 허용합니다. 예를 들어 `#fetch`는 URL이 필요하고 `#githubRepo`는 저장소 이름이 필요합니다.

기본적으로 도구 호출 세부 정보는 채팅 대화에서 축소됩니다. 채팅에서 도구 요약 줄을 선택하여 축소하거나 실험적인 `chat.agent.thinking.collapsedTools` 설정을 사용하여 기본 동작을 변경할 수 있습니다.

도구 승인

일부 도구는 실행 전에 승인이 필요합니다. 도구는 파일을 수정하거나 환경을 변경하거나 악의적인 도구 출력을 통해 프롬프트 삽입 공격을 시도할 수 있기 때문에 이는 보안 조치입니다.

승인이 필요한 도구가 있으면 도구 세부 정보를 보여주는 확인 대화 상자가 나타납니다. 승인하기 전에 정보를 주의 깊게 검토하세요. 도구를 한 번 사용, 현재 세션, 현재 작업 영역 또는 모든 향후 호출에 대해 승인할 수 있습니다.

Screenshot of a tool confirmation dialog showing tool details and approval options.

도구 및 에이전트 작업으로 인해 파일이 수정될 수 있습니다. 작업 공간의 중요 파일에 대한 실수로 인한 편집을 방지하는 방법을 알아보세요.

중요

특히 파일을 수정하거나, 명령을 실행하거나, 외부 서비스에 액세스하는 도구의 경우 승인하기 전에 항상 도구 매개변수를 주의 깊게 검토하세요. VS Code에서 AI 사용에 대한 보안 고려 사항을 참조하세요.

도구 자동 승인 활성화 또는 비활성화(실험적)

기본적으로 모든 도구를 자동으로 승인하도록 선택할 수 있습니다. 실수로 인한 승인을 방지하려면 `chat.tools.eligibleForAutoApproval` 설정을 사용하여 특정 도구에 대한 자동 승인을 비활성화할 수 있습니다. 해당 도구에 대해 항상 수동 승인이 필요하도록 값을 `false`로 설정합니다.

조직은 장치 관리 정책을 사용하여 특정 도구에 대한 수동 승인을 강제할 수도 있습니다. 엔터프라이즈 설명서에서 자세히 알아보세요.

URL 승인

`fetch` 도구와 같이 도구가 URL에 액세스하려고 할 때 악의적이거나 예상치 못한 콘텐츠로부터 보호하기 위해 두 단계의 승인 프로세스가 사용됩니다. VS Code는 채팅 보기에서 검토할 URL 세부 정보가 포함된 확인 대화 상자를 표시합니다.

  • 사전 승인: URL에 대한 요청 승인

    이 단계는 대상 도메인을 신뢰하는지 확인하고 민감한 데이터가 신뢰할 수 없는 사이트로 전송되는 것을 방지합니다.

    Screenshot of a URL approval dialog showing URL details and approval options.

    일회성 승인 또는 특정 URL 또는 도메인에 대한 향후 요청 자동 승인 옵션이 있습니다. 자동 승인을 선택하는 것은 결과 검토 필요성에 영향을 주지 않습니다. 요청 허용을 선택하면 URL 또는 도메인에 대한 사전 및 사후 승인을 모두 구성할 수 있습니다.

    참고

    사전 승인은 `"신뢰할 수 있는 도메인" 기능`을 존중합니다. 도메인이 여기에 나열되어 있으면 해당 도메인에 대한 요청이 자동으로 승인되고 결과 검토 단계가 연기됩니다.

  • 사후 승인: URL에서 가져온 응답 콘텐츠 승인

    이 단계는 가져온 콘텐츠가 채팅에 추가되거나 다른 도구로 전달되기 전에 검토하도록 하여 잠재적인 프롬프트 삽입 공격을 방지합니다.

    예를 들어 GitHub.com과 같이 잘 알려진 사이트에서 콘텐츠를 가져오는 요청을 승인할 수 있습니다. 그러나 이슈 설명이나 댓글과 같은 콘텐츠는 사용자 생성 콘텐츠이기 때문에 모델의 동작을 조작할 수 있는 유해한 콘텐츠를 포함할 수 있습니다.

    일회성 승인 또는 특정 URL 또는 도메인에서 향후 응답 자동 승인 옵션이 있습니다.

    중요

    사후 승인 단계는 "신뢰할 수 있는 도메인" 기능과 연결되어 있지 않으며 항상 검토가 필요합니다. 이는 일반적으로 신뢰하는 도메인에 있는 신뢰할 수 없는 콘텐츠로 인한 문제를 방지하기 위한 보안 조치입니다.

`chat.tools.urls.autoApprove` 설정은 자동 승인 URL 패턴을 저장하는 데 사용됩니다. 설정 값은 요청 및 응답에 대한 자동 승인을 활성화하거나 비활성화하는 부울이거나, 세분화된 제어를 위해 `approveRequest` 및 `approveResponse` 속성을 가진 객체입니다. 정확한 URL, glob 패턴 또는 와일드카드를 사용할 수 있습니다.

URL 자동 승인 예시

{
"chat.tools.urls.autoApprove": {
    "https://www.example.com": false,
    "https://*.contoso.com/*": true,
    "https://example.com/api/*": {
        "approveRequest": true,
        "approveResponse": false
    }
}

도구 확인 재설정

저장된 모든 도구 승인을 지우려면 명령 팔레트(⇧⌘P (Windows, Linux Ctrl+Shift+P))에서 채팅: 도구 확인 재설정 명령을 사용하세요.

도구 매개변수 편집

도구가 실행되기 전에 입력 매개변수를 검토하고 편집할 수 있습니다.

  1. 도구 확인 대화 상자가 나타나면 도구 이름 옆의 위쪽 화살표를 선택하여 세부 정보를 확장합니다.

  2. 필요에 따라 도구 입력 매개변수를 편집합니다.

  3. 수정된 매개변수로 도구를 실행하려면 허용을 선택합니다.

터미널 명령

에이전트는 작업을 완료하기 위한 워크플로의 일부로 터미널 명령을 사용할 수 있습니다. 에이전트가 터미널 명령을 실행하기로 결정하면 VS Code 내의 통합 터미널에서 실행하기 위해 빌트인 터미널 도구를 사용합니다.

채팅 대화에서 에이전트는 실행한 명령을 표시합니다. 명령 옆의 출력 보기 ( `>` )를 선택하여 채팅에서 명령의 출력을 인라인으로 볼 수 있습니다. 터미널 보기를 선택하여 통합 터미널에서 전체 출력을 볼 수도 있습니다.

Screenshot showing terminal command output in chat.

터미널 명령 출력이 표시되는 위치를 구성하기 위해 실험적인 `chat.tools.terminal.outputLocation` 설정을 사용하세요. 채팅에서 인라인으로, 통합 터미널에서.

터미널 창에서 에이전트가 채팅 세션에 사용한 터미널 목록을 볼 수 있습니다. 터미널 목록의 채팅 아이콘을 통해 에이전트 터미널을 구별할 수도 있습니다.

Screenshot showing the integrated terminal with multiple agent terminals.

터미널 명령 자동 승인

`chat.tools.terminal.autoApprove` 설정을 사용하여 자동으로 승인할 터미널 명령을 구성할 수 있습니다. 허용되거나 거부된 명령을 모두 지정할 수 있습니다.

  • 명령을 `true`로 설정하여 자동으로 승인합니다.
  • 명령을 `false`로 설정하여 항상 승인이 필요하도록 합니다.
  • 정규식을 사용하려면 패턴을 `/` 문자로 묶습니다.

예를 들어,

{
  // Allow the `mkdir` command
  "mkdir": true,
  // Allow `git status` and commands starting with `git show`
  "/^git (status|show\\b.*)$/": true,

  // Block the `del` command
  "del": false,
  // Block any command containing "dangerous"
  "/dangerous/": false
}

기본적으로 패턴은 개별 하위 명령과 일치합니다. 명령이 자동 승인되려면 모든 하위 명령이 `true` 항목과 일치해야 하며 `false` 항목과 일치하지 않아야 합니다.

고급 시나리오의 경우 `matchCommandLine` 속성을 사용한 객체 구문을 사용하여 개별 하위 명령 대신 전체 명령줄과 일치시킵니다.

관련 설정

주의

터미널 명령을 자동으로 승인하면 최선의 노력을 기울여 보호하며 에이전트가 악의적으로 행동하지 않는다고 가정합니다. 터미널 자동 승인을 활성화할 때 프롬프트 삽입으로부터 자신을 보호하는 것이 중요합니다. 일부 명령이 통과할 수 있기 때문입니다. 탐지가 실패할 수 있는 몇 가지 예시는 다음과 같습니다.

  • VS Code는 PowerShell 및 bash 트리 시터 문법을 사용하여 하위 명령을 추출하므로 이러한 문법이 감지하지 못하면 패턴이 감지되지 않습니다.
  • VS Code는 zsh 또는 fish 문법이 없기 때문에 bash 문법을 사용하므로 일부 하위 명령이 감지되지 않습니다.
  • 파일 쓰기 감지는 현재 최소화되어 있으므로 파일 편집 에이전트 도구를 사용하는 것보다 터미널을 사용하여 파일에 쓸 수 있을 수 있습니다.

도구 세트로 도구 그룹화

도구 세트는 프롬프트에서 단일 개체로 참조할 수 있는 도구 모음입니다. 도구 세트는 관련 도구를 구성하고 채팅 프롬프트, 프롬프트 파일사용자 지정 채팅 에이전트에서 더 쉽게 사용할 수 있도록 합니다. 일부 빌트인 도구는 `#edit` 및 `#search`와 같은 미리 정의된 도구 세트의 일부입니다.

도구 세트 만들기

도구 세트를 만들려면

  1. 명령 팔레트에서 채팅: 도구 세트 구성 명령을 실행하고 새 도구 세트 파일 만들기를 선택합니다.

    또는 채팅 보기 > 도구 세트 > 새 도구 세트 파일 만들기에서 구성을 선택합니다.

    Screenshot showing the Chat view and Configure Chat menu, highlighting the Configure Chat button.

  2. 열리는 `.jsonc` 파일에 도구 세트를 정의합니다.

    도구 세트의 구조는 다음과 같습니다.

    {
      "reader": {
        "tools": ["changes", "codebase", "problems", "usages"],
        "description": "Tools for reading and gathering context",
        "icon": "book"
      }
    }
    

    도구 세트 속성

    • tools: 도구 이름 배열 (빌트인 도구, MCP 도구 또는 확장 도구)
    • description: 도구 선택기에 표시되는 간단한 설명
    • icon: 도구 세트 아이콘 ( 제품 아이콘 참조 참조)

도구 세트 사용

프롬프트에서 `#` 다음에 도구 세트 이름을 입력하여 도구 세트를 참조합니다.

  • "코드베이스에서 보안 문제 분석 #reader"
  • "DB 연결 문자열은 어디에 정의되어 있나요? #search"

도구 선택기에서 도구 세트는 관련 도구의 접을 수 있는 그룹으로 사용할 수 있습니다. 전체 도구 세트를 선택하거나 선택 취소하여 여러 관련 도구를 한 번에 빠르게 사용 설정하거나 사용 중지할 수 있습니다.

자주 묻는 질문

어떤 도구를 사용할 수 있는지 어떻게 알 수 있나요?

채팅 입력 필드에 `#`를 입력하면 사용 가능한 모든 도구 목록이 표시됩니다. 채팅의 도구 선택기를 사용하여 활성 도구 목록을 보고 관리할 수도 있습니다.

"요청당 도구가 128개를 초과할 수 없습니다."라는 오류가 발생합니다.

채팅 요청에는 한 번에 최대 128개의 도구를 사용하도록 설정할 수 있습니다. 요청당 128개 초과 도구에 대한 오류가 발생하면

  • 채팅 보기의 도구 선택기를 열고 도구 또는 전체 MCP 서버를 선택 취소하여 개수를 줄입니다.

  • 또는 `github.copilot.chat.virtualTools.threshold` 설정을 사용하여 가상 도구를 활성화하여 대규모 도구 세트를 자동으로 관리합니다.

에이전트가 Command Prompt를 터미널 셸로 사용하지 않는 이유는 무엇인가요?

에이전트는 터미널의 기본값으로 구성된 셸을 사용합니다. cmd 제외. 이는 셸 통합이 Command Prompt에서 지원되지 않기 때문입니다. 이는 에이전트가 터미널 내에서 무슨 일이 일어나고 있는지 거의 알 수 없다는 것을 의미합니다. 명령이 실행 중이거나 실행을 마쳤을 때 직접 신호를 받는 대신 에이전트는 시간 초과에 의존하고 터미널이 유휴 상태가 되기를 기다려야 계속할 수 있습니다. 이로 인해 느리고 불안정한 환경이 됩니다.

`chat.tools.terminal.terminalProfile.windows` 설정을 사용하여 에이전트가 Command Prompt를 사용하도록 구성할 수 있지만 PowerShell을 사용하는 것에 비해 성능이 떨어집니다.

"chat.tools.terminal.terminalProfile.windows": {
  "path": "C:\\WINDOWS\\System32\\cmd.exe"
}

모든 도구 및 터미널 명령을 자동으로 승인할 수 있나요?

주의

이 설정은 잠재적으로 파괴적인 작업을 포함하여 모든 수동 승인을 비활성화합니다. 이는 중요한 보안 보호 기능을 제거하고 공격자가 기기를 손상시키는 것을 더 쉽게 만듭니다. 이 설정은 의미를 이해하는 경우에만 활성화하십시오. 자세한 내용은 보안 설명서를 참조하세요.

모든 도구 및 터미널 명령이 사용자 확인 없이 실행되도록 하려면 `chat.tools.global.autoApprove` 설정을 활성화하세요. 이 설정은 모든 작업 공간에서 전역적으로 적용됩니다!

도구와 채팅 참가자의 차이점은 무엇인가요?

채팅 참가자는 채팅에서 특정 도메인에 대한 질문을 할 수 있도록 하는 전문화된 도우미입니다. 채팅 참가자를 채팅 요청을 전달하고 나머지는 처리하는 도메인 전문가라고 생각하면 됩니다.

도구는 에이전트 흐름의 일부로 호출되어 특정 작업을 수행하고 완료합니다. 단일 채팅 요청에 여러 도구를 포함할 수 있지만 한 번에 하나의 채팅 참가자만 활성화할 수 있습니다.

나만의 도구를 만들 수 있나요?

예. 두 가지 방법으로 도구를 만들 수 있습니다.

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