Скилл: инструменты
Выполнение функций и возврат результата
Полный цикл
- Передай модели описания разрешённых функций
- Получи вызов и полные аргументы
- Разбери JSON и проверь схему, имя функции и права
- Выполни функцию в приложении
- Верни результат с исходным ID
- Получи продолжение модели или следующий вызов
Ответ с tool_calls не означает, что функция уже выполнена
Связь сообщений
| Формат | Вызов | Результат |
|---|---|---|
| Chat Completions | message.tool_calls | Сообщение tool с tool_call_id |
| Messages | Блок tool_use | Блок tool_result с tool_use_id |
| GenerateContent | functionCall | functionResponse |
Сохраняй исходное сообщение ассистента в истории. Не заменяй ID вызова новым ID
Ограничения
У claude-sonnet-5.5 режим required и выбор конкретной функции могут вернуть HTTP 400 от провайдера. Попробуй tool_choice: "auto", если приложению подходит выбор функции самой моделью, этот режим не гарантирует вызов
Установи предел шагов, времени и расходов. Несколько вызовов в одном ответе не обязательно независимы
Не повторяй функцию с побочным эффектом после таймаута без проверки её состояния или механизма идемпотентности
Встроенные серверные инструменты имеют отдельную схему. Их поддержка не следует из поддержки обычных функций
Примеры запросов и истории: вызов инструментов