0:00
/
Generate transcript
A transcript unlocks clips, previews, and editing.

#7: GraphRAG as an interface to the world

Podcast with David Knickerbocker on teaching GraphRAG agents when to stop, what to remember and how to investigate

GraphRAG is often presented as the natural next step after conventional RAG: add a knowledge graph, give an agent access to it, and let the system investigate more complex questions.

But adding a graph does not remove the difficult questions. How does an agent know when it has gathered enough evidence? What happens when relationships change, memories become unreliable, or the graph itself sends the model down the wrong path? And when is a graph genuinely the right architecture rather than simply the more fashionable one?

For the first episode of the Agentic Engineering podcast, I spoke with David Knickerbocker, founder and intelligence architect at Verdant Intelligence and author of Network Science with Python. David has spent decades working across databases, cybersecurity, open-source intelligence, and network science. His answers return repeatedly to one idea: GraphRAG and agents are still software systems. If we want to trust them, we need to make their evidence visible, test their individual parts, and resist rebuilding systems that already work.


When do you genuinely need GraphRAG?

I don’t see graphs as an inherently more complicated alternative to RAG. Networks already exist in nature, organisations, and social systems; graphs simply represent how things connect. They can feel difficult because fewer teams have experience with network science, but the basic idea—one thing connected to another—is straightforward.

That does not mean every team should replace its RAG system. If you have invested in a mature similarity-based system and it solves the problem well, there is no reason to solve the same problem twice. Use GraphRAG when relationships, paths, and connected evidence are central to the problem, and your team is prepared to work with them. If the existing system works, keep it.

Does a natural-language GraphRAG endpoint remove complexity, or merely hide it?

A natural-language endpoint should hide implementation work without hiding the evidence. I design systems to return the context behind an answer: the source material, the relevant data, and the reasoning behind a predicted relationship. For example, when one of my tools converts text into a graph, it preserves both the original passage and the reason an edge was created.

There will always be some trust involved when an agent uses an external service, just as there is when we use a search engine or API. That trust should develop through repeated, dependable use—not blind faith. Developers may not need to understand the database schema or write Cypher, but they should still receive enough information to verify what the endpoint returned.

If you’re liking this conversation so far, David is teaching a live, hands-on bootcamp on July 31.

In Building Intelligent AI Agents with GraphRAG, you’ll work with a production-ready natural-language GraphRAG endpoint and progressively build an agent that can break down complex questions, gather evidence across multiple graph queries, remember previous investigations, and extend its reasoning with specialised analytical tools. You’ll leave with practical patterns for building agents that work across connected knowledge rather than simply retrieving documents.

Register here

How does an investigative agent know when it has investigated enough?

We need to teach agents something my managers used to tell me: good enough is good enough. An agent should have a defined purpose, a limited mandate, and a clear point at which it reports back. An agent checking for concerts does not need to investigate indefinitely; it can check the relevant venues and artists, return the results, and stop.

An open-source intelligence agent may need to search more widely, compare conflicting sources, and detect manipulation, so its definition of “enough” will be different. The stopping condition has to match the task. The important thing is to decide what good enough means before the agent begins, rather than allowing it to keep reasoning and spending without a boundary.

How should GraphRAG represent information that changes over time?

I treat graphs as temporal. Information changes, and the completeness of our information changes with it. Rather than overwriting an old relationship, I would preserve what was claimed, where it came from, and when it was recorded. The history is part of the information.

In my systems, the highest-level object is a claim rather than a fact because the internet contains many competing claims and facts require judgement. A graph should preserve those differences instead of making every relationship look timeless and definitive. Timestamps, sources, and changing versions allow an agent to reason about what was believed at a particular point rather than treating the latest entry as the only truth.

How do we prevent an agent from poisoning its own memory?

Agent memory needs the same quality assurance we expect from any other piece of software. If a weak inference is stored, the system should retain its source and confidence rather than retrieving it later as an established fact. Independent agents can check one another, although using the same model everywhere may reproduce the same blind spots.

The more granular the memory, the more granular the testing needs to be. If you cannot inspect, validate, correct, or test an agent’s memory, you cannot determine whether it is reliable. Agentic work does not remove the need for software engineering; it makes careful testing at the component level even more important.

Can the knowledge graph, GraphRAG platform and agent really evolve separately?

They can evolve separately if their dependencies are explicit, versioned and tested. I give the major components of my systems their own semantic versions so each can be developed, released and, when necessary, rolled forward without rebuilding everything at once. Iteration creates infrastructure; big-bang development usually creates demonstrations.

A major graph-schema change may require the GraphRAG interface to change, just as a database change could break an application long before generative AI existed. But if the agent communicates through a stable natural-language contract, it may continue asking the same questions while the implementation underneath evolves. Separation does not mean independence; it means managing the connections deliberately.

Are we measuring GraphRAG correctly?

Counting relevant retrieved facts is not enough if the answer depends on a complete chain of evidence. A system may retrieve three of four necessary facts and still produce a confident but fundamentally incomplete conclusion. Teams need to test whether the system identified every question it needed to ask and recovered the evidence required to answer each one.

That also means testing the layers separately. Does the language model decompose the original request correctly? Does the GraphRAG endpoint return the right data for each subquestion? Does the agent assemble that evidence into a supported answer? When something is missing, we should identify the layer that lost it instead of labelling the entire system inaccurate.

Is the AI hallucinating, or is the graph misleading it?

I use a phrase in my training: similarity is not sameness. A similarity-based system may retrieve extra information that looks related but does not support the answer. If the model incorporates that noise as evidence, it can produce a hallucinated conclusion.

GraphRAG can fail differently. A query may miss a relationship, fail to traverse a node type, or return an event without its time or source. That is not necessarily the model inventing information; it may be a problem in the data, schema, query, or traversal. The only way to tell is to inspect the evidence path and determine which layer introduced the error.


David’s case for GraphRAG is not that a graph should replace every RAG pipeline. It is almost the opposite: keep the parts that already work, introduce graphs where relationships genuinely matter, and make every new layer earn its place.

That restraint matters as agents become more capable of searching, remembering, and acting without constant direction. More intelligence in the workflow also creates more places for evidence to become incomplete, outdated, or distorted. Reliability, therefore, depends less on whether a system carries the latest label and more on whether its builders can see what it did, test each part, and recognise when it has done enough.

The most useful place to begin may not be a large architectural migration. It may simply be a small experiment, built slowly enough that you can still understand what the agent sees and why it reaches the conclusions it does.


Enjoyed today’s podcast and want more engineering conversations? Pull up a chair.


That’s it for this one. We’ll pick up the conversation next week.

Until then, keep building.

Tanya D’cruz
Editor-in-Chief

Discussion about this video

User's avatar

Ready for more?