Why it’s needed
On its own, a language model answers with what it learned during training: general knowledge, frozen at a certain date, and none of your research. RAG gives it access to your memory — research, analyses, reports, decisions — and forces it to answer from that. It’s the difference between asking an outside expert and asking someone who has read your entire archive.
How it works
- Index. Documents are split into chunks, and each chunk is turned into an embedding: a numerical representation of its meaning.
- Retrieve. When you ask a question, the system looks for the chunks closest in meaning.
- Generate. The model receives the question and the chunks, and writes the answer, citing where it comes from.
Where classic RAG falls short
RAG finds passages similar to the question. It works well when the answer sits in one place. It works less well when it lies in the connections: “where are we most exposed to Competitor A?” requires combining information spread across different documents — which channels the competitor operates in, which audiences those channels serve, where the brand is weak. No single chunk contains the answer on its own.
What Graph RAG adds
A Graph RAG extracts entities and the relationships between them from documents and keeps them in a graph. When the question names an entity, the system follows its relationships and places them alongside the text: the model can then reason about the connections, not just the passages. A well-built graph can also tell you how many sources support a relationship and since when.
What to ask of a RAG system
- Sources. Every answer must say where it comes from.
- Dates. Information from a year ago should be presented as such.
- The nature of the information. A fact isn’t an analysis, and an analysis isn’t an opinion read on social media.
- Gaps acknowledged. If the material doesn’t contain the answer, the system must say so rather than make something up.
- Freshness. Whatever you save should enter the memory right away.
- Separation. One client’s information must not end up in answers about another.
