What is graph RAG?

Quick answer

Graph RAG, in its specific, technical sense, refers to an approach that clusters a knowledge graph into communities of closely related entities and generates a summary for each community, then uses those community summaries to answer broad, holistic questions about an entire content collection, questions like “what are the main themes across this dataset” that neither the multi-hop, entity-to-entity traversal covered in this collection’s discussion of knowledge graph RAG nor ordinary vector-based retrieval handles well. Where knowledge graph RAG focuses on following explicit relationships between specific entities to answer relational questions, graph RAG specifically addresses questions that require synthesizing information across a large portion of a collection at once, something neither passage-level retrieval nor entity-level traversal was ever designed to do.

Summary slides
Graph RAG
Why some questions need a synthesized view of an entire collection…
How answering a global question actually draws on these community…
Why graph RAG's upfront cost is considerably higher than either…
Common mistakes teams make around graph RAG

Why some questions need a synthesized view of an entire collection, not just relevant pieces

Vector-based retrieval and entity-level graph traversal both share an underlying assumption, that a question’s answer can be assembled from some specific, identifiable subset of a larger collection, a handful of relevant passages, or a chain of connected entities. This assumption breaks down for broad, global questions, ones whose answer depends on synthesizing patterns and themes across a large share of an entire collection rather than any identifiable, bounded subset of it, “what are the recurring concerns raised across all of these customer interviews” or “what are the major themes in this research corpus” don’t have an answer sitting in any particular passage or connected chain of entities, the answer only exists as a pattern spanning a large portion of the collection as a whole.

This is the specific gap graph RAG’s community-summarization approach exists to fill, pre-computing summaries at a level of abstraction above individual passages or entities, capturing the thematic patterns that span a meaningful portion of a collection, so that a broad, global question can be answered by drawing on these pre-built summaries rather than attempting to retrieve and synthesize an impractically large amount of raw content at query time.

How community detection actually organizes a knowledge graph into summarizable clusters

Graph RAG builds on the underlying knowledge graph construction covered in this collection’s discussion of knowledge graph RAG, but adds an additional step, applying community detection algorithms that identify clusters of entities more densely and closely connected to each other than to the rest of the graph, grouping related entities into coherent, thematically consistent communities. This clustering step is what identifies the natural groupings a collection’s content actually falls into, rather than requiring a person to manually decide how to partition a large graph into meaningful, summarizable sections.

Once these communities are identified, a language model generates a summary for each one, capturing the key entities, relationships, and themes that community represents, producing a set of pre-computed, higher-level summaries that sit above the raw graph’s individual entities and relationships, giving the system a meaningfully different, more abstracted view of the collection’s content than either raw passages or individual graph connections could provide on their own.

How answering a global question actually draws on these community summaries

When a genuinely global question arrives, graph RAG doesn’t search for individual relevant passages or trace a specific entity relationship chain, it draws on the relevant community summaries, potentially combining information across several of them, to construct an answer that reflects patterns spanning a meaningful portion of the underlying collection. This is a fundamentally different retrieval operation than either vector search or entity traversal, it’s working with pre-synthesized, higher-level representations of the collection’s content rather than searching for specific, narrower pieces of raw information.

This is precisely why graph RAG can answer questions vector-based retrieval and simple graph traversal both structurally struggle with, the community summaries already contain the kind of cross-cutting synthesis a global question needs, work that was done once during the community-summarization step rather than needing to happen expensively and imperfectly at the moment each individual global question actually gets asked.

Why graph RAG’s upfront cost is considerably higher than either alternative

Building the community structure and generating summaries for every identified community requires real, upfront computational investment beyond what either ordinary embedding-based retrieval or basic knowledge graph construction requires, community detection across a large graph, and a language model call to generate a summary for every single identified community, both scale with the size and complexity of the underlying collection. This upfront cost is considerably higher than the cost of building either a simple vector index or a basic entity-relationship graph without the added community-summarization layer.

This is why graph RAG deserves the same deliberate, needs-driven evaluation covered throughout this collection’s broader infrastructure discussions, it’s specifically justified when an application genuinely needs to answer global, thematic, synthesis-requiring questions on a regular basis, not simply because it represents a more sophisticated or impressive-sounding retrieval technique than the simpler alternatives already covered elsewhere in this collection.

Why graph RAG needs to be kept synchronized just as much as any other retrieval index

Because community summaries are pre-computed from the underlying graph’s structure at a specific point in time, they carry the same staleness risk covered throughout this collection’s broader discussion of keeping retrieval infrastructure synchronized with changing content, a community summary generated once doesn’t automatically update as the underlying entities and relationships it summarizes continue to change, and a system relying on stale community summaries risks confidently answering global questions based on an outdated picture of the collection’s actual current themes and patterns.

This staleness risk is arguably more consequential for graph RAG than for simpler retrieval approaches specifically because community summaries represent synthesized, already-abstracted information, a user has no easy way to spot-check a community summary’s accuracy the way they might notice an obviously outdated individual document, which makes the ongoing synchronization discipline covered throughout this collection even more important here than for less abstracted forms of retrieval.

Common mistakes teams make around graph RAG

1. Adopting graph RAG’s considerable upfront cost for applications that don’t actually need to answer genuinely global, collection-spanning questions on a regular basis.

2. Confusing graph RAG’s community-summarization approach with simpler entity-to-entity knowledge graph traversal, applying the wrong technique to the wrong kind of question.

3. Treating community summaries as a one-time artifact rather than something that needs regeneration as the underlying collection’s content and structure continue to evolve.

4. Underestimating how much harder it is to spot-check a synthesized community summary’s accuracy compared to noticing an obviously outdated individual document.

5. Applying graph RAG uniformly across all query types rather than reserving it specifically for the global, thematic questions it was actually built to answer.

What connects these mistakes is treating graph RAG as a general-purpose retrieval upgrade rather than a specifically targeted solution for a narrow but genuinely important category of question, ones requiring synthesis across a large portion of a collection rather than retrieval of any specific, bounded subset of it.

The deeper point about graph RAG is that some genuinely important questions can’t be answered by finding the right piece of content at all, no matter how sophisticated the retrieval mechanism, because the answer only exists as a pattern spanning a meaningful portion of an entire collection, and addressing that category of question requires the kind of upfront, structural synthesis graph RAG’s community-summarization approach specifically provides, a genuinely different capability from finding relevant content, however well that finding gets done.