Краткое содержание: Использование инструментов (Tool Use)
Основные тезисы
1. Введение в инструменты
Инструменты являются фундаментальными строительными блоками AI-агентов, позволяющими:
- Получать дополнительную информацию и контекст
- Выполнять задачи и взаимодействовать с окружающей средой
- Вносить реальные изменения, а не только искать информацию
Аналогия: Как врачу нужен набор инструментов для лечения пациентов, так и AI-агенту нужен репертуар инструментов для эффективной работы.
2. Основы LangChain
Ключевые компоненты:
- ChatOpenAI: Обертка для взаимодействия с чат-моделями OpenAI
- Сообщения: HumanMessage (вводы пользователя) и AIMessage (ответы модели)
- Инструменты: Внешние функции, расширяющие возможности модели
- Декоратор @tool: Автоматически генерирует схему инструмента
- bind_tools(): Привязывает инструменты к модели
- invoke(): Выполняет вызовы инструментов
Базовый рабочий процесс:
- Определение инструментов с помощью @tool
- Привязка инструментов к модели через bind_tools()
- Вызов модели с сообщениями
- Обработка вызовов инструментов
- Генерация окончательного ответа
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)
- Обнаружение отсутствующих полей
- Автоматический запуск пропущенных инструментов
Повторы:
- Экспоненциальная задержка для временных сбоев
- Регенерация только проблемных частей
Откаты:
- Резервная модель/сервис
- Запрос уточнения у пользователя
- Использование кэшированных данных
- Безопасные значения по умолчанию
Логирование:
- Промпты, вызовы инструментов
- Ошибки валидации, повторы, откаты
- Для наблюдаемости, отладки, улучшения
Ключевые выводы
-
Инструменты — основа возможностей агентов: Без инструментов агенты ограничены только генерацией текста.
-
Типы инструментов дополняют друг друга:
- Локальные: точность и предсказуемость
- API: масштабируемость и актуальные данные
- Плагины: быстрое развертывание
- MCP: стандартизация и переиспользование
-
Безопасность критична: Особенно для инструментов с состоянием, требующих строгих мер защиты.
-
Автоматизация разработки: Базовые модели могут создавать инструменты, но требуют валидации и надзора.
-
Конфигурация и обработка ошибок: Критически важны для надежных производственных систем.
-
Метаданные инструментов: Правильные имена, описания и схемы определяют эффективность использования.
Следующие шаги
После изучения инструментов следующая глава рассматривает оркестрацию — организацию последовательности инструментов для выполнения сложных задач.