Агентный RAG
Агентный RAG - это архитектура генерации с дополненным извлечением, в которой LLM-агент, а не фиксированный конвейер, решает, что извлекать, когда, как и достаточно ли хорош ответ. Вместо единственного потока запрос -> извлечение -> ответ агент планирует, выполняет несколько поисков, оценивает собственные промежуточные ответы и повторяет попытки, пока не будет уверен в результате.
Агентный RAG - это архитектура генерации с дополненным извлечением, в которой LLM-агент, а не фиксированный конвейер, решает, что извлекать, когда, как и достаточно ли хорош ответ. Вместо единственного потока запрос -> извлечение -> ответ агент планирует, выполняет несколько поисков, оценивает собственные промежуточные ответы и повторяет попытки, пока не будет уверен в результате.
Почему это важно
У классического RAG есть потолок: один запрос, одно извлечение, один ответ. Это работает для простых поисков, но не справляется со сложными вопросами, неоднозначными запросами или задачами, требующими чтения нескольких документов в несколько шагов. Агентный RAG преодолевает этот потолок, предоставляя модели автономию над самим процессом извлечения. Бенчмарки 2024-2025 годов от LangChain, LlamaIndex и Anthropic показывают, что агентный RAG превосходит обычный RAG на 20-40% в задачах вопросов-ответов по нескольким документам, проверки фактов и исследований. Это архитектура, лежащая в основе глубокого исследования Perplexity, веб-просмотра ChatGPT и большинства корпоративных систем "общения с документами", которые действительно работают.
Чем он отличается от обычного RAG
Обычный RAG:
- Пользователь задает вопрос
- Система кодирует вопрос, извлекает top-k результатов
- Модель генерирует ответ из извлеченного контекста
Один проход. Статично. Без повторных попыток.
Агентный RAG:
- Пользователь задает вопрос
- Агент планирует: "Что мне нужно знать, чтобы ответить на это?"
- Агент вызывает инструмент извлечения с конкретным подзапросом
- Агент читает результаты, решает, чего не хватает
- Агент снова вызывает извлечение с уточненными запросами (цикл)
- Агент решает, когда у него достаточно данных, и составляет ответ
- Агент при необходимости проводит самокритику и вносит правки
- Выдается окончательный ответ
Многошаговый. Адаптивный. Может возвращаться назад.
Основные компоненты
Планировщик: LLM (часто та же, что и отвечает), которая разбивает вопрос на шаги извлечения.
Инструменты извлечения: векторный поиск, поиск по ключевым словам, вызовы API, запросы к базе данных - агент может выбирать между ними.
Память: агент отслеживает, что он уже видел, чтобы избежать избыточных вызовов.
Цикл самокритики: агент оценивает, насколько хорошо обоснован его черновой ответ, и если нет, извлекает больше данных.
Условие выхода: либо порог уверенности, либо бюджет шагов, либо явный сигнал "у меня достаточно".
Распространенные паттерны
ReAct (Reasoning + Acting): агент чередует размышления и вызовы инструментов в едином рабочем пространстве. Изначальный агентный паттерн из работы Yao et al., 2022.
Plan-and-execute: агент сначала пишет многошаговый план, затем выполняет каждый шаг. Лучше подходит для глубоких исследований; медленнее для простых вопросов.
Self-RAG: модель динамически решает, нужно ли извлечение вообще. Если вопрос тривиален, она полностью пропускает извлечение.
Multi-agent RAG: несколько специализированных агентов (поисковик, читатель, критик, писатель) работают совместно. Мощно, но дорого.
Когда его применять
Сложные исследовательские задачи: "Обобщи тренды доходов за четвертый квартал 2025 года по компаниям FAANG."
Проверка фактов по нескольким документам: сопоставление утверждений с несколькими источниками.
Неоднозначные вопросы: где правильное извлечение зависит от снятия неоднозначности ("Какой именно Jordan?").
Ответы с высокими ставками: юридические, медицинские, финансовые, где единственное извлечение может упустить критически важный контекст.
Чат с интеграцией агентов: ассистенты, которые также выполняют действия (отправка письма, планирование встречи) на основе полученных знаний.
Когда его не стоит применять
Простые поиски по FAQ: одного извлечения достаточно; агентные циклы добавляют задержку и стоимость.
Жесткие ограничения по задержке: чат-интерфейсы с целевым показателем в 1 секунду не могут позволить себе многошаговые агентные циклы.
Чувствительность к стоимости при больших объемах: каждая итерация цикла - это еще один вызов вывода. В масштабе агентный RAG может быть в 5-10 раз дороже обычного RAG.
Хорошо проиндексированные небольшие корпусы: если ваши данные достаточно малы, чтобы одно плотное извлечение всегда находило нужный фрагмент, не добавляйте сложности.
Компромиссы
Задержка: многошаговые циклы означают, что ответы занимают 5-30 секунд, а не меньше 1 секунды.
Стоимость: каждый шаг - это вызов LLM плюс вызов извлечения. Планируйте бюджет соответственно.
Детерминированность: агентные системы сложнее отлаживать и воспроизводить, потому что агент может выбирать разные пути при разных запусках.
Оценка: измерить "хорошо ли извлечение" сложно, когда план извлечения динамический. Вы оцениваете финальные ответы, а не промежуточные решения.
Распространенные ошибки
Навязывание агентов простым вопросам: излишество раздувает стоимость без улучшения качества.
Отсутствие бюджета шагов: неограниченный агент может зацикливаться на минуты. Ограничивайте шаги до 5-10.
Отсутствие памяти: без отслеживания прошлых извлечений агент повторяет работу.
Слабый планировщик: если планирующая LLM слишком мала или плохо настроена через промпт, планы получаются плохими, а циклы тратят вызовы впустую.
Пропуск оценки: поскольку трассировки агента зашумлены, команды пропускают формальную оценку, а затем не могут понять, действительно ли их система лучше обычного RAG.
Источники: