Создание ИИ-агентов, которые не галлюцинируют
Если вы строите решения на базе LLM, вы сталкиваетесь с одной и той же проблемой. Модель выдумывает функцию или вызывает не тот инструмент.
Вызов функций (function calling) должен решать эту проблему. Вместо этого он часто заставляет вашего агента уверенно ошибаться в масштабах всей системы.
Чтобы это исправить, нужна лучшая архитектура, а не более крупные модели.
Используйте эти четыре паттерна для создания надежных агентов:
- Используйте двухэтапный роутер Никогда не передавайте модели все инструменты сразу. Это приводит к раздуванию схемы (schema bloat).
- Сначала используйте быструю и дешевую модель для классификации намерения (intent).
- Предоставляйте только те инструменты, которые соответствуют этому намерению.
- Это снижает количество ошибок с неправильным инструментом на 70%.
- Обеспечьте структурированные выходные данные Перестаньте просить модели возвращать валидный JSON через промпты.
- Используйте схемы, которые контролируются на уровне API.
- Используйте такие инструменты, как Pydantic, чтобы гарантировать формат.
- Ограничения снижают галлюцинации эффективнее, чем промпт-инжиниринг.
- Добавьте уровни валидации Каждый вызов инструмента требует трех уровней: ввод пользователя, предварительная валидация (pre-validation) и последующая валидация (post-validation).
- Проверяйте выходные данные модели на соответствие вашей схеме перед выполнением.
- Если валидация не проходит, отправьте ошибку обратно модели.
- Модели исправляют свои ошибки в параметрах в 80% случаев, когда получают обратную связь об ошибке.
- Установите жесткие лимиты Бесконечные циклы уничтожают ваш бюджет. Модель может вызывать инструменты по кругу, пока не сработает таймаут.
- Всегда устанавливайте максимальное количество итераций.
- Всегда устанавливайте максимальный лимит токенов на один вызов.
- Жесткие лимиты — это обязательное требование для продакшена.
Умная оркестрация также экономит деньги. Используйте разные модели для разных задач:
- Малые модели — для маршрутизации намерений и форматирования вывода.
- Модели среднего уровня — для выбора инструментов.
- Передовые (frontier) модели — для сложного планирования.
Этот подход снижает затраты в 10–15 раз без потери качества.
Отслеживайте эти три метрики для обеспечения стабильности:
- Точность выбора инструмента (Tool Selection Accuracy): вызвал ли он правильный инструмент?
- Доля валидности параметров (Parameter Validity Rate): прошли ли параметры проверку по вашей схеме?
- Коэффициент завершения задач (Task Completion Rate): действительно ли была решена проблема?
Надежный ИИ — это вопрос проектирования системы. Создавайте ограничения, валидацию и защитные механизмы (guardrails).
Какие паттерны используете вы для создания надежных агентов? Делитесь своими мыслями ниже.
Дополнительное обучающее сообщество: https://t.me/GyaanSetuAi