GraphRAG and Agentic Architecture: A Look Inside NeoConverse
TL;DR: Traditional RAG is great for "What does this doc say?", but struggles with "How are these 5 things connected?".
Enter GraphRAG and Agentic Architecture. In this post, we'll dissect NeoConverse an experimental project from Neo4j Labs to see how combining Knowledge Graphs with AI Agents solves complex data retrieval problems.
Spoiler: This is exactly why we bet the farm on Knowledge Graphs at SyncAlly.
If you've built a RAG (Retrieval-Augmented Generation) app recently, you've probably hit The Wall.
It starts like this: You chuck all your PDFs and docs into a vector database. You ask, "What is the vacation policy?" and it works perfectly. You feel like a genius.
Then you ask, "Which engineers worked on the features that caused the outage last Tuesday, and what Jira tickets were they linked to?"
Your RAG app implodes. 💥
Why? Because vector databases are great at finding similar text, but they are terrible at understanding structured relationships and reasoning across different data silos.
This is where GraphRAG and Agentic Architecture come in. Today, we're looking at a cool open-source experiment called NeoConverse that demonstrates how to fix this.
The Two Missing Pieces
To move beyond basic "Chat with PDF" apps, we need two upgrades:
GraphRAG (Graph + RAG): Instead of just chunking text, we store entities and their relationships in a Knowledge Graph.
Now the AI knows that Engineer A committed to Repo B which caused Incident C.
Agentic Architecture: Instead of a hard-coded pipeline (Input → Vector Search → Output), we use an Agent. The LLM acts as a "router" that decides which tool to use based on the question.
Dissecting NeoConverse
NeoConverse is a project from Neo4j Labs that combines these two concepts. It allows you to talk to your data in plain English, but under the hood, it's doing something much smarter than a simple vector lookup.
Here is the breakdown of how it works, and why it's clever.
1. The "Router" (The Agent)
In a standard RAG app, the code assumes every user question requires a vector search. NeoConverse doesn't assume anything.
When you ask a question, the LLM (the Agent) analyzes your intent first. It looks at the available Tools and decides which one fits the job.
User: "Show me the top 5 customers by revenue."
Agent: Thinking… "This looks like an aggregation question. I shouldn't look for documents. I should run a database query. I'll use the Generate Chart tool."
User: "Who is the CEO?"
Agent: Thinking… "This is a factual lookup. I'll check the graph entities."
- The Tools
NeoConverse equips the LLM with specific capabilities. In the repo, these are defined as tools that the agent can "call":
Vector Search Tool: For unstructured data (documents, policies).
Graph Traversal Tool (Cypher): For structured questions ("How many…", "Who is connected to…").
Visualization Tool: It can even decide to render a chart if the data supports it.
This acts like a multi-modal brain. It doesn't just "search"; it investigates.
- The Knowledge Graph Layer
This is the secret sauce. NeoConverse uses Neo4j to store the "schema" of the world.
If you ask, "Why is this feature broken?", a vector search might return a generic troubleshooting doc. A GraphRAG system can traverse the edges: Feature X → depends on → Service Y → modified by → PR #123 → authored by → Dave.
The Agent can "hop" through these nodes to give you an answer that actually makes sense: "Service Y was modified by Dave in PR #123, which likely impacted Feature X."
Why We Care (The SyncAlly Angle)
I'm writing about this because this architecture Knowledge Graphs + Agents is the exact philosophy we built SyncAlly on.
We saw engineering teams drowning in context switching. You have Jira for tasks, GitHub for code, Slack for decisions, and Notion for docs. A standard search bar can't connect those dots.
The SyncAlly Approach: We build an Automatic Knowledge Graph of your engineering workspace.
We link your Meetings to Decisions.
We link Code commits to Discussions.
We link Tasks to Requirements.
When you ask SyncAlly, "Why did we decide to use PostgreSQL?" (Source 9), we don't just grep your Slack history. We traverse the graph: Decision (Slack) → linked to → RFC Doc (Notion) → linked to → Ticket (Jira).
It turns out, you don't need to be a graph database expert to benefit from this. You just need tools that treat relationships as first-class citizens.
Top comments (0)