Skip to main content

도구 검색으로 필요할 때 도구 불러오기

도구 검색은 작업에서 필요한 경우에만 외부 도구를 로드하도록 코파일럿 CLI 하여 컨텍스트를 작게 유지합니다.

소개

MCP 서버 및 기타 외부 도구를 코파일럿 CLI 연결하는 것은 강력하지만 추가하는 모든 도구에는 비용이 발생합니다. 즉, 해당 정의는 모델의 컨텍스트 창에서 공간을 차지하며, 긴 도구 메뉴를 사용하면 에이전트가 올바른 도구를 선택하기가 더 어려워집니다. 주문형 도구 로드(또는 "도구 검색")를 사용하면 에이전트가 사용하지 않는 도구에 대한 정의로 인해 컨텍스트 창이 복잡해지지 않습니다. 에이전트는 기본 제공 도구와 나머지를 조회하는 방법으로 시작한 다음 작업을 완료하는 데 필요한 경우에만 추가 도구를 로드합니다.

도구 검색은 점점 더 많은 도구와 관련된 두 가지 문제를 해결합니다.

  • 낭비된 컨텍스트입니다. 수십 개의 도구 정의는 에이전트가 작업을 수행하기 전에 10~20K 토큰을 사용할 수 있습니다.
  • 도구 선택 정확도가 저하되었습니다. 한 번에 수십 개의 도구가 표시되면 모델이 잘못된 도구에 도달할 가능성이 더 높습니다.

세션 중 발생하는 일

프롬프트를 입력할 때마다 CLI는 현재 도구 인벤토리를 확인하고 도구 검색을 사용할지 여부를 결정합니다. 약 30개의 도구 아래에서는 도구 검색을 통해 얻을 수 있는 절감액이 가치가 없으므로 코파일럿 CLI 도구 검색을 완전히 건너뛰고 모든 것을 로드합니다.

처음에는 도구 검색을 사용할 때 CLI의 기본 제공 도구만 로드됩니다. MCP 도구 및 기타 외부 도구와 같은 다른 모든 항목은 보류됩니다. 에이전트는 이러한 도구가 존재하고 대략적인 것을 볼 수 있지만 전체 정의는 아직 로드되지 않았습니다.

에이전트가 로드되지 않은 도구가 ���요한 단계에 도달하면 사용 가능한 도구에 대해 빠른 검색을 실행하고 가장 가까운 일치 항목을 컨텍스트로 가져옵니다. 그러면 이러한 도구는 대화가 끝날 때까지 계속 사용 가능하므로, 각 도구에 대한 조회는 처음 필요할 때 한 번만 수행됩니다.

첫 번째 조회는 모델과의 추가 교환 비용이 들지만 이후 턴마다 컨텍스트를 작게 유지하여 여러 번 다시 가져옵니다.

항상 로드되는 도구

소수의 도구가 도구 검색을 건너뛰고 즉시 준비됩니다.

도구 검색은 기본적으로 사용하도록 설정되며 지원되는 모델에 있을 때마다 자동으로 활성화되며, 연결된 도구가 충분히 있어 가치 있게 사용할 수 있습니다. 도구 검색을 사용하지 않도록 설정하고 모든 도구 로드로 돌아가려면 개인 설정에서 설정합니다 toolSearch: false . GITHUB COPILOT CLI 구성 디렉터리을(를) 참조하세요.

지원되는 모델

패밀리지원되는 버전
클로드(앤트로픽)Mythos Preview, Fable, Sonnet 4.0 이상, Opus 4.0 이상(하이쿠 아님)
GPT(OpenAI)GPT-5.4 이상

다른 모델에서는 모든 도구가 앞에 로드됩니다.

MCP 서버의 도구가 항상 로드된 상태로 유지

경우에 따라 특정 MCP 서버의 도구가 항상 에이전트 앞에 배치되도록 할 수 있습니다(예: 도구가 지속적으로 사용되는 서버 또는 추가 검색 단계가 가치가 없는 서버). 각 MCP 서버에는 다음을 deferTools 제어하는 설정이 있습니다.

  • "auto" (기본값) - 서버의 도구는 다른 도구와 같이 동작하며 임계값을 초과하면 지연될 수 있습니다.
  • "never"- 다른 모든 항목에 대해 도구 검색이 활성화되어 있는 동안에도 서버의 도구는 항상 에이전트의 도구 목록에 포함됩니다.

이를 설정하는 가장 쉬운 방법은 슬래시 명령을 사용하는 /mcp edit 것입니다. MCP 서버를 편집하기 위한 양식에서 Defer ToolsNever로 전환합니다. ~/.copilot/mcp-config.json에서 직접 설정할 수도 있습니다:

{
    "mcpServers": {
        "my-server": {
            "type": "stdio",
            "command": "npx",
            "args": ["-y", "@example/mcp-server"],
            "deferTools": "never",
            "tools": ["*"]
        }
    }
}

사용자 지정 에이전트에서 도구 지연 구성

사용자 지정 에이전트가 해당 도구를 이름으로 나열하면 에이전트가 즉시 사용할 수 있도록 해당 도구가 항상 로드됩니다. 일반적으로 원하는 것이지만 에이전트가 큰 도구 집합을 선언하고 지정된 실행에서 그 중 몇 개만 터치하는 경우 도구 검색에 해당 목록을 다시 전달하여 모든 도구가 한 번에 로드되지 않고 필요에 따라 검색되도록 할 수 있습니다.

Markdown 에이전트(.github/agents/*.md)의 경우 프런트매터 앞부분에 deferred-tool-loading: true를 추가하세요:

---
name: my-agent
description: Works with a large catalog of tools
tools:
    - some_mcp_tool
    - another_mcp_tool
    # ...many more
deferred-tool-loading: true
---

Agent instructions here.

설정과 관련하여 다음 사항에 유의하세요 deferred-tool-loading .

  • 도구 검색이 활성화된 경우에만 영향을 줍니다(즉, 임계값을 초과할 수 있는 충분한 도구가 있는 지원되는 모델에서).
  • 도구 이름을 지정하는 에이전트의 경우에만 중요합니다. * 와일드카드를 사용하는 에이전트는 이미 도구 검색을 사용하고 있습니다.

도구 검색은 에이전트가 각 도구의 이름, 설명매개 변수 이름 및 설명에 대해 수행하려는 작업과 일치합니다. 명확한 특정 단어를 사용하면 올바른 요청에 대한 도구가 표시됩니다.

  • 쉽게 찾을 수 있도록 도구가 하는 일이 드러나게 이름을 지정하세요.
  • 사람들이 모호한 것이 아니라 실제로 검색할 단어로 설명을 작성합니다.