Graph memory for AI agents
When an agent reasons, it doesn't want a similarity score. It wants to traverse — from the user, to what they prefer, to the task they care about, to what's blocking it. A context graph is that web, made queryable, without replaying the agent's entire history into every prompt.
One instance per agent is the design, not a hack
An instance accepts its first connection about 7 ms after it starts and idles at roughly 15 MB — at those numbers the database stops being something you connect to and starts being something you invoke, born when the agent starts and gone when it finishes. Give each agent, session or tenant its own database and delete it when the work is done.
Agents query it directly over MCP
CognoDB ships an MCP server, so Claude, Cursor and any other MCP-compatible client can read the schema and run Cypher against a live instance. The agent discovers what is in the graph rather than being handed a fixed set of tools you had to anticipate.
Relationships survive the context window — and cut the bill
Facts an agent learns become nodes and edges, not tokens. Retrieval becomes a traversal with a defined answer, bounded by neighbourhood rather than corpus — which is why graph retrieval uses ~2,668 tokens per query where dumping a 2,000-entity knowledge base costs 202,285.
MATCH (a:Agent {id: $agent})-[:OBSERVED]->(f:Fact)-[:ABOUT]->(e:Entity)
WHERE e.name = $entity
MATCH (f)-[:SOURCED_FROM]->(d:Document)
RETURN f.statement, d.title, f.observed_at
ORDER BY f.observed_at DESCOther use cases
Graph memory for AI agents
Give an agent a graph it can traverse instead of a transcript it has to re-read. One instance per agent, per session, or per tenant.
MATCH (a:Agent)-[:REMEMBERS]->(f:Fact)Read moreKnowledge graphs
Model people, documents, systems and the relationships between them, then answer questions that span all of them at once.
MATCH (d:Document)-[:MENTIONS]->(e:Entity)Read moreMulti-tenant graph applications
Give every tenant a real database instead of a tenant_id column. Isolation you can point at, and cost that scales with what each one uses.
CREATE (t:Tenant {id: $tenant})Read moreDependency & impact analysis
Model what depends on what — services, data, teams — and answer "if this breaks or changes, what's affected?" as a traversal instead of a spreadsheet.
MATCH (s:Service)<-[:DEPENDS_ON*1..]-(affected)Read moreReal-time recommendations
Compute "people like you also chose" live from the behaviour graph at request time — so a purchase a second ago changes the next suggestion.
MATCH (u)-[:BOUGHT]->(p)<-[:BOUGHT]-(peer)Read moreRobotics, hardware & the edge
Model the world a fleet shares — robots, devices, assets, tasks and their dependencies — as one graph the whole fleet can query in real time.
MATCH (r:Robot)-[:CAN_REACH]->(z:Zone)<-[:LOCATED_IN]-(a:Asset)Read moreStart now
~98.7%
token efficiency at 2,000 entities — see the footnotes above
Put your first graph up in a minute.
A free instance takes about a minute and no card. Write two MERGE statements, read them back, and you have a living graph — with provenance on every fact.
First-graph path
LiveCreate a free instance
No card. Ready in about a minute.
Connect your driver
bolt+ssc:// URI into the driver you already use.
Write two MERGEs
That's the entire shape of agent memory.
Point an agent at it
One MCP config block. No integration code.