Классический RAG: один embedding search → top-k chunks → LLM отвечает. Работает для FAQ, ломается на multi-hop вопросах («сравни тарифы Enterprise и Pro с учётом скидки Q2»). Agentic RAG — когда ИИ-агент сам решает как, где и сколько раз искать.
У вас уже есть база: RAG и Memory для агентов. Здесь — следующий уровень для агент модели ии (688) и сложных knowledge tasks.
Naive RAG vs Agentic RAG
| Naive RAG | Agentic RAG | |
|---|---|---|
| Запросы | 1 search | N searches, plan |
| Decomposition | Нет | Sub-questions |
| Tools | retrieve() | retrieve, sql, web, calc |
| Failure | Галлюцинация | Retry другой стратегией |
| Latency | 1–3 сек | 5–30 сек |
| Cost | $ | $$ |
Паттерны Agentic RAG
1. Query decomposition
Агент разбивает вопрос:
User: "Можно ли перенести данные с тарифа Pro на Enterprise без даунтайма?"
→ Q1: условия миграции Pro→Enterprise
→ Q2: SLA downtime на Enterprise
→ Q3: процедура миграции в docs
Каждый sub-query → vector search → synthesize.
2. Corrective RAG (CRAG)
После retrieve — grader LLM:
- relevant → generate
- ambiguous → web search fallback
- irrelevant → reformulate query
Снижает «ответ по случайному chunk» на 30–40% в internal benchmarks.
3. Self-RAG
Модель генерирует с [Retrieve] token когда нужен факт, [No Retrieve] когда достаточно reasoning.
Требует fine-tune или специализированных моделей — реже в no-code.
4. GraphRAG (Microsoft)
Knowledge graph + community summaries поверх embeddings:
- Entities и relationships из документов
- Global questions («main themes in corpus») — сильнее vector-only
Подходит для 10k+ документов, due diligence, compliance.
5. Hybrid: SQL + Vector
Agent выбирает tool:
- vector_search("политика возврата")
- sql("SELECT price FROM plans WHERE name='Enterprise'")
Критично для табличных данных в PDF/Notion.
Архитектура в LangGraph
from langgraph.graph import StateGraph, END
class RAGState(TypedDict):
question: str
sub_queries: list[str]
documents: list[str]
answer: str
grade: str
def plan(state):
# LLM decomposes question
...
def retrieve(state):
# parallel retrieve per sub_query
...
def grade_documents(state):
# CRAG grader
...
def generate(state):
...
graph = StateGraph(RAGState)
graph.add_node("plan", plan)
graph.add_node("retrieve", retrieve)
graph.add_node("grade", grade_documents)
graph.add_node("generate", generate)
graph.add_conditional_edges("grade", route_by_grade)
Детали графа: LangGraph агенты.
Vector DB для Agentic RAG
| DB | Agentic-friendly feature |
|---|---|
| Qdrant | Payload filters, hybrid search |
| Weaviate | Generative search, rerankers |
| Pinecone | Namespaces, sparse-dense |
Сравнение: Qdrant vs Pinecone vs Weaviate.
Reranker (Cohere, bge-reranker) после top-50 → top-5 — must для agentic loops.
Agentic RAG в n8n
- AI Agent с tools:
search_notion(query)search_confluence(query)run_sql(query)(read-only)- System prompt: «Always decompose complex questions»
- Max iterations 6–10
См. n8n AI Agents prod.
Evaluation agentic RAG
Метрики beyond «похоже на правду»:
| Metric | Как мерить |
|---|---|
| Faithfulness | LLM-judge: answer ⊆ chunks |
| Context precision | % relevant chunks in top-k |
| Multi-hop success | Custom QA dataset |
| Tool efficiency | avg retrieves per question |
Pipeline evals — observability статья.
Когда НЕ нужен Agentic RAG
- < 500 документов, простой FAQ
- Strict latency < 2 сек
- Бюджет API минимальный
- Вопросы single-hop
Останьтесь на naive RAG + хороший chunking.
Chunking 2026 (напоминание)
- Semantic chunking > fixed 512 tokens
- Metadata: product, version, date — для filter agent
- Parent-child chunks: small retrieve, large context
Trend: RAG + MCP
MCP-сервер экспонирует list_resources + read_resource — agent через MCP discovery вместо hardcoded retrieve tool.
Вывод
Agentic RAG — тренд для ИИ-агентов с complex knowledge: decomposition, CRAG, GraphRAG, hybrid SQL. Платите latency и cost за точность на multi-hop. Начните с CRAG + reranker, добавляйте planning loop по мере роста failure rate naive RAG.
Смотрите также:
- RAG и Memory
- OpenAI Agents SDK