RAG is not one fixed architecture. Recent papers such as SCOUT-RAG, A-RAG, and SCMRAG 2.0 explore adaptive retrieval, distributed Graph-RAG, hierarchical interfaces, and multimodal self-correction. Their results are research observations, not evidence that an agentic design universally beats a simpler pipeline. This guide separates those papers from the production contracts needed for evidence, authorization, evaluation, cost, and rollback.
Key Takeaways
- RAG evolution path: Naive RAG → Advanced RAG → Modular RAG → Agentic RAG
- Agents autonomously decide "whether to retrieve / what / where from / is it sufficient"
- SCOUT-RAG explores progressive cross-domain traversal and adaptive graph retrieval in a research setting.
- Multimodal and graph retrieval are design options, not a standard enterprise solution.
- Distributed retrieval can isolate ownership and scale domains, but fan-out also adds tail latency, policy complexity, and failure modes.
Research Patterns, Not a Canonical Timeline
| Phase | Characteristics | Key Technology | Era |
|---|---|---|---|
| Pattern | Typical control surface | Primary trade-off | |
| --- | --- | --- | |
| Single-pass RAG | fixed retrieval and generation | simple and cheap, but less adaptive | |
| Workflow/iterative RAG | predefined query, retrieval, and verification steps | more control, less per-query flexibility | |
| Agentic RAG | model selects from allowlisted retrieval actions | adaptive, but harder to bound and evaluate | |
| Distributed Graph-RAG | domain routing and graph traversal across owners | preserves locality, but adds fan-out and authorization work | |
| Multimodal RAG | modality-specific or shared evidence paths | preserves richer inputs, but increases indexing and validation cost |
Core Architectures
SCOUT-RAG: Distributed Agentic Graph-RAG
SCOUT-RAG is the name used by Li et al. for “Scalable and Cost-Efficient Unifying Traversal.” The arXiv preprint (v1, February 2026) describes three stages: domain relevance assessment, domain-scoped seeding, and iterative cross-domain refinement, implemented with cooperating agents. It is a research framework; reproduce its baselines and data conditions before making a cost or quality claim.
User Query
│
▼
┌─────────────────────┐
│ Domain Relevance │ ← estimate which independently owned domains matter
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ Domain-Scoped Seeding│ ← retrieve within selected domains
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ Cross-Domain Refinement│ ← expand only when evidence justifies it
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ Answer Quality Check │ ← inspect evidence gaps and provenance
└──────────┬──────────┘
┌───┴───┐
│Insufficient│→ Return to Source Selection
└───┬───┘
│ Sufficient
▼
┌─────────────────────┐
│ Answer Generation │ ← Generate from sufficient evidence
└─────────────────────┘
A-RAG: Hierarchical Retrieval Interfaces
A-RAG (Du et al., 2026) exposes keyword search, semantic search, and chunk reading interfaces at different granularities so that the model can select and interleave retrieval actions. A confidence number generated by the same model is not a sufficient authorization or stopping signal; production systems need explicit budgets, evidence checks, and server-side stop rules.
# Illustrative pseudocode. Tool implementations, auth, and model APIs are omitted.
def adaptive_retrieval(query, policy):
evidence = []
for _ in range(policy.max_rounds):
action = policy.choose_allowlisted_action(query, evidence)
result = policy.execute(action)
evidence = policy.validate_and_merge(evidence, result)
if policy.has_sufficient_cited_evidence(query, evidence):
break
return policy.generate_with_citations(query, evidence)
The policy layer, not the model, owns tool allowlists, tenant filters, byte/token budgets, timeouts, and cancellation.
Distributed Agentic RAG (SCMRAG 2.0)
Conceptual distributed topology for cross-domain knowledge:
┌─────────────────┐
│ Orchestrator │
│ Agent │
└────────┬────────┘
│
┌───────────────────┼───────────────────┐
│ │ │
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Domain Agent │ │ Domain Agent │ │ Domain Agent │
│ (Product) │ │ (Code) │ │ (Customer) │
└──────┬───────┘ └──────┬───────┘ └──────┬───────┘
│ │ │
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Vector DB │ │ Code Index │ │ Graph DB │
│ (Milvus) │ │ (Tree-sitter)│ │ (Neo4j) │
└──────────────┘ └──────────────┘ └──────────────┘
This is a conceptual topology, not a recommendation to use the named products:
- Each domain has an independent retrieval Agent aware of its data characteristics
- Orchestrator distributes queries, aggregates results, resolves conflicts
- Supports heterogeneous sources (vector DB, graph DB, code index, APIs)
- Domain Agents may retrieve in parallel, but the system must measure tail latency, partial failures, and the cost of fan-out
Multi-Modal RAG
Architecture Comparison
| Approach | Principle | Advantage | Disadvantage |
|---|---|---|---|
| Unified Embedding | CLIP-family, images+text in same space | Simple unified retrieval | Precision limited by embedding model |
| Modality Conversion | VLM describes → text RAG | Reuses mature text pipeline | Significant information loss |
| Per-Modality Fusion | Independent indexes + fusion generation | preserves modality-specific signals | Complex architecture and fusion errors |
A Versioned Multimodal Retrieval Pattern
# Illustrative pseudocode. Pin model revisions and validate every evidence object.
def multimodal_query(question, retrievers, generator, policy):
candidates = []
for retriever in policy.allowed_retrievers:
candidates.extend(retriever.search(question, limit=policy.limit_for(retriever)))
evidence = policy.deduplicate_check_permissions_and_provenance(candidates)
return generator.generate(question, evidence, citations=True)
Knowledge Graph + RAG Fusion
Graph RAG Workflow
Document Corpus
│
▼
[Entity Extraction] → [Relation Extraction] → [Knowledge Graph Construction]
│
▼
┌───────────────────────┐
│ Knowledge Graph │
│ (Entities+Relations) │
└───────────┬───────────┘
│
User Query → [Intent Recognition] → [Graph Query Gen] → [Subgraph Retrieval]
│
▼
[Context Augmentation] → [LLM Generation]
Use Case Fit
| Question type | Test first | Additional graph value to verify |
|---|---|---|
| single-hop fact | lexical/dense baseline | entity disambiguation or provenance |
| multi-hop relation | decomposed retrieval baseline | path completeness and contradiction handling |
| global summary | hierarchical or map-reduce baseline | coverage, source weighting, and citation completeness |
| long-tail question | hybrid retrieval and abstention | graph recall versus construction cost |
Replace Scoreboards With a Controlled Evaluation
| Dimension | Required protocol |
|---|---|
| retrieval | fixed corpus, query slices, evidence labels, Recall@k/Recall@budget, nDCG or MRR |
| answer | citation precision/recall, faithfulness, completeness, abstention, and contradiction handling |
| efficiency | p50/p95 latency, model/tool calls, retrieved tokens, storage, and cost per correct answer |
| distributed behavior | domain fan-out, partial failure, access-denial rate, cross-domain leakage tests, and tail latency |
| reproducibility | model/checkpoint, prompt, index/parser versions, seeds, dates, and complete baseline configuration |
Engineering Recommendations
Selection Decision Tree
What's your RAG scenario?
├── Simple Q&A (single-hop facts) → establish a single-pass baseline
├── Multi-hop reasoning/relationship questions → Graph RAG
├── Multiple data sources/cross-domain → Distributed Agentic RAG
├── Mixed text+image knowledge base → Multi-Modal RAG
└── High accuracy requirements → compare candidate workflows on labeled slices
Choose Components by Contract
| Component | Selection questions |
|---|---|
| vector index | filter support, update semantics, recall, isolation, export, and deletion |
| graph index | ownership, traversal limits, consistency, provenance, and query authorization |
| embedding/reranker | language/modality coverage, version pinning, calibration, and data policy |
| agent runtime | schema validation, cancellation, idempotency, retries, budgets, and audit events |
| observability | redaction, tenant isolation, trace retention, cost attribution, and replay |
Production Safety Boundaries
- Apply tenant, object, and purpose authorization before retrieval and again after parent/graph expansion.
- Treat documents, graph nodes, retrieved snippets, images, and tool results as untrusted content; defend against prompt injection and poisoned evidence.
- Allowlist outbound web/API destinations, validate redirects, and bound response size to control SSRF and exfiltration.
- Preserve source identifiers, versions, timestamps, licenses, and deletion lineage; generated summaries are not authoritative sources.
- Require citations or abstention for unsupported claims, and keep human approval for high-impact writes.
- Make domain fan-out, retries, and external side effects idempotent and observable.
Conclusion
Core evolution directions for RAG architecture in 2026:
- From pipeline to Agent: Retrieval strategies dynamically decided by Agents, not fixed processes
- From single to distributed: Cross-domain knowledge unified through multi-Agent collaboration
- From text to multi-modal: Images, tables, code included in retrieval scope
- From flat to graph: Knowledge graphs provide structured support for multi-hop reasoning
For new RAG projects, evolve in phases: establish a transparent single-pass baseline, label evidence, then add adaptive, graph, multimodal, or distributed components only when a slice-level evaluation shows a material benefit that justifies its operational and governance cost.