Contents
- The spectrum, not a binary
- Position 1: Classical RAG (baseline)
- Position 2: Enhanced RAG with retrieval evaluation (CRAG)
- Position 3: Single-agent RAG
- Position 4: Multi-agent RAG
- The patterns that enable each step
- Query decomposition
- Multi-hop retrieval
- CRAG (Corrective RAG)
- Reflection and critique loops
- Tool use beyond retrieval
- Multi-agent orchestration for RAG
- Document-agent pattern
- Specialized-function pattern
- Consensus and voting pattern
- When agentic RAG is not worth it
- What the research actually shows
- The offshore energy case
- The decision checklist
- The cost and latency reality
- Evaluating agentic RAG is a different problem
- Per-hop traces, not end-state metrics
- The evaluator paradox
- Frequently Asked Questions
You’ve shipped classical RAG. It works. Retrieval hits the right chunks most of the time, the LLM grounds its answers, your latency sits where it needs to, and your eval scores are stable enough to defend in a Tuesday review. Now someone on your team, or someone three levels up, wants to know if you should make it agentic. Before you say yes, read the 5 architectural decisions in classical RAG so we share the same baseline. And if the broader question of what “agentic” even means is still fuzzy, the agentic AI vs generative AI breakdown covers that ground separately.
This post is about the upgrade decision. Not the definition.
The spectrum, not a binary
Most articles frame agentic RAG as a single thing you either adopt or don’t. That framing is wrong. There are at least four positions on the spectrum, and the gap between each one is bigger than the gap between “RAG” and “no RAG.” When evaluating orchestration frameworks for the multi-hop and stateful patterns we’re about to walk through, the LangChain vs LlamaIndex comparison covers which framework aligns with each position.
Position 1: Classical RAG (baseline)
A fixed pipeline. User query goes in, embedding comes out, top-k chunks come back from the vector store, the LLM gets the chunks plus the query, an answer comes out. No decisions inside the loop. The path is the same on query 1 and query 100,000. This is the architecture covered in the classical RAG post, and it’s the right call far more often than the agentic crowd admits. The vessel management build for an offshore energy client (15,000+ technical manuals across multiple SharePoint sites) is a clean example. Hybrid search on Azure Cognitive Search, GPT-4 Turbo on top, and the lookup time went from over 23 minutes to under 90 seconds. No agents. No loops. We’ll come back to why.
Position 2: Enhanced RAG with retrieval evaluation (CRAG)
The first real step toward agentic. You add a confidence scorer after retrieval. If the retrieved chunks score high, you proceed normally. If they score low, you trigger a fallback path, usually a web search. This is the Corrective RAG pattern from Yan et al., 2024. It introduces exactly one decision point, not a full reasoning loop, which is why it’s the cheapest agentic pattern to bolt onto an existing system. On a legal research build for an Italian tax and legal advisory firm (25GB corpus of Italian tax and legal documents), we use Tavily as the web fallback when corpus confidence drops below threshold. One decision, one branch. That’s it.
Position 3: Single-agent RAG
Now the LLM itself decides whether to retrieve, what to retrieve, whether to retrieve again, and when to stop. The LLM is wrapped in a tool-use loop with the retriever exposed as a callable function. Multi-hop becomes possible: the model issues query 1, looks at the result, decides query 2 needs to filter on a different field, and reissues. Reflection becomes possible: the model critiques its own draft answer and rewrites the query. The trade is latency. Three or four iterations and you’re at 10+ second response times before the user sees the first token. Whether that’s acceptable depends entirely on what you’re answering.
Position 4: Multi-agent RAG
Task decomposition across specialized agents. Instead of one agent doing everything, a router or orchestrator splits the work. The offline rule-monitoring build for a maritime simulation client (250+ maritime simulation rules across 6 categories, 0 cloud dependencies) runs four specialized agents on the Agnos framework: query improvement, retrieval, grading, and answer generation. Each agent has a narrow job. Failures are isolatable. The cost: roughly 2x the tokens and 3x the latency of single-agent setups, based on published CrewAI benchmarks. That’s the order-of-magnitude tax for the orchestration.
The patterns that enable each step
Pick the patterns that match your data and constraints. They’re modular. Adopt some, skip others.
Query decomposition
What it does: breaks a compound query into sub-queries, each retrieved separately, results recombined. The legal research build uses this constantly because Italian tax questions routinely span multiple regulations, and the user asks in one breath. A single-query retrieval would miss half the supporting context. Skip it for flat corpora where each document stands alone, or for queries that are already atomic.
Multi-hop retrieval
The model reads hop 1’s results and decides what hop 2 should look for. The legal research build uses this when a user asks a question that traces from a regulation to its implementing circular to a relevant case ruling. You can’t predict that chain at query time. Skip it for single-source corpora and skip it for any system where total response time has a hard ceiling under 5 seconds.
CRAG (Corrective RAG)
Confidence score on retrieved chunks, web search fallback if confidence is low. The full pattern is in Yan et al., 2024. The legal research build uses Tavily as the fallback. The maritime simulation build deliberately doesn’t use this pattern at all, because the system is fully offline and a web fallback would violate the deployment constraint. The pattern is good. Air-gapped environments still skip it. Constraints rule.
Reflection and critique loops
The model evaluates its own output and decides whether to retry. The original ReAct framing (Yao et al.) covers the basic shape. The legal research build runs anomaly detection on its own answers as a critique step. If you’re tempted by Self-RAG (Asai et al., 2024), note that Self-RAG requires fine-tuning the base model with reflection tokens. It’s not a drop-in pattern for managed APIs like GPT-4o or Claude. Skip reflection loops entirely for real-time systems. The latency math doesn’t work.
Tool use beyond retrieval
Once the LLM has tool access, retrieval is just one tool. The legal research build treats Tavily as a tool, treats multi-LLM routing as a tool selection problem (GPT-4o, Claude, Gemini, DeepSeek R1 are all available, and the agent picks based on task), and treats anomaly detection as a tool. Skip this entirely when your corpus is authoritative and complete and there’s no second source worth consulting. Adding tools you don’t need is a tax on every query.
Multi-agent orchestration for RAG
When people say “multi-agent RAG” they usually mean one of three patterns. Knowing which one you’re building changes the design.
Document-agent pattern
One agent per document type or document collection. A meta-agent receives the query and routes to the right specialist. This works well when your corpus has high structural diversity, say, you’re querying across product manuals, contracts, and customer tickets, and each type needs different retrieval logic. Each agent owns its retrieval strategy. The router stays thin.
Specialized-function pattern
One agent per pipeline stage. The maritime simulation build is the cleanest example I’ve shipped: query improvement agent, retrieval agent, grading agent, answer generation agent. Each one is replaceable independently. When the retrieval agent regresses, you don’t ship a full system rebuild. You patch one component. The cost is real: roughly 2x tokens and 3x latency vs single-agent. You’re paying for isolation and debuggability.
Consensus and voting pattern
Multiple independent retrievals run in parallel, each with a different strategy or model, and an arbitrator agent resolves disagreements. Highest accuracy ceiling. Highest cost. We don’t have a Culturro anchor for this one yet, but it’s worth naming because it shows up in research and high-stakes deployments. If you’re considering this pattern, your accuracy floor needs to justify the bill.
When agentic RAG is not worth it
This is the part most posts skip. Agentic isn’t free, and on a lot of workloads it’s worse than classical, not better.
What the research actually shows
Ferrazzi et al., ACL 2026 ran the most honest comparison I’ve seen. Agentic systems cost up to 3.6x more than classical, consume 2.7 to 3.9x more input tokens, and run 1.5x slower on average. On document refinement tasks, NDCG@10 was 49.5 for classical vs 43.9 for agentic. On FEVER fact verification, classical hit F1 between 87.9 and 96.6. Agentic dropped to 64.6. That’s not a small gap. Where agentic did win was on narrow, well-scoped domains: 98.8 on FIQA, 99.8 on CQADupStack. The pattern is consistent. Broad factual coverage favors classical. Tight domain reasoning favors agentic.
The offshore energy case
The vessel management build operates on a structured domain. The corpus is 15,000+ manuals, but the query patterns are predictable: a tech needs the spec for a part, the procedure for a fault code, the maintenance interval for a system. Latency matters because techs are on a deck, not at a desk. We didn’t build agents. We built hybrid search (text + vector) on Azure Cognitive Search with GPT-4 Turbo for synthesis. The Ferrazzi data explains why: predictable queries on a structured corpus is exactly the regime where classical wins. Lookup time dropped from over 23 minutes to under 90 seconds. That’s the only outcome metric we publish on this build, and it’s the one that mattered.
The decision checklist
Three questions before you upgrade:
- Are your queries multi-part, cross-document, or dependent on intermediate results? If no, skip agentic. You’re paying for capability you won’t use.
- Does your corpus have coverage gaps that web fallback could fill? If no, skip CRAG. Tavily costs money per call.
- Is your domain narrow and well-scoped? If yes, agentic may help. If your queries span broad factual ground, classical may outperform on accuracy and definitely will on cost.
If you answered “no” to all three, ship classical and re-evaluate in six months when query patterns have evolved.
The cost and latency reality
Three numbers to anchor on: 1.5x average latency vs classical, 3.6x worst-case cost, and 3-4 iterations on a single-agent loop puts you at 10+ second query times before the user sees a token.
| Architecture | Avg latency | Input tokens | Total cost |
|---|---|---|---|
| Classical RAG | 1x | 1x | 1x |
| Single-Agent RAG | 1.5x | 2.7x | 2-3x |
| Multi-Agent RAG | 3x | 3.9x | 3.6x |
Numbers are directional, drawn from the Ferrazzi paper and CrewAI benchmarks. Your workload will land somewhere in this range.
Evaluating agentic RAG is a different problem
Classical RAG eval is mostly end-state: did the answer match the reference, did the retrieval recall the right chunks. Agentic RAG breaks that approach because the path itself matters, not just the final answer.
Per-hop traces, not end-state metrics
What you actually need to measure on an agentic system: faithfulness at each retrieval hop, correctness of each tool call, whether the loop converged or diverged, validity of the stop condition (did the agent stop because it had the answer or because it gave up), and coordination fidelity across multi-agent handoffs. End-state accuracy on a passing query tells you nothing about a failure that happened on hop 3 of a 5-hop chain on a different query.
The tooling has caught up here. TruLens combined with OpenTelemetry gives you per-hop traces. RAGAS shipped multi-turn and agentic support in v0.2 (October 2024). DeepEval slots into CI/CD if you want regression gates. Most teams I see haven’t instrumented per-hop logging at all, which means when something breaks in production, the debugging is archaeology.
The evaluator paradox
Most agentic eval pipelines use an LLM as judge. The judge can hallucinate the judgment. You’re using a stochastic system to evaluate another stochastic system, and the failure modes correlate. Treat the evaluator as another component that needs its own evals: a held-out set of human-labeled traces that you periodically score the judge against. If you skip this, your eval numbers are decoration.
If you’re deciding where on the spectrum your next RAG system should sit, we’ve been through this decision three times: classical on the vessel management build, CRAG-with-multi-LLM on the legal research build, four-agent specialized on the maritime simulation build. We can walk you through the trade-offs for your specific corpus, query patterns, and constraints. Talk to us about your RAG architecture decision. If you’re earlier in the question and trying to decide whether to build at all, the build vs buy RAG decision framework is the better starting read.
Frequently Asked Questions
What’s the simplest way to describe the difference between classical and agentic RAG?
Classical RAG runs the same fixed pipeline on every query: retrieve, then generate. Agentic RAG lets an LLM make decisions inside the loop: whether to retrieve, what to retrieve next, whether to use a different tool, when to stop. Classical is a function. Agentic is a process with branches.
Do I need to fine-tune a model to use agentic RAG?
No, for most patterns. CRAG, query decomposition, multi-hop retrieval, tool use, and most multi-agent orchestration work fine on managed APIs like GPT-4o, Claude, or Gemini using their native tool-calling. Self-RAG specifically requires fine-tuning because it relies on custom reflection tokens, but it’s the exception. Everything else is a prompt-engineering and orchestration problem, not a training problem.
How does multi-agent RAG differ from a single agent with multiple tools?
A single agent with multiple tools holds one context window and one decision-making loop. It’s faster and cheaper. Multi-agent RAG splits the work across specialized agents that each have their own context, prompts, and sometimes their own model. You get isolation, debuggability, and the ability to swap one agent without retesting the rest. You pay roughly 2x in tokens and 3x in latency. Pick multi-agent when isolation is worth more than speed.
When does classical RAG outperform agentic RAG?
When queries are predictable, the corpus is structured, the domain is broad, and latency matters. The Ferrazzi paper showed classical beating agentic on FEVER F1 by 23+ points and on document refinement NDCG@10 by 5.6 points. The vessel management build is the practitioner version of that finding. If your workload looks like that offshore energy build, ship classical.
What tools do teams actually use to evaluate agentic RAG in production?
The stack I see most often: TruLens for per-hop traces, OpenTelemetry for distributed tracing across agents, RAGAS v0.2 for multi-turn and agentic-aware metrics, and DeepEval for CI/CD regression gates. The non-negotiable piece is per-hop logging from day one. Add it before you go to production, not after the first incident.