Tool Calling
tool calling — использование внешних инструментов LLM
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 за неделю». Модель сама:
- Делает запрос в
web_search("Stable Diffusion news this week"). - Получает результаты.
- Анализирует, фильтрует.
- Возвращает 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:
- Модель решает: нужен поиск.
- Anthropic делает запрос к своему поиску, получает результаты.
- Модель видит результаты, решает: нужно посмотреть Civitai.
- Anthropic вызывает computer-use tool (запускает headless-браузер, делает скриншот).
- Модель получает скриншот, формирует финальный ответ пользователю.
Все шаги — внутри одного 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 биржи.
Что происходит автоматически:
- Модель: вызывает
web_search("Bitcoin news this week"). - Получает 30 заголовков. Анализирует тональность.
- Модель: вызывает
get_crypto_price("BTC", "1week"). - Получает данные от вашего API.
- Модель: пишет в
code_interpreter:import matplotlib.pyplot as plt plt.plot(dates, prices) plt.title("BTC, последняя неделя") plt.savefig('btc_week.png') - Получает изображение.
- Финальный ответ: текст с анализом + ссылка на график.
Журналист получает готовый материал. Без 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-аргументов на стороне кода.