web_search_20250305
, text_editor_20250124
) для обеспечения совместимости между версиями моделей.Предоставьте Claude инструменты и пользовательский запрос
Claude решает использовать инструмент
stop_reason
равный tool_use
, сигнализируя о намерении Claude.Выполните инструмент и верните результаты
user
, содержащем блок контента tool_result
Claude использует результат инструмента для формулирования ответа
Предоставьте Claude инструменты и пользовательский запрос
Claude выполняет серверный инструмент
Claude использует результат серверного инструмента для формулирования ответа
Пример одного инструмента
get_weather
с предоставленными входными данными и вернуть результат в новом сообщении user
:Параллельное использование инструментов
tool_use
включаются в одно сообщение ассистента, и все соответствующие блоки tool_result
должны быть предоставлены в последующем сообщении пользователя.Пример нескольких инструментов
get_weather
и get_time
, а также пользовательским запросом, который запрашивает оба.get_weather
, затем get_time
после получения результата погодыtool_use
в одном ответе, когда операции независимыuser
, с каждым результатом в своем собственном блоке tool_result
.Недостающая информация
get_weather
выше, если вы спросите Claude “Какая погода?” без указания местоположения, Claude, особенно Claude Sonnet, может сделать предположение о входных данных инструментов:Последовательные инструменты
get_location
для получения местоположения пользователя, затем передачи этого местоположения инструменту get_weather
:get_location
, чтобы получить местоположение пользователя. После того, как вы вернете местоположение в tool_result
, Claude затем вызовет get_weather
с этим местоположением, чтобы получить окончательный ответ.Полный разговор может выглядеть так:Роль | Содержание |
---|---|
Пользователь | Какая погода там, где я нахожусь? |
Ассистент | Сначала я найду ваше текущее местоположение, а затем проверю там погоду. [Использование инструмента для get_location] |
Пользователь | [Результат инструмента для get_location с соответствующим id и результатом San Francisco, CA] |
Ассистент | [Использование инструмента для get_weather со следующими входными данными]{ “location”: “San Francisco, CA”, “unit”: “fahrenheit” } |
Пользователь | [Результат инструмента для get_weather с соответствующим id и результатом “59°F (15°C), в основном облачно”] |
Ассистент | Основываясь на вашем текущем местоположении в Сан-Франциско, Калифорния, погода сейчас 59°F (15°C) и в основном облачно. Это довольно прохладный и пасмурный день в городе. Возможно, вы захотите взять легкую куртку, если собираетесь выходить на улицу. |
get_location
.get_location
и возвращает результат “San Francisco, CA” в блоке tool_result
.get_weather
, передавая “San Francisco, CA” как параметр location
(а также угаданный параметр unit
, поскольку unit
не является обязательным параметром).get_weather
с предоставленными аргументами и возвращает данные о погоде в другом блоке tool_result
.Цепочка рассуждений при использовании инструментов
Ответьте на запрос пользователя, используя соответствующие инструменты (если они доступны). Перед вызовом инструмента проведите анализ. Сначала подумайте, какой из предоставленных инструментов является соответствующим инструментом для ответа на запрос пользователя. Во-вторых, пройдите через каждый из обязательных параметров соответствующего инструмента и определите, предоставил ли пользователь напрямую или дал достаточно информации для вывода значения. При принятии решения о том, можно ли вывести параметр, внимательно рассмотрите весь контекст, чтобы увидеть, поддерживает ли он конкретное значение. Если все обязательные параметры присутствуют или могут быть разумно выведены, продолжайте с вызовом инструмента. НО, если одно из значений для обязательного параметра отсутствует, НЕ вызывайте функцию (даже не с заполнителями для отсутствующих параметров) и вместо этого попросите пользователя предоставить отсутствующие параметры. НЕ просите больше информации о необязательных параметрах, если она не предоставлена.
Режим JSON
tool_choice
(см. Принуждение к использованию инструмента), чтобы проинструктировать модель явно использовать этот инструментinput
инструменту, поэтому имя инструмента и описание должны быть с точки зрения модели.record_summary
для описания изображения в определенном формате.tools
parameter)tools
parameter in API requests (tool names, descriptions, and schemas)tool_use
content blocks in API requests and responsestool_result
content blocks in API requeststools
, we also automatically include a special system prompt for the model which enables tool use. The number of tool use tokens required for each model are listed below (excluding the additional tokens listed above). Note that the table assumes at least 1 tool is provided. If no tools
are provided, then a tool choice of none
uses 0 additional system prompt tokens.
Model | Tool choice | Tool use system prompt token count |
---|---|---|
Claude Opus 4.1 | auto , none any , tool | 346 tokens 313 tokens |
Claude Opus 4 | auto , none any , tool | 346 tokens 313 tokens |
Claude Sonnet 4 | auto , none any , tool | 346 tokens 313 tokens |
Claude Sonnet 3.7 | auto , none any , tool | 346 tokens 313 tokens |
Claude Sonnet 3.5 (Oct) (deprecated) | auto , none any , tool | 346 tokens 313 tokens |
Claude Sonnet 3.5 (June) (deprecated) | auto , none any , tool | 294 tokens 261 tokens |
Claude Haiku 3.5 | auto , none any , tool | 264 tokens 340 tokens |
Claude Opus 3 (deprecated) | auto , none any , tool | 530 tokens 281 tokens |
Claude Sonnet 3 | auto , none any , tool | 159 tokens 235 tokens |
Claude Haiku 3 | auto , none any , tool | 264 tokens 340 tokens |
usage
.