Claude Managed Agents предоставляет набор встроенных инструментов, которые Claude может использовать автономно в рамках сессии. Вы контролируете, какие инструменты доступны, указывая их в конфигурации агента.
Claude Managed Agents также поддерживает пользовательские инструменты, определяемые пользователем. Ваше приложение выполняет эти инструменты отдельно и возвращает результаты Claude, который использует их для продолжения задачи. Чтобы предоставить агенту инструменты с сервера MCP, используйте вместо этого коннектор MCP.
Набор инструментов агента включает следующие инструменты. Все они включены по умолчанию, когда вы добавляете набор инструментов в конфигурацию агента. Каждая запись в массиве configs идентифицируется по своему полю name с использованием значений из столбца «Имя» и принимает необязательное поле type с тем же значением. Записи web_search и web_fetch принимают дополнительные настройки; см. Ограничение доменов для веб-поиска и веб-загрузки.
| Инструмент | Имя | Описание |
|---|---|---|
| Bash | bash | Выполнение команд bash в сеансе оболочки |
| Read | read | Чтение файла из файловой системы песочницы |
| Write | write | Запись файла в файловую систему песочницы |
| Edit | edit | Выполнение замены строк в файле |
| Glob | glob | Быстрое сопоставление файлов по шаблонам glob |
| Grep | grep | Текстовый поиск с использованием регулярных выражений |
| Web fetch | web_fetch | Загрузка содержимого по URL |
| Web search | web_search | Поиск информации в интернете |
Когда вывод инструмента превышает 100 000 символов (около 25 000 токенов), он автоматически записывается в файл в песочнице. Модель получает усечённый предварительный просмотр с путём к файлу и может прочитать полное содержимое оттуда.
Включите полный набор инструментов с помощью agent_toolset_20260401 при создании агента. Используйте массив configs, чтобы отключить определённые инструменты или переопределить их настройки. Каждая запись конфигурации также может задавать permission_policy, который определяет, одобряются ли вызовы инструмента автоматически или требуют подтверждения. См. Политики разрешений для доступных типов политик.
Записи конфигурации для web_search и web_fetch также принимают фильтры доменов и другие веб-настройки; см. Ограничение доменов для веб-поиска и веб-загрузки.
ant beta:agents create <<'YAML'
name: Coding Assistant
model: claude-opus-5
tools:
- type: agent_toolset_20260401
configs:
- name: web_fetch
enabled: false
YAMLЧтобы отключить инструмент, установите enabled: false в его записи конфигурации в объекте набора инструментов массива tools вашего агента:
{
"type": "agent_toolset_20260401",
"configs": [
{ "name": "web_fetch", "enabled": false },
{ "name": "web_search", "enabled": false }
]
}Объект default_config задаёт базовую конфигурацию для каждого инструмента в наборе, а записи configs для отдельных инструментов переопределяют её. Чтобы начать с отключённого состояния и включить только то, что вам нужно, установите default_config.enabled в false:
{
"type": "agent_toolset_20260401",
"default_config": { "enabled": false },
"configs": [
{ "name": "bash", "enabled": true },
{ "name": "read", "enabled": true },
{ "name": "write", "enabled": true }
]
}Чтобы контролировать, к каким сайтам могут обращаться веб-инструменты агента, задайте allowed_domains (инструмент может обращаться только к этим хостам) или blocked_domains (инструмент никогда не может обращаться к этим хостам) в записях web_search и web_fetch массива configs набора инструментов. Каждый инструмент имеет собственный список, поэтому web_search и web_fetch могут иметь разные ограничения. Указанный домен охватывает этот хост и все его поддомены. Во время выполнения вызов web_fetch для URL, который не разрешён его списками, возвращает агенту результат с ошибкой (is_error: true в событии agent.tool_result, с содержимым, указывающим код ошибки url_not_allowed), а web_search исключает результаты, которые не разрешены его списками.
Следующий набор инструментов ограничивает web_search двумя сайтами и локализует его результаты, а также блокирует один хост для web_fetch, ограничивая при этом объём загруженного содержимого, попадающего в контекст:
{
"type": "agent_toolset_20260401",
"configs": [
{
"type": "web_search",
"name": "web_search",
"allowed_domains": ["docs.example.com", "arxiv.org"],
"user_location": {
"type": "approximate",
"country": "US",
"timezone": "America/Los_Angeles"
}
},
{
"type": "web_fetch",
"name": "web_fetch",
"blocked_domains": ["ads.example.com"],
"max_content_tokens": 50000
}
]
}Следующий запрос создаёт агента с этим набором инструментов и выводит массив configs из ответа:
ant beta:agents create --transform tools.0.configs <<'YAML'
name: Research Agent
model: claude-opus-5
tools:
- type: agent_toolset_20260401
configs:
- type: web_search
name: web_search
allowed_domains: [docs.example.com, arxiv.org]
user_location:
type: approximate
country: US
timezone: America/Los_Angeles
- type: web_fetch
name: web_fetch
blocked_domains: [ads.example.com]
max_content_tokens: 50000
YAMLВ Claude Console задайте разрешённые или заблокированные домены в строках web_search и web_fetch карточки Built-in tools на форме агента; задайте max_content_tokens и user_location в представлении Raw конфигурации агента.
Помимо enabled и permission_policy, записи веб-инструментов принимают следующие настройки:
| Настройка | Применяется к | Описание |
|---|---|---|
allowed_domains | web_search, web_fetch | Единственные хосты, к которым может обращаться инструмент. Не может сочетаться с blocked_domains в одной записи. |
blocked_domains | web_search, web_fetch | Хосты, к которым инструмент не может обращаться. |
max_content_tokens | web_fetch | Ограничивает объём загруженного содержимого страницы, включаемого в контекст. Должно быть положительным целым числом. См. ограничения содержимого. |
user_location | web_search | Локализует результаты поиска. Объект с теми же полями, что и параметр user_location в Messages API. |
allowed_domains, либо blocked_domains, но не оба. Запись, задающая оба, отклоняется.null.web_search, описанного далее в этом списке. Используйте example.com, а не https://example.com, example.com:443 или *.example.com. Имена хостов сравниваются без учёта регистра, а одиночный завершающий / игнорируется.example.com охватывает docs.example.com, но docs.example.com не охватывает example.com или api.example.com. Начальный www. — это такой же поддомен, как и любой другой, поэтому www.example.com не охватывает example.com; укажите домен без префикса, чтобы охватить оба.127.1. Вместо этого укажите доменное имя сайта.com, co.uk или gov.uk, отклоняется, как и имя из одной метки, такое как intranet. Укажите полный домен, например example.co.uk.localhost и хосты, оканчивающиеся на .localhost, .local, .internal, .localdomain или .invalid, отклоняются.xn-- (Punycode) для интернационализированных доменных имён; домен, содержащий символы, отличные от ASCII, отклоняется.web_fetch не может включать путь: используйте example.com, а не example.com/*. Домен для web_search может содержать суффикс пути, например example.com/blog, в котором путь не может содержать пробелы, ?, # или любой из символов $ , | ^ !. Предпочитайте простые имена хостов и для web_search, поскольку поставщик поиска сопоставляет суффиксы путей как шаблоны URL, а не как строгие правила хостов.www.example.com и example.com считаются разными доменами; см. приведённое выше правило сопоставления, чтобы понять, что охватывает каждый из них.Нарушения формата и ограничений отклоняются с ошибкой 400 invalid_request_error при создании агента или обновлении агента, а также при создании или обновлении сессии, которая передаёт tools. Например, сообщение для записи, задающей оба списка, включает Only one of allowed_domains or blocked_domains may be set., а сообщение для пустого списка включает allowed_domains: Empty list of domains is ambiguous. Provide at least one domain or null. Сообщение для домена, нарушающего правило формата, указывает его список и позицию (с нуля), например allowed_domains.0: IP addresses are not supported; provide a plain hostname like "example.com".
Те же запросы также отклоняют три настройки, зависящие от поставщиков поиска и загрузки: домен в allowed_domains, к которому краулеру Anthropic не разрешён доступ, user_location.country, который не поддерживается поставщиком поиска (сообщение заканчивается на user_location.country: not a country the search provider supports), и user_location.timezone, который не является допустимым именем IANA. Сессия повторно проверяет конфигурацию при первой инициализации инструмента; если настройка, принятая ранее, на этот момент больше не действительна, сессия генерирует событие session.error и возвращается в состояние idle без повторных попыток. Исправьте настройку, обновив инструменты сессии, обновите также агента, чтобы новые сессии начинались с исправленной конфигурацией, затем отправьте новое user.message, чтобы продолжить.
В мультиагентной сессии каждый список доменов, применяемый к потоку, действует одновременно: агент в составе координатора связан собственными allowed_domains и blocked_domains, списками любого агента, который его вызвал, и текущими списками координатора.
blocked_domains, сохраняет allowed_domains координатора и блокирует эти хосты внутри него, а агент из состава, задающий собственные allowed_domains, может обращаться только к хостам, которые охватываются и его списком, и списком координатора.url_not_allowed, указывающей, что ни один домен не разрешён, и описание инструмента сообщает об этом модели. Чтобы избежать этого, держите список разрешённых доменов каждого агента из состава внутри списка координатора.max_content_tokens и user_location не объединяются: поток использует значение из собственной конфигурации инструмента, если оно задано, иначе — из агента, который его вызвал, иначе — из текущей конфигурации координатора.{"type": "self"} не имеет собственных веб-настроек и следует текущим настройкам координатора.web_search и web_fetch, независимо от этих настроек.Эти настройки используют тот же словарь allowed_domains и blocked_domains, что и фильтрация доменов в серверных инструментах Messages API, со следующими отличиями в Managed Agents:
web_fetch, не могут включать путь.max_uses, citations и cache_control недоступны в наборе инструментов.Помимо встроенных инструментов, вы можете определять пользовательские инструменты. Пользовательские инструменты аналогичны определяемым пользователем клиентским инструментам в Messages API.
Каждый пользовательский инструмент определяет контракт: вы указываете, какие операции доступны и что они возвращают, а Claude определяет, когда и как их вызывать. Модель никогда ничего не выполняет самостоятельно. Она выдаёт структурированный запрос, ваш код выполняет операцию, и результат возвращается в разговор. См. Поток событий сессии, чтобы узнать, как получать вызовы пользовательских инструментов и возвращать результаты во время сессии.
Если ваши сессии выполняются в самостоятельно размещённой песочнице, рабочий процесс среды может обслуживать пользовательские инструменты из вашей песочницы, включая инструменты, оборачивающие сервер MCP внутри вашей сети.
ant beta:agents create < agent.yamlname: Weather Agent
model: claude-opus-5
tools:
- type: agent_toolset_20260401
- type: custom
name: get_weather
description: Get current weather for a location
input_schema:
type: object
properties:
location:
type: string
description: City name
required:
- locationПосле того как вы определили пользовательские инструменты для агента, агент вызывает их во время сессии.
create_pr, review_pr, merge_pr) сгруппируйте их в один инструмент с параметром action. Меньшее количество более функциональных инструментов снижает неоднозначность выбора и облегчает Claude навигацию по вашему набору инструментов.db_query или storage_read). Это делает выбор инструмента однозначным по мере роста вашей библиотеки.Подключайте серверы MCP к вашим агентам для доступа к внешним инструментам и источникам данных.
Контролируйте, когда выполняются инструменты агента и MCP.
Отправляйте события, получайте ответы в режиме потоковой передачи, прерывайте или перенаправляйте сессию в ходе выполнения.
Was this page helpful?