{"meta":{"title":"Загрузка инструментов по запросу с помощью поиска инструментов","intro":"Поиск по инструментам сохраняет ограниченный контекст, позволяя Copilot CLI загружать внешние инструменты только тогда, когда задача нуждается в них.","product":"GitHub Copilot","breadcrumbs":[{"href":"/ru/enterprise-cloud@latest/copilot","title":"GitHub Copilot"},{"href":"/ru/enterprise-cloud@latest/copilot/concepts","title":"Основные понятия"},{"href":"/ru/enterprise-cloud@latest/copilot/concepts/agents","title":"Агенты"},{"href":"/ru/enterprise-cloud@latest/copilot/concepts/agents/copilot-cli","title":"Copilot CLI"},{"href":"/ru/enterprise-cloud@latest/copilot/concepts/agents/copilot-cli/tool-search","title":"Поиск по инструментам"}],"documentType":"article"},"body":"# Загрузка инструментов по запросу с помощью поиска инструментов\n\nПоиск по инструментам сохраняет ограниченный контекст, позволяя Copilot CLI загружать внешние инструменты только тогда, когда задача нуждается в них.\n\n## Introduction\n\nПодключение MCP-серверов и других внешних инструментов Copilot CLI — это мощно, но каждый добавленный инструмент имеет свою цену: его определение занимает место в контекстном окне модели, а длинное меню инструментов затрудняет агенту выбор правильного. Загрузка инструментов по требованию (или «поиск инструментов») предотвращает перегружание контекстного окна определениями инструментов, которые агент не использует. Агент начинает только с встроенных инструментов и способа поиска остальных, а дополнительные инструменты загружается только тогда, когда они нужны для выполнения задачи.\n\nПоиск инструментов решает две проблемы, связанные с растущим числом инструментов:\n\n* **Пустой контекст.** Несколько десятков определений инструментов могут съесть 10–20 тысяч токенов до того, как агент выполнит какую-либо работу.\n* **Снижена точность выбора инструментов.** Когда сразу в поле зрения несколько десятков инструментов, модель с большей вероятностью потянется к неправильному.\n\n## Что происходит во время сессии\n\nКаждый раз, когда вы вводите запрос, CLI проверяет текущий инвентар инструментов и решает, использовать ли поиск инструментов. Ниже примерно 30 инструментов экономия от поиска инструментов не стоит того, поэтому Copilot CLI они полностью пропускают поиск инструментов и просто загружают всё.\n\nИзначально, при поиске по инструментам, загружаются только встроенные инструменты CLI. Всё остальное — MCP-инструменты и другие внешние инструменты — задерживается. Агент видит, что эти инструменты существуют и примерно для чего они предназначены, но их полные определения ещё не загружены.\n\nКогда агент достигает шага, требующего загруженного инструмента, он быстро ищет по доступным инструментам и выводит ближайшие совпадения в контекст. Эти инструменты остаются на протяжении всего разговора, поэтому поиск происходит только при первом появлении каждого из них.\n\nЭтот первый поиск требует дополнительного обмена с моделью, но вы получаете её обратно много раз, если сохраняете контекст маленьким на каждом последующем ходе.\n\n### Инструменты, которые всегда загружены\n\nНекоторые инструменты пропускают поиск инструментов и готовы сразу:\n\n* Copilot CLIвстроенные инструменты (grep, glob, bash, редактирование и так далее).\n* Инструменты с MCP-сервера, который вы настроили с `deferTools: \"never\"`. См. [раздел «Всегда загруженные инструменты MCP-сервера](#keeping-an-mcp-servers-tools-always-loaded) » позже в этой статье.\n* Инструменты, загружаемые пользовательским агентом. См. [раздел «Отсрочка конфигурирования инструментов в пользовательских агентах](#configuring-tool-deferral-in-custom-agents) » позже в этой статье.\n\n## Отключение поиска по инструментам\n\nПоиск инструментов по умолчанию включен и автоматически активируется, когда вы находитесь на поддерживаемой модели и у вас достаточно подключённых инструментов, чтобы это было выгодно. Чтобы отключить поиск инструментов и вернуться к загрузке всех инструментов, настройте `toolSearch: false` его в своих личных настройках. См [. раздел AUTOTITLE](/ru/enterprise-cloud@latest/copilot/reference/copilot-cli-reference/cli-config-dir-reference#user-settings-copilotsettingsjson).\n\n### Поддерживаемые модели\n\n| Семья            | Поддерживаемые версии                                    |\n| ---------------- | -------------------------------------------------------- |\n| Клод (Anthropic) | Mythos Preview, Fable, Sonnet 4.0+, Opus 4.0+ (не Haiku) |\n| GPT (OpenAI)     | GPT-5.4 и более поздние                                  |\n\nВ любой другой модели все инструменты загружаются спереди.\n\n### Всегда загруженные инструменты MCP-сервера\n\nИногда вы можете хотеть, чтобы инструменты конкретного MCP-сервера всегда находились перед агентом — например, сервер, чьи инструменты используются постоянно, или для того, где дополнительный поиск не стоит того. У каждого MCP-сервера есть `deferTools` настройка, которая управляет следующим образом:\n\n* `\"auto\"` (по умолчанию) — инструменты сервера ведут себя как обычные и могут быть отложены, когда вы превысите порог.\n* `\"never\"`— инструменты сервера всегда включены в список инструментов агента, даже когда поиск инструментов активен для всего остального.\n\nСамый простой способ настроить это — использовать `/mcp edit` команду слэш. В форме редактирования сервера MCP переключите **Delay Tools** на **Never**. Вы также можете настроить его напрямую в `~/.copilot/mcp-config.json`:\n\n```json\n{\n    \"mcpServers\": {\n        \"my-server\": {\n            \"type\": \"stdio\",\n            \"command\": \"npx\",\n            \"args\": [\"-y\", \"@example/mcp-server\"],\n            \"deferTools\": \"never\",\n            \"tools\": [\"*\"]\n        }\n    }\n}\n```\n\n### Отсрочка настройки инструментов в пользовательских агентах\n\nКогда пользовательский агент указывает свои инструменты по названию, эти инструменты всегда загружаются, чтобы агент мог сразу их использовать. Обычно это то, что нужно, но если агент объявляет большой набор инструментов и касается лишь нескольких из них за запуск, вы можете передать этот список обратно в поиск инструментов, чтобы инструменты находились по необходимости, а не загружались сразу.\n\nДля агента Markdown (`.github/agents/*.md`), добавьте `deferred-tool-loading: true` в переднюю часть:\n\n```markdown\n---\nname: my-agent\ndescription: Works with a large catalog of tools\ntools:\n    - some_mcp_tool\n    - another_mcp_tool\n    # ...many more\ndeferred-tool-loading: true\n---\n\nAgent instructions here.\n```\n\nИмейте в виду следующее относительно `deferred-tool-loading` сеттинга:\n\n* Это действует только при активном поиске по инструментам (то есть на поддерживаемой модели с достаточным инструментом для преодоления порога).\n* Это важно только для агентов, которые называют свои инструменты. Агенты, использующие джокер, `*` уже используют поиск по инструментам.\n\n## Оптимизация инструментов для поиска инструментов\n\nПоиск инструментов сопоставляет действия агента с **именем** каждого инструмента, **его описанием** и **названиями параметров и описаниями**. Чёткая и конкретная формулировка позволяет инструменту появляться для нужных запросов:\n\n* Назовите инструменты для их работы, чтобы их было проще найти.\n* Пишите описания словами, которые люди действительно ищут, а не расплывчатыми словами."}