← all writing

Why RAG Is Not Enough

RAG answers retrieval questions. Enterprise-wide intelligence needs reasoning over relationships, state, lens and access control, and that requires a knowledge graph.

Retrieval-Augmented Generation was a genuine architectural step forward. By grounding language model outputs in external document corpora rather than parametric memory alone, RAG addressed hallucination and knowledge staleness in a practical, deployable way. The original Lewis et al. (2020) paper that coined the term demonstrated strong gains on knowledge-intensive tasks, and the pattern spread quickly across enterprise software.

RAG works, but it was designed for retrieval questions, and a growing class of enterprise applications requires answering reasoning questions.

The retrieval question is: given a query, find the most relevant content. RAG solves this well. The reasoning question is harder: given everything the system knows about an entity, whether that is a deal, a customer, a project or an incident, what does it mean and what should happen next? Answering it requires understanding the relationships between entities, tracking how context evolves across time, and connecting what happened three weeks ago to what should happen before Thursday. RAG was not designed to do that.

What RAG is doing

A standard RAG pipeline has three stages: documents are chunked and embedded into a vector index, a query retrieves the chunks with the highest semantic similarity, and a language model generates a response conditioned on those chunks. The ACM survey on GraphRAG methodologies (2024) identifies three structural failures in this approach for complex reasoning tasks: it neglects relationships between entities, it loses global context because only a subset of documents is retrieved at a time, and it produces what the authors call the "lost in the middle" problem where relevant information buried in retrieved context gets ignored during generation.

These problems are manageable for a static knowledge base, but they are fundamental for a system trying to reason over a live operational domain.

The relationship problem

Most of the data these systems reason over is not documents. A CRM record, an incident timeline, a customer's engagement pattern across six meetings, and the connection between a problem surfaced in week two and an objection raised in week four are entities and relationships, and answering questions across them is not a semantic similarity problem. It is a graph traversal problem: find the relationship between these entities and reason across it.

Research on KG-RAG models (Scientific Reports, 2025) confirms that traditional RAG methods, which rely primarily on unstructured text corpora, are limited in their ability to handle complex relationships and perform multi-hop reasoning. In operational domains, multi-hop reasoning is the baseline requirement: a useful briefing, audit or risk assessment connects what happened to what it means, which requires an architecture that understands relationships, not just text similarity.

This is why Microsoft's GraphRAG (2024) shifted the conversation. Rather than treating documents as flat text, GraphRAG builds entity-relationship graphs that enable theme-level queries with full traceability. The research example, querying supplier quality issues across relationships and time, has the same structure as querying deal health across stakeholders and conversation history, or service health across incidents and dependencies.

The statefulness problem

RAG retrieves at query time and stops. Each retrieval is stateless: it has no memory of prior retrievals and no ability to track how context has evolved across interactions. Research on hybrid retrieval (Preprints.org, 2025) confirms that dense vectors are complemented by knowledge graphs precisely for structured contexts, because graph structures persist relationships across time in a way that vector indexes do not.

A live process is a sequence of interactions where each one changes the meaning of the ones before it. In sales, a champion who attended every call in weeks one through four and then missed weeks five and six is not surfaced by a similarity search. Detecting the deviation requires a persistent structure that tracks the pattern over time. The same applies to qualification drift, evolving objections, a dependency that keeps appearing in incident timelines, or a customer whose support tickets change tone across a quarter. These are state management problems, not retrieval problems.

The lens problem

Even when RAG retrieves correctly, it retrieves without context about why. A user asking "what should I cover in this meeting" receives chunks most semantically similar to that query, not chunks most relevant to the current state of the entity the question is about.

At Brevian we address this with a lens constraint: the intelligence layer does not retrieve knowledge generically, it queries everything from the lens of the conversation and the system of record. The same piece of knowledge is more or less relevant depending on what has already been confirmed, what risks have been flagged and where the process stands. A flat retrieval system has no way to apply that constraint, and a structured knowledge graph does.

The access control problem

One operational dimension that rarely surfaces in technical RAG discussions is content classification. Research on naive RAG systems (MDPI, 2025) identifies retrieval inefficiencies, semantic mismatches, and context fragmentation as persistent production problems. In an enterprise corpus there is a harder issue: not all content should be retrieved in all contexts. A pricing document, an internal battlecard, a legal memo and a customer-safe case study can live in the same corpus, but surfacing the wrong one in the wrong context has real consequences.

RAG retrieves by semantic relevance and does not natively understand the difference between internal knowledge and external-safe assets. That distinction needs to be a first-class property of the architecture, with content classified not just by what it says but by what it is and who should see it. A knowledge graph that treats classification as a node property can enforce this at query time, and a flat vector index cannot.

What changes when the architecture changes

The difference between RAG and a knowledge graph is less about accuracy or recall than about what kinds of questions the system can answer. RAG answers: what content is most relevant to this query? A knowledge graph answers: given everything we know about this entity and this domain, what is the most important thing that needs to happen next? The first is a retrieval problem and the second is a reasoning problem, and in operational domains the second is the one that determines outcomes.

When the architecture is built around relationships rather than retrieval, the outputs change category. What surfaces before a meeting is not the documents most similar to the meeting topic, but a structured assessment of where things stand, what has been confirmed, what gaps remain and what would advance them. What surfaces on Monday morning is not a list of records sorted by date, but a scored assessment of each entity's state with a specific action for the ones that need attention.

Retrieval stays in that architecture as a component. The relationships, the persistent state and the classification around it are what make the reasoning possible.

Anupreet Walia is an engineering executive and technical co-founder. Modified from the original published on Brevian.