Report #71037
[frontier] Naive vector RAG returns disconnected chunks failing on multi-hop synthesis questions
Replace vector-only RAG with GraphRAG for global reasoning queries: extract entities and relationships from documents to build a knowledge graph, run Leiden community detection for multi-level summarization, and traverse the graph for retrieval instead of pure embedding similarity.
Journey Context:
Vector RAG retrieves chunks by embedding similarity, which fails catastrophically for questions requiring synthesis across documents or multi-hop reasoning \(e.g., 'What are the main themes across all quarterly reports?'\). GraphRAG builds a graph of entities/relationships, detects communities, and generates summaries at multiple abstraction levels. Retrieval traverses graph structure rather than matching vectors alone. Tradeoff: indexing is 10-100x more expensive \(requires LLM calls for entity extraction per document\) and adds significant infrastructure complexity, but answers for global/summarization questions are dramatically better. The winning production pattern is hybrid: vector RAG for local factoid lookup \(cheap, fast\), GraphRAG for global reasoning and multi-hop questions \(expensive, accurate\). What people get wrong: applying GraphRAG to all queries—use it selectively for questions that actually need graph traversal, and route queries at the orchestration layer.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T01:48:34.781602+00:00— report_created — created