Tool Calling

tool calling — использование внешних инструментов LLM

Раздел
Языковые модели
Обновлено
18.05.26

Tool Calling — концепция использования внешних инструментов языковой моделью: поиск в интернете, выполнение кода, доступ к календарю, чтение файлов. Шире, чем Function Calling: tools могут быть «built-in» (встроенными в провайдера, как web_search у Anthropic) или «custom» (вашими собственными функциями). К 2026-му это стандартная основа AI-агентов и продвинутых ассистентов.

Коротко

Коротко. Tool Calling — это общий термин для механизма «дать LLM использовать внешние возможности». Включает Function Calling (ваши функции) и встроенные инструменты провайдера (web_search, code execution, file_read у OpenAI/Anthropic). К 2026-му у каждого крупного API есть набор built-in tools, которые работают без вашего кода — модель сама ходит в интернет, запускает Python, читает файлы. Это база любого современного AI-агента.

Что это такое

В июне 2023 OpenAI впервые показала Function Calling. Через год термин эволюционировал в Tool Calling — потому что инструменты бывают двух типов:

  • Custom Tools (Function Calling) — ваши собственные функции. Модель просит, ваш код выполняет.
  • Built-in Tools — готовые инструменты от провайдера. Модель использует их сама, без вашего кода.

Примеры built-in tools в 2026:

  • OpenAI: web_search (поиск в интернете), code_interpreter (Python в песочнице), file_search (RAG по загруженным файлам), computer_use (управление компьютером).
  • Anthropic: web_search, text_editor (редактирование файлов), bash (выполнение команд), computer (управление PC).
  • Gemini: google_search, code_execution, function_calling.

Сценарий: пользователь спрашивает «Найди новости про новые модели Stable Diffusion за неделю». Модель сама:

  1. Делает запрос в web_search("Stable Diffusion news this week").
  2. Получает результаты.
  3. Анализирует, фильтрует.
  4. Возвращает summary пользователю.

Без built-in tools пришлось бы писать свою функцию поиска. С built-in — одна галочка в API.

Как это работает

API-вызов с built-in tools (пример Claude):

resp = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=4096,
    tools=[
        {"type": "web_search_20250305", "name": "web_search"},
        {"type": "computer_20250124", "name": "computer", 
         "display_width_px": 1024, "display_height_px": 768}
    ],
    messages=[
        {"role": "user", "content": "Найди новости про FLUX за неделю и сделай screenshot Civitai"}
    ]
)

Под капотом происходит multi-turn loop:

  1. Модель решает: нужен поиск.
  2. Anthropic делает запрос к своему поиску, получает результаты.
  3. Модель видит результаты, решает: нужно посмотреть Civitai.
  4. Anthropic вызывает computer-use tool (запускает headless-браузер, делает скриншот).
  5. Модель получает скриншот, формирует финальный ответ пользователю.

Все шаги — внутри одного API-запроса. Вы видите только финальный ответ.

Custom Tools (тот же что Function Calling):

tools = [
    # Custom — ваша функция
    {"type": "function", "function": {...}},
    # Built-in — встроенный инструмент
    {"type": "web_search_20250305"}
]

Можно мешать в одном запросе.

Пример на практике

Команда строит AI-помощника для исследовательских задач. Пользователь — журналист, который пишет статью про криптовалюту.

Запрос: «Найди последние новости про Bitcoin, проанализируй настроения за неделю, сравни с динамикой курса».

Tools в запросе:

  • web_search (built-in) — для поиска новостей.
  • code_interpreter (built-in) — для построения графиков.
  • get_crypto_price(symbol, period) (custom) — ваша функция к API биржи.

Что происходит автоматически:

  1. Модель: вызывает web_search("Bitcoin news this week").
  2. Получает 30 заголовков. Анализирует тональность.
  3. Модель: вызывает get_crypto_price("BTC", "1week").
  4. Получает данные от вашего API.
  5. Модель: пишет в code_interpreter:
    import matplotlib.pyplot as plt
    plt.plot(dates, prices)
    plt.title("BTC, последняя неделя")
    plt.savefig('btc_week.png')
    
  6. Получает изображение.
  7. Финальный ответ: текст с анализом + ссылка на график.

Журналист получает готовый материал. Без tool calling это была бы 30-минутная ручная работа.

В ComfyUI с конца 2025 появились ноды для Tool Calling с локальными моделями: можно дать LLM доступ к ComfyUI workflow API, и модель сама будет генерировать картинки по текстовому запросу.

С чем часто путают

  • Tool Calling и Function Calling — Function Calling = одна разновидность Tool Calling (custom tools). Tool Calling шире — включает built-in.
  • Tool Calling и Plugins — Plugins (старый ChatGPT) был UI-надстройкой. Tool Calling — чистый API.
  • Tool Calling и Agent — Tool Calling это механизм. Agent — это цикл, где модель многократно использует tools для достижения цели.
  • Built-in Tool и API endpoint — Built-in tool интегрирован в API LLM (один запрос). API endpoint требует отдельных вызовов.
  • Tool Calling и MCP — MCP это протокол стандартизации tools от разных источников. Tool Calling — фича внутри одного API.

Частые ошибки и заблуждения

  • «Built-in tools работают везде». Нет. У каждого провайдера свой набор. web_search у Anthropic ≠ web_search у OpenAI по реализации и стоимости.
  • «Tool Calling это бесплатно». Built-in tools обычно стоят дополнительных токенов или фиксированной платы. Web search у Anthropic — $10/1000 запросов.
  • «Модель сама знает, когда какой tool использовать». Часто не знает. Хороший description у каждого tool критичен — модель решает по нему.
  • «Можно бесконечно подключать tools». Чем больше tools, тем выше шанс выбора неправильного. До 10–15 — норма, дальше — путаница.
  • «Tools безопасны по умолчанию». Только в встроенных песочницах. computer_use может реально кликать на ваш десктоп — если не изолировано, последствия серьёзные.

Связанные термины

  • Function Calling — частный случай Tool Calling (custom tools).
  • AI Agent — цикл с многократным Tool Calling.
  • MCP — стандартизация tools от разных провайдеров.
  • Code Interpreter — типичный built-in tool.
  • Web Search — встроенный поиск как tool.
  • Computer Use — управление PC через tool.
  • Structured Output — основа для типизации аргументов.

Частые вопросы

Какие built-in tools есть у OpenAI в 2026? web_search, code_interpreter (Python), file_search (RAG), image_generation (DALL-E), computer_use (бета).

Какие у Anthropic? web_search, text_editor, bash, computer (управление PC), code_execution (через MCP).

Сколько стоят built-in tools? Зависит от провайдера. У Anthropic web_search $10/1000 поисков, computer_use тарифицируется по обработке скриншотов. У OpenAI часть включена в общую цену токенов, часть — отдельно.

Можно ли Tool Calling с локальными моделями? Да, Llama 3.1+, Qwen 2.5+, Mistral поддерживают custom tools. Built-in tools — только у облачных провайдеров.

Что выбрать: Tool Calling или прямые API-вызовы? Tool Calling даёт модели самостоятельность в выборе инструментов. Прямой код предсказуемее, но требует ваших if/else. Для агентских задач — tools, для жёстких пайплайнов — прямой код.

Как ограничить, какой tool вызовется? Параметр tool_choice: auto (модель решает), required (обязательно tool), {"name": "X"} (конкретный tool).

Главное

Tool Calling — общая концепция «LLM использует внешние возможности». Включает Function Calling (custom tools) и built-in tools от провайдера (web_search, code_interpreter, computer_use). Главное преимущество built-in — провайдер сам реализует механику, вам не нужен код. Combo built-in + custom — типичный паттерн для AI-помощников: общие задачи через built-in, специфичные через custom. К 2026-му это база любого AI-агента: модель сама ищет в интернете, выполняет код, кликает на десктоп, читает файлы — всё в одном API-запросе. Главное правило — хорошие descriptions у каждого tool, не больше 10–15 одновременно, валидация custom-аргументов на стороне кода.