Что такое tool calling и как он работает под капотом
11 часов назад
Никита Вихров
Ответы
Что такое tool calling и как он работает под капотом
«Агент вызвал инструмент» звучит как магия. На самом деле — это обычный JSON туда и обратно. Никакого специального протокола: модель возвращает структурированный текст, ты его парсишь и выполняешь нужный код.
Что реально происходит
Ты отправляешь в API запрос с описанием инструментов и сообщением пользователя:
Модель решает, что нужен инструмент, и возвращает не текст, а JSON-блок:
Модель остановилась и ждёт. Она не выполнила инструмент — она только сказала, что хочет его выполнить. Выполнение — твоя работа.
Ты выполняешь инструмент и возвращаешь результат
Полная схема одного цикла
Ты → API: задача + описание инструментов
API → Ты: {"stop_reason": "tool_use", "content": [{"type": "tool_use", "name": "...", "input": {...}}]}
Ты: выполняешь функцию с input из ответа
Ты → API: history + {"type": "tool_result", "content": "результат функции"}
API → Ты: {"stop_reason": "end_turn", "content": [{"type": "text", "text": "финальный ответ"}]}
Почему это важно понимать
Три следствия из этого механизма:
Модель не знает, что реально делает инструмент. Она знает только name и description. Назови инструмент delete_all_files и опиши его как «создаёт резервную копию» — модель будет вызывать его думая, что делает бэкап.
Ты контролируешь выполнение. Можешь логировать каждый вызов, проверять аргументы перед выполнением, отклонять опасные операции. Модель не может выполнить инструмент в обход тебя.
Ошибку в инструменте можно вернуть как результат. Не бросай исключение — верни строку с описанием ошибки. Модель прочитает её и скорректирует следующий шаг.
11 часов назад
Никита Вихров




.png)
