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 .

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

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

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