Tool calling: базовые и расширенные инструменты AI-агента

Какие инструменты дать агенту - от базового поиска до кастомных коннекторов - и как спроектировать их вызов, чтобы результат был предсказуемым.

Карта базовых и расширенных инструментов агента

Как проектировать схему инструмента, а не просто функцию

Когда разрешать параллельные вызовы, а когда - нет

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

Базовые инструменты: web search, web fetch, browser

Для большинства задач хватает связки web search -> web fetch -> browser с эскалацией только при необходимости. Подробный разбор каждого инструмента, порядок вызова и метрики - в статье Web fetch, web search, browser: базовый стек инструментов AI-агента.

Расширенные инструменты агента

Помимо базовой тройки, в продуктовых сценариях агенту обычно нужны:

  • Code execution / интерпретатор кода - для расчетов, парсинга данных и генерации файлов, которые ненадежно делать текстом.
  • Работа с файлами - чтение и запись документов, экспорт отчетов, обработка вложений.
  • Retrieval / RAG-инструмент - поиск по внутренней базе знаний вместо общего web search, когда источник истины - ваши данные, а не интернет.
  • Коннекторы к внутренним системам (MCP и аналоги) - CRM, PMS, биллинг, тикет-система: агент читает или меняет реальные бизнес-данные.
  • Computer use - прямое управление интерфейсом ОС или приложения; крайний случай, когда нет API и не хватает browser-автоматизации.
  • Delegation / handoff - вызов другого агента или sub-workflow под конкретную подзадачу вместо расширения одного универсального промпта.
  • Memory / state tools - чтение и запись состояния между сессиями, если агенту нужно помнить контекст дольше одного диалога.

Расширенные инструменты почти всегда меняют что-то в реальной системе - это отдельный класс риска по сравнению с read-only поиском.

Как проектировать инструмент, а не просто функцию

  • Явная схема входа: типы, обязательные поля, ограничения (enum, min/max) - модель должна понимать границы до вызова, а не по факту ошибки.
  • Явная схема выхода - чтобы модель могла проверить результат по структуре, а не парсить произвольный текст.
  • Одна ответственность на инструмент: не смешивать “найти и обновить” в одном вызове - это усложняет и логирование, и откат.
  • Структурированные ошибки (код + сообщение), а не сырое исключение - модель должна уметь отличить “не найдено” от “сервис недоступен”.
  • Идемпотентность для операций записи, чтобы повторный вызов при таймауте не задвоил действие.
  • Таймаут и retry-политика на каждый инструмент отдельно, а не одна общая на весь агент.

Параллельные и последовательные вызовы

  • Параллельные вызовы разрешать только для read-only инструментов без побочных эффектов.
  • Action-инструменты вызывать последовательно, с проверкой результата предыдущего шага перед следующим.
  • Дедуплицировать вызовы с идентичными аргументами в рамках одной сессии - типичный источник лишних затрат и дублей.

Чеклист перед продакшеном

  • У каждого инструмента есть версия схемы и changelog изменений контракта.
  • Ошибка инструмента возвращается модели как данные, а не роняет всю сессию.
  • Логируется каждый вызов: имя инструмента, аргументы, результат, latency.
  • Есть явное разделение read-only и action-инструментов.

Где заканчивается tool calling и начинается guardrails

Все перечисленное выше - про то, чтобы инструмент вызывался корректно и предсказуемо. Отдельный вопрос - можно ли вообще разрешать модели этот вызов в конкретной ситуации: это уже уровень политики доступа и защиты, а не механики вызова. Разбор этого слоя - в статье Guardrails для AI-агентов: input, output и защита действий.

Начать работу

Обсудим ваш проект

Расскажите, что сейчас не работает или работает плохо. Разберёмся вместе — без лишних презентаций и долгих согласований.

Написать нам
+7 911 938-72-83 · m@aahq.site · Отвечаем в течение дня