Skip to main content

Краткое содержание: Использование инструментов (Tool Use)

Основные тезисы

1. Введение в инструменты

Инструменты являются фундаментальными строительными блоками AI-агентов, позволяющими:

  • Получать дополнительную информацию и контекст
  • Выполнять задачи и взаимодействовать с окружающей средой
  • Вносить реальные изменения, а не только искать информацию

Аналогия: Как врачу нужен набор инструментов для лечения пациентов, так и AI-агенту нужен репертуар инструментов для эффективной работы.

2. Основы LangChain

Ключевые компоненты:

  • ChatOpenAI: Обертка для взаимодействия с чат-моделями OpenAI
  • Сообщения: HumanMessage (вводы пользователя) и AIMessage (ответы модели)
  • Инструменты: Внешние функции, расширяющие возможности модели
  • Декоратор @tool: Автоматически генерирует схему инструмента
  • bind_tools(): Привязывает инструменты к модели
  • invoke(): Выполняет вызовы инструментов

Базовый рабочий процесс:

  1. Определение инструментов с помощью @tool
  2. Привязка инструментов к модели через bind_tools()
  3. Вызов модели с сообщениями
  4. Обработка вызовов инструментов
  5. Генерация окончательного ответа

3. Локальные инструменты

Характеристики:

  • Работают локально, основаны на предопределенных правилах
  • Легко создаются и модифицируются
  • Развертываются вместе с агентом
  • Предсказуемы и надежны благодаря явной логике

Преимущества:

  • Точность: Особенно в областях слабости LLM (арифметика, календарь, карты)
  • Предсказуемость: Явно определенная логика
  • Простота: Прямое развертывание

Недостатки:

  • Масштабируемость: Сложно делиться между случаями использования
  • Дублирование: Каждая команда перереализует инструменты
  • Обслуживание: Требует частых обновлений и повторного развертывания

Критически важные метаданные:

  • Имена: Точные, узко определенные
  • Описания: Четкие, отличительные
  • Схемы: Строгие входные/выходные данные

Примеры применения:

  • Математические операции (калькулятор)
  • Преобразования единиц измерения
  • Календарные операции
  • Операции с датами и временем
  • Операции над картами и графами

4. Инструменты на основе API

Характеристики:

  • Взаимодействие с внешними сервисами через API
  • Доступ к данным в реальном времени
  • Динамическое и масштабируемое расширение функциональности

Преимущества:

  • Расширенный функционал: Интеграция с разнообразными сервисами
  • Актуальные данные: Доступ к самой свежей информации
  • Масштабируемость: Не требуют переобучения модели

Примеры использования:

  • API погоды
  • Финансовые API (цены акций)
  • Сервисы перевода
  • Wikipedia API
  • Компаний-специфичные API

Рекомендации по проектированию:

  • Надежность: Обработка сбоев внешних сервисов
  • Безопасность: HTTPS, строгая аутентификация
  • Обработка ошибок: Graceful degradation
  • Лимиты API: Мониторинг rate limits
  • Конфиденциальность: Анонимизация данных
  • Резервирование: Множественные поставщики

5. Инструменты-плагины

Характеристики:

  • Модульные, предварительно разработанные компоненты
  • Минимальная настройка при интеграции
  • Стандартное предложение от ведущих платформ

Платформенные экосистемы:

OpenAI:

  • Доступны только в ChatGPT, не в публичном API
  • Требуют создания пользовательских слоев (например, LangChain)

Anthropic Claude:

  • Полная поддержка через Messages API
  • API-first подход
  • Интеграция с Amazon Bedrock, Vertex AI

Google Gemini:

  • Function calling через Vertex AI API
  • FunctionCallingConfig для объявления инструментов

Microsoft Phi:

  • Интеграция через Azure AI Foundry
  • Бесшовная связь с сервисами Azure

Преимущества:

  • Быстрое развертывание
  • Минимальные усилия по разработке
  • Интеграция на уровне выполнения модели

Ограничения:

  • Меньшая настраиваемость по сравнению с пользовательскими инструментами
  • Общего назначения, не всегда подходят для специфических нужд

Растущая экосистема:

  • Каталоги плагинов быстро расширяются
  • Открытое сообщество (Hugging Face, Glama.ai, mcp.so)
  • Стандартизация и совместимость

Практические применения:

  • Поддержка клиентов: Обработка запросов, управление тикетами
  • Здравоохранение: Анализ изображений, сортировка пациентов
  • Финансы: Анализ трендов, обнаружение мошенничества
  • Образование: Персонализированное обучение, автоматическая оценка

6. Model Context Protocol (MCP)

Концепция:

  • Открытый стандарт (Anthropic, OpenAI, Google, Microsoft)
  • "USB-C порт для AI" — единый интерфейс
  • JSON-RPC 2.0 через HTTPS/WebSocket

Две роли:

MCP-сервер:

  • Веб-сервер, раскрывающий данные/сервисы
  • Стандартизированный интерфейс JSON-RPC 2.0
  • Может обернуть что угодно (облачное хранилище, БД, CRM)

MCP-клиент:

  • Агент или LLM-приложение, "говорящее" на MCP
  • Отправляет JSON-RPC запросы
  • Получает структурированные JSON-ответы

Преимущества:

  • Устранение необходимости в пользовательских адаптерах
  • Модульная, переиспользуемая архитектура
  • Сокращение усилий по разработке
  • Разделение реализации сервиса и логики агента

Вопросы безопасности:

  • Аутентификация и контроль доступа (активная область разработки)
  • Защита от инъекций
  • Аудит и логирование
  • Дополнительные сетевые политики/прокси-слои

Будущее:

  • Уточнение практик безопасности
  • Стандартизированные каталоги методов
  • Рост экосистемы публичных/частных MCP-конечных точек

7. Инструменты с состоянием

Риски:

  • Прямая власть над постоянным состоянием
  • Потенциал для разрушительных ошибок
  • Эксплуатация злоумышленниками
  • Неправильная интерпретация намерений пользователя

Стратегии защиты:

Ограничение возможностей:

  • Узко определенные операции вместо произвольных запросов
  • Разделение инструментов чтения и записи
  • Принцип наименьших привилегий

Санитизация:

  • Валидация входных данных
  • Защита от SQL-инъекций (привязка параметров, prepared statements)
  • Отклонение опасных паттернов (DROP, ALTER)

Наблюдаемость:

  • Логирование каждого вызова инструмента
  • Обнаружение аномального поведения
  • Оповещения в реальном времени

Принцип наименьшей силы:

  • Только необходимые инструменты
  • Точные границы и надзор
  • Применяется ко всем типам инструментов (локальные, API, MCP)

8. Автоматизированная разработка инструментов

Базовые модели как создатели инструментов:

  • Генерация оберток, вспомогательных функций
  • Итеративный процесс: генерация → выполнение → критика → улучшение
  • Экономия времени на разработку
  • Требует валидации и человеческого надзора

Генерация кода в реальном времени:

  • Агент пишет и выполняет код по мере необходимости
  • Высокая адаптируемость к новым задачам
  • Итеративное улучшение через проб и ошибки

Преимущества:

  • Адаптируемость к новым задачам и окружениям
  • Эффективность: быстрое решение проблем
  • Автономное расширение возможностей

Вызовы:

  • Контроль качества: Обеспечение качества и безопасности кода
  • Безопасность: Риск инъекции вредоносного кода
  • Повторяемость: Потеря предсказуемости
  • Потребление ресурсов: Высокие требования к вычислительной мощности

9. Конфигурация использования инструментов

Параметры tool-choice:

  • "auto": Модель решает на основе контекста (общее использование)
  • "any"/"required": Принудительный вызов хотя бы одного инструмента
  • "none": Блокировка всех вызовов инструментов (тестирование)
  • Закрепление инструмента: Предсказуемые, повторяемые потоки

Обработка ошибок:

Валидация:

  • Проверка схемы (jsonschema, Pydantic)
  • Обнаружение отсутствующих полей
  • Автоматический запуск пропущенных инструментов

Повторы:

  • Экспоненциальная задержка для временных сбоев
  • Регенерация только проблемных частей

Откаты:

  • Резервная модель/сервис
  • Запрос уточнения у пользователя
  • Использование кэшированных данных
  • Безопасные значения по умолчанию

Логирование:

  • Промпты, вызовы инструментов
  • Ошибки валидации, повторы, откаты
  • Для наблюдаемости, отладки, улучшения

Ключевые выводы

  1. Инструменты — основа возможностей агентов: Без инструментов агенты ограничены только генерацией текста.

  2. Типы инструментов дополняют друг друга:

    • Локальные: точность и предсказуемость
    • API: масштабируемость и актуальные данные
    • Плагины: быстрое развертывание
    • MCP: стандартизация и переиспользование
  3. Безопасность критична: Особенно для инструментов с состоянием, требующих строгих мер защиты.

  4. Автоматизация разработки: Базовые модели могут создавать инструменты, но требуют валидации и надзора.

  5. Конфигурация и обработка ошибок: Критически важны для надежных производственных систем.

  6. Метаданные инструментов: Правильные имена, описания и схемы определяют эффективность использования.

Следующие шаги

После изучения инструментов следующая глава рассматривает оркестрацию — организацию последовательности инструментов для выполнения сложных задач.