Введение
Языковые модели (LLM) — потрясающие собеседники. Они могут написать эссе, перевести текст или объяснить квантовую физику. Но по своей природе они изолированы: ChatGPT или Claude не могут сами посмотреть погоду за окном, забронировать билет или проверить баланс в вашей базе данных. Точнее, не могли.
Технология Tool Use (она же Function Calling) изменила всё. Теперь ИИ перестал быть просто генератором текста и превратился в "мозг", способный управлять реальными программами (руками). В этой статье мы разберем, как работает Tool Use в мощных моделях семейства Anthropic Claude 3.5 и как создать собственного агента, который будет пользоваться калькулятором, парсерами или вашей внутренней CRM.
Что такое Tool Use простыми словами?
Представьте, что вы наняли умного, но слепого и прикованного к столу аналитика (этим аналитиком выступает Claude). Вы просите его: "Сколько будет 245 умножить на 89 432?". Аналитик мог бы попытаться посчитать в уме (LLM часто ошибаются в математике), но вместо этого он говорит вам: "Шеф, я не хочу ошибиться. У тебя на столе лежит калькулятор. Пожалуйста, введи туда эти два числа, нажми 'умножить' и скажи мне результат. А я уже оформлю его в красивый отчет".
В этой метафоре "калькулятор" — это инструмент (Tool). А процесс просьбы ИИ нажать на кнопки — это Tool Use. Модель не исполняет код сама. Она лишь формирует правильный JSON-запрос к вашему API, ждет, пока ваша система (например, n8n или Python-скрипт) выполнит реальную работу, получает ответ (JSON) обратно и продолжает генерацию ответа пользователю.
Анатомия запроса: Как дать Claude инструмент?
Чтобы Claude узнал о существовании "калькулятора" (или API погоды), вы должны описать этот инструмент в запросе (API-вызове). Описание делается в формате JSON Schema.
Пример описания инструмента погоды для API Anthropic:
{
"tools": [
{
"name": "get_weather",
"description": "Получает текущую погоду для заданного города.",
"input_schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "Название города, например, 'London' или 'Москва'"
}
},
"required": ["location"]
}
}
],
"messages": [
{"role": "user", "content": "Какая сейчас погода в Париже?"}
]
}
Жизненный цикл вызова инструмента (Workflow)
Когда вы отправляете запрос выше в Anthropic API, происходит следующая магия (обычно состоящая из нескольких шагов):
Шаг 1: Claude решает использовать инструмент
Модель анализирует вопрос "Какая сейчас погода в Париже?". Она понимает: "Я не знаю текущую погоду, но у меня
есть инструмент get_weather!". Вместо текстового ответа, Claude возвращает специальный ответ с
stop_reason: "tool_use".
Ответ модели выглядит примерно так: "Пользователь хочет погоду. Вызываю get_weather, аргумент location: 'Париж'".
Шаг 2: Ваша система (приложение) выполняет работу
Обратите внимание: Claude не идет в интернет! Ваш код (или ваш пайплайн в n8n) должен перехватить этот ответ.
Вы видите, что модель просит вызвать get_weather("Париж"). Ваш сервер делает реальный
HTTP-запрос (например, к OpenWeatherMap), получает ответ "+15 градусов, дождь", и формирует JSON-результат.
Шаг 3: Вы возвращаете результат модели
Вы делаете второй вызов к Anthropic API. Вы отправляете всю историю сообщений, плюс добавляете сообщение с
ролью tool_result.
{
"role": "user",
"content": [
{
"type": "tool_result",
"tool_use_id": "toolu_01A09...",
"content": "Температура +15C, небольшой дождь."
}
]
}
Шаг 4: Финальный ответ
Получив свежие данные из реального мира, Claude интегрирует их в свой ответ: "В Париже сейчас +15 градусов и идет небольшой дождь. Рекомендую взять зонт, если собираетесь на прогулку!". Магия свершилась.
Tool Use в n8n: Как это работает без кода?
Писать всё это на Python интересно, но в платформе бизнес-автоматизации n8n (начиная с версий 1.40+) процесс упростили до предела с помощью концепции Advanced AI (Агентов).
- Вы добавляете на холст базовый узел AI Agent.
- Подключаете к нему модель Anthropic Chat Model (введя API ключ).
- А дальше самое интересное: вы подключаете к агенту узлы Tools.
В n8n есть готовые инструменты: Wikipedia Tool, Web Scraper Tool, Calculator Tool. Если агент поймет, что ему надо посчитать налоги, он сам вызовет Calculator. Если нужно найти факты — он сам сходит в Wikipedia.
Более того, любой ваш Workflow в n8n (например, "Создать сделку в AmoCRM") можно превратить в Custom Tool! И тогда ваш агент в Telegram-боте сможет самостоятельно создавать карточки клиентов по ходу диалога.
Claude vs GPT-4o: Кто лучше пользуется инструментами?
Обе модели хороши, но у Claude 3.5 Sonnet есть несколько сильных преимуществ для энтерпрайз-задач:
- Точность JSON (Strict JSON): Claude почти никогда не "галлюцинирует" в названиях параметров или их типах. Если вы указали, что нужен номер в формате integer, он не пришлет строку.
- Параллельный вызов инструментов: Claude может за один ответ попросить вызвать сразу 5 инструментов (например, собрать погоду сразу для 5 городов), что сильно экономит время и API-вызовы.
- Computer Use: В последних версиях Claude появился инструмент "Управление компьютером", который позволяет модели буквально двигать курсором мыши, если вы дадите ей такой доступ!
Заключение
Tool Use — это водораздел между "умным чат-ботом" и "настоящим ИИ-сотрудником" (Agentic AI). Научив модель взаимодействовать с вашими API, базами данных и сервисами, вы превращаете её из теоретика в крутого практика, способного круглосуточно закрывать рутинные задачи вашего бизнеса.