Was this page helpful?
На этой странице объясняются концепции, лежащие в основе использования инструментов: где выполняются инструменты, как работает агентский цикл и когда использование инструментов является правильным подходом. Для практического руководства начните с учебника или руководства по реализации.
Использование инструментов — это контракт между вашим приложением и моделью. Вы указываете, какие операции доступны и какую форму принимают их входные и выходные данные; Claude решает, когда и как их вызывать. Модель никогда ничего не выполняет самостоятельно. Она выдает структурированный запрос, ваш код (или серверы Anthropic) выполняют операцию, и результат возвращается в разговор.
Этот контракт заставляет модель вести себя не как генератор текста, а как функция, которую вы вызываете. Инженеры с опытом классических API могут интегрировать использование инструментов так же, как они интегрировали бы любой другой типизированный интерфейс: определить схему, обработать обратный вызов, вернуть результат. Разница в том, что вызывающая сторона — это языковая модель, выбирающая, какую функцию вызвать на основе разговора.
Основная ось, по которой различаются инструменты, — это место выполнения кода. Каждый инструмент попадает в одну из трех категорий, и категория определяет, за что отвечает ваше приложение.
Вы пишете схему, вы выполняете код, вы возвращаете результаты. Это основное событие: подавляющее большинство трафика использования инструментов — это определяемые пользователем инструменты, вызывающие логику, специфичную для приложения.
Когда Claude решает использовать один из ваших инструментов, ответ API содержит блок tool_use с именем инструмента и объектом JSON аргументов. Ваше приложение извлекает эти аргументы, выполняет операцию (запрос к базе данных, HTTP-вызов, запись файла, что бы ни делал инструмент) и отправляет результат обратно в блоке tool_result в следующем запросе. Claude никогда не видит вашу реализацию; он видит только схему, которую вы предоставили, и результат, который вы вернули.
Для нескольких распространенных операций (выполнение команд оболочки, редактирование файлов, управление браузером, управление памятью блокнота) Anthropic публикует схему инструмента, а ваше приложение обрабатывает выполнение. Инструменты в этой категории — это bash, text_editor, computer и memory.
Модель выполнения идентична определяемым пользователем инструментам: ответ содержит блок tool_use, ваш код выполняет операцию, и вы отправляете обратно tool_result. Причина использовать инструмент схемы Anthropic вместо определения собственного эквивалента заключается в том, что эти схемы встроены в обучение. Claude был оптимизирован на тысячах успешных траекторий, которые используют эти точные сигнатуры инструментов, поэтому он вызывает их более надежно и восстанавливается после ошибок более элегантно, чем с пользовательским инструментом, который делает то же самое. Схема — это интерфейс, который модель уже ожидает.
Для web_search, web_fetch, code_execution и tool_search Anthropic выполняет код. Вы включаете инструмент в своем запросе, и сервер обрабатывает все остальное. Вы никогда не создаете блок tool_result для этих инструментов, потому что серверный цикл выполняет операцию и передает результат обратно модели до того, как ответ достигнет вас.
Ответ, который вы получаете, содержит блоки server_tool_use, показывающие, что выполнялось и что вернулось, но к тому времени, когда вы их видите, выполнение уже завершено. Задача вашего приложения — включить инструмент и прочитать окончательный ответ, а не участвовать в цикле выполнения.
Инструменты, выполняемые на клиенте (как определяемые пользователем, так и схемы Anthropic), требуют, чтобы ваше приложение управляло циклом. Модель не может выполнить ваш код, поэтому каждый вызов инструмента — это туда-обратно: модель спрашивает, вы выполняете, вы сообщаете обратно, модель продолжает.
Каноническая форма — это цикл while, основанный на stop_reason:
tools и сообщением пользователя.stop_reason: "tool_use" и одним или несколькими блоками tool_use.tool_result.tool_result.stop_reason равен "tool_use".На практике это читается как: пока stop_reason == "tool_use", выполняйте инструменты и продолжайте разговор. Цикл завершается при любой другой причине остановки ("end_turn", "max_tokens", "stop_sequence" или "refusal"), что означает, что Claude либо выдал окончательный ответ, либо остановился по другой причине, которую должно обработать ваше приложение.
Для механики построения запросов, обработки параллельных вызовов инструментов и форматирования результатов см. Обработка вызовов инструментов.
Инструменты, выполняемые на сервере, запускают свой собственный цикл внутри инфраструктуры Anthropic. Один запрос из вашего приложения может запустить несколько веб-поисков или выполнений кода до того, как вернется ответ. Модель ищет, читает результаты, решает искать снова и повторяет, пока не получит то, что ей нужно, все без участия вашего приложения.
Этот внутренний цикл имеет ограничение на количество итераций. Если модель все еще повторяется, когда она достигает предела, ответ возвращается с stop_reason: "pause_turn" вместо "end_turn". Приостановленный ход означает, что работа не завершена; повторно отправьте разговор (включая приостановленный ответ), чтобы позволить модели продолжить с того места, где она остановилась. Для шаблона продолжения см. Серверные инструменты.
Использование инструментов подходит, когда задача требует чего-то, что модель не может сделать только из текста:
Признак того, что вы должны использовать инструменты: если вы пишете регулярное выражение для извлечения решения из выходных данных модели, это решение должно было быть вызовом инструмента. Анализ свободного текста для восстановления структурированного намерения — это признак того, что структура должна быть в схеме.
Использование инструментов не подходит, когда:
| Подход | Когда его использовать | Чего ожидать | Узнать больше |
|---|---|---|---|
| Определяемые пользователем инструменты клиента | Пользовательская бизнес-логика, внутренние API, собственные данные | Вы обрабатываете выполнение и агентский цикл | Определение инструментов |
| Инструменты схемы Anthropic клиента | Стандартные операции разработки (bash, редактирование файлов, управление браузером) | Вы обрабатываете выполнение; Claude вызывает инструмент надежно, потому что схема встроена в обучение | Справочник инструментов |
| Инструменты, выполняемые на сервере | Веб-поиск, песочница кода, веб-выборка | Anthropic обрабатывает выполнение; вы получаете результаты напрямую | Серверные инструменты |