ИИ-агенты 13.01.2026 3,240 просмотров

Tool Use в Anthropic Claude: создаём агента с внешними инструментами

#Tool Use #Claude #Anthropic #API #агент #инструменты
Статья на тему: Tool Use в Anthropic Claude: создаём агента с внешними инструментами

Введение

Языковые модели (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 (Агентов).

  1. Вы добавляете на холст базовый узел AI Agent.
  2. Подключаете к нему модель Anthropic Chat Model (введя API ключ).
  3. А дальше самое интересное: вы подключаете к агенту узлы 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, базами данных и сервисами, вы превращаете её из теоретика в крутого практика, способного круглосуточно закрывать рутинные задачи вашего бизнеса.

Полезные материалы по теме