RAG
checking backend…
9 architectures · 28 questions · 252 recorded runs

Nine RAG architectures, each one forced into existence by the last one's failure.

Every stage was built, then evaluated against a stage gate that re-runs all its predecessors on the same corpus, the same questions and the same judge on the same day. A stage is only allowed to exist if a named, reproducible weakness in the previous one justifies it. The claims below are measurements, not citations.

Best headline
v8 · 0.876
agentic tool choice wins on accuracy
Best adversarial
v9 · 1.00
only stage that resists every attack
Weakest baseline
0.739
reflection stages cost accuracy here
Judge passes
3 per answer
median taken; spread is plotted

How the nine stages actually score

Headline is a blunt weighted blend. The interesting movement is in correctness and faithfulness, which diverge: a stage can get safer and less accurate at the same time.

The last stage is not the best stage

v8 beats v9 on headline and correctness. v9 buys perfect adversarial resistance and the lab's best faithfulness by removing things — instructions it does not trust, claims that follow a lone confident source. Under attack that is right; on breadth it costs. The gate makes that tradeoff be written down rather than averaged away.

Two stages score below their predecessor

v3 Self-RAG and v5 FLARE both come in under v2 on this eval set. Self-critique converts some confident wrong answers into refusals, and sentence-level confidence adds cost without adding recall. Both are reported as found rather than tuned until they flattered the narrative.

The chain of weaknesses

Each row's weakness is a finding from that stage's gate report, and it is the reason the next row exists.

StageWhat it addsThe weakness that forced the next stageHeadlineCorrect
v1VanillaEmbed, top-k cosine, stuff the prompt, generateA single dense query misses paraphrases, and lexically similar distractors outrank the passage that holds the answer.0.7760.668
v2AdvancedHyDE, BM25 + dense RRF fusion, cross-encoder rerank, contextual compressionRetrieval fires on every query and its output is never questioned, so a bad set still reaches the prompt unchallenged.0.7790.664
v3Self-RAGRetrieve-or-not gate, per-passage relevance grading, support check with retryIt judges each passage in isolation, so it cannot notice that the set as a whole is collectively insufficient.0.7450.607
v4CRAGRetrieval evaluator, knowledge strips, web-search fallbackAll correction happens before generation, so a claim invented halfway through an answer is never revisited.0.7790.675
v5FLARESentence-level confidence, retrieval triggered during generationConfidence is measured locally, sentence by sentence; nothing in the design ever sees a whole topic at once.0.7390.629
v6RAPTORRecursive cluster-and-summarise tree, collapsed-tree search across all levelsIt sees breadth but not structure: it cannot join two facts that live in different documents via a shared entity.0.8060.707
v7GraphRAGEntity/relation graph, Louvain communities, local traversal + global summariesOne retrieval strategy is fixed per query, chosen before anything has understood what the question needs.0.7860.704
v8AgenticPlanner loop over vector, tree, graph, web and calculator toolsIt trusts whatever the tools hand back. Nothing inspects retrieved text for hostile instructions or poisoned facts.0.8760.846
v9ModularRouter, injection guardrail, grader, critic and synthesiser as separate agentsFinal stage. Its own weakness — global questions — is the open thread.0.8170.736

How to read this site

Everything is served from the committed evaluation artifacts, so it works with nothing running.