All posts

KuzuDB for Production AI Agents: Our Fork, the Benchmarks, and Why Graph Memory Works

KuzuDB was archived in October 2025. We had already built our multi-agent context graph on it, so we forked it, added concurrent write support, and shipped to production. Here is the full story: the architecture, the benchmarks, and what to use if you are evaluating KuzuDB today.

Searching for KuzuDB? The original project was archived in October 2025. We maintain an active fork at Vela-Engineering/kuzu with concurrent write support for multi-agent systems. Jump to the fork landscape for options.
374xfaster on 2nd-degree path queries vs Neo4j
0msadded infrastructure. Runs fully in-process.
10+peer-reviewed papers behind this architecture

Why Agents Need Graph Memory

At Vela we are constantly running experiments that push the limits of what autonomous agents can do. As a quant venture capital firm we think beyond a single asset class, and part of that means stress-testing agent architectures in domains where the feedback loops are fast and unforgiving, the way an AI-native hedge fund would test its models against live markets. That work is where we first needed graph memory: agents making continuous decisions need to remember what worked and why. A relational database tells you what happened, but it cannot efficiently answer why.

The pattern generalizes to any multi-agent domain. Consider a venture capital workflow as an example:

These are multi-hop traversals across a causal chain: Founder →[founded]→ Company →[raised]→ Round →[resulted_in]→ Outcome. In SQL this requires joins that compound with each hop. In a graph database it is a single path query, and the query cost stays flat as the graph grows. The same pattern applies to any domain where agents need to reason about chains of cause and effect.

“The path from signal to outcome is causal. Causal structure is queryable, but only if you store it correctly.”
Founderbackground, exits
──[founded]──▶
Companystage, sector
──[raised]──▶
Roundamount, date
──[resulted_in]──▶
Outcomelabel, return

Why We Chose KuzuDB Over Neo4j

DatabaseTypeAdvantageLimitation
Neo4jClient-serverMature, largest ecosystemSeparate server; 374x slower on path queries; community edition restricted
FalkorDBClient-server (Redis)Fast OLTPNeeds Redis infra; weak on analytical traversals
KuzuDB ✓Embedded (in-process)374x faster path-finding; zero infra; Cypher; MITArchived Oct 2025. Now maintained as forks.
DuckDB PGQEmbedded (SQL ext.)Good for SQL-first teamsGraph as extension; less mature for traversals
NetworkXIn-memory PythonSimpleNot persistent; does not scale

KuzuDB runs in-process via pip install kuzu. No server, no Docker, no ops overhead. In a typical multi-agent system with a five-second total decision latency budget, Neo4j at 3–4 seconds per path query consumes that before inference even runs. KuzuDB at 9ms leaves the headroom agents need.

Benchmarks: KuzuDB vs Neo4j

From P. Rao's kuzudb-study, testing 100K nodes, 2.4M edges, identical hardware:

Query TypeNeo4jKuzuDBSpeedup
Simple aggregation1.73s0.16s10.8x
Multi-hop filter0.14s0.015s9.2x
2nd-degree paths3.22s0.009s374x
Filtered path-finding3.90s0.096s40.8x
Total ingestion30.64s0.58s53x
Why the gap is so largeVectorized execution with SIMD, using the same principle as DuckDB. Morsel-driven parallelism across all CPU cores. Worst-case optimal joins (WCOJ) for cyclic many-to-many relationships. Factorized execution that compresses intermediate results 50–100x in multi-hop queries. This is the dominant reason for the 374x gap on path traversals.

What a Query Looks Like

KuzuDB implements openCypher, the same query language as Neo4j. All queries are portable. To illustrate, imagine you want to find which founder backgrounds predict fast Series A raises. The graph query would look like this:

openCypher
// Which founder backgrounds predict Series A success?
MATCH (f:Founder)-[:founded]->(c:Company)-[:raised]->(r:Round)
WHERE r.stage = 'Series A'
  AND r.months_to_raise < 24
RETURN f.background,
       COUNT(*) AS successes,
       AVG(r.months_to_raise) AS avg_months
ORDER BY successes DESC LIMIT 5

Three hops: among companies that raised a Series A within 24 months, which founder backgrounds appear most often? In SQL this requires two joins and a subquery. In Cypher it reads like the question you are asking.


The KuzuDB Fork Landscape in 2026

The original team archived KuzuDB in October 2025. The engine is stable. This was not an abandonment mid-crisis, but active development stopped. Here is where things stand:

Before we list the forks, credit where it is due. Semih Salihoglu and the KuzuDB team at the University of Waterloo built something remarkable: a genuinely novel graph database grounded in serious database research (worst-case optimal joins, factorized execution, vectorized processing), published at CIDR 2023 and open-sourced under MIT. The engineering quality of the codebase is exceptional. Everything we and other forks build on top of exists because of the foundation Semih and his team laid. We are grateful for their work.

Our fork · Multi-agent
Adds concurrent multi-writer support for architectures where multiple AI agents write simultaneously. MIT. Production-tested.
Community fork · General purpose
Led by Arun Sharma (ex-Facebook, ex-Google). Aims to be a full one-to-one long-term replacement for KuzuDB. MIT.
Kineviz fork · Graph viz focus
Forked by Kineviz, the team behind GraphXR. Adds server mode alongside embedded. Focused on graph visualization workloads. MIT.
OptionMaintainedConcurrent writesInfrastructureLicenseBest for
Vela-Engineering/kuzuYesYes (our addition)EmbeddedMITMulti-agent AI systems
LadybugDBYesSingle-writerEmbeddedMITLong-term KuzuDB replacement
BighornYesSingle-writerEmbedded + ServerMITGraph visualization workloads
Neo4jYesYesClient-serverGPLv3Enterprise, clustering
DuckDB PGQYesYesEmbeddedMITSQL-first teams

Why we forked instead of migrating

The original KuzuDB allows only one writer at a time. In our architecture multiple agents write to the context graph simultaneously. Serialized writes would bottleneck the entire system and get worse as the agent count grows. We added concurrent multi-writer support. We now own this dependency fully, pull improvements from the community selectively, and carry no upstream abandonment risk.


What Memory Unlocks

Persistent learning. Discovered patterns are stored as graph nodes with confidence scores, updated with every new decision. Agents query them before acting.

Cross-session continuity. When an agent restarts it loads full prior context from the graph instead of starting cold.

Social learning. Top-performing agents write validated patterns to shared partitions. Underperforming agents can be diagnosed by querying which conditions dominate their worst outcomes.

Causal auditability. Every decision is traceable: which signal, under which conditions, triggered which agent to place it, and what outcome resulted. The graph is the audit log and the active knowledge base at once.


Connection to Vela's Research

Vela's Oxford research partnership has produced over ten peer-reviewed publications on quantified decision-making. A consistent finding: the structure of relationships between signals and outcomes carries predictive information that the signals alone do not. The context graph is the production embodiment of that finding. Graph memory is how we make causal structure queryable at the speed agents need.


Frequently Asked Questions

Is KuzuDB still maintained?

No. The original team archived it in October 2025. Vela Partners maintains Vela-Engineering/kuzu with concurrent multi-writer support. The core engine is stable and documented in a CIDR 2023 research paper.

What is the best KuzuDB alternative in 2026?

For embedded graph workloads requiring concurrent writes: Vela-Engineering/kuzu. For general single-writer graph use: LadybugDB. For enterprise needs with clustering: Neo4j, though it is 374x slower on path queries and requires a separate server process.

Can KuzuDB handle concurrent writes from multiple agents?

Not in the original or community fork. Both have a single-writer constraint. Our fork (Vela-Engineering/kuzu) adds concurrent multi-writer support specifically for multi-agent architectures.

How fast is KuzuDB compared to Neo4j?

374x faster on 2nd-degree path queries (0.009s vs 3.22s), 40.8x on filtered path-finding, 53x on total ingestion of 100K nodes and 2.4M edges.

Why do AI agents need a graph database for memory?

Agents need to traverse causal chains: which signal triggered which action under which conditions producing which outcome. These multi-hop queries are native and fast in graph databases, but computationally expensive in relational databases as the dataset grows.

References

  1. P. Rao, kuzudb-study: KuzuDB vs Neo4j benchmark, GitHub, 2024
  2. P. Rao, Updated benchmarks including LadybugDB, GitHub, 2025
  3. P. Rao, Embedded databases: Part 2, The Data Quarry, 2024
  4. Jin et al., KÙZU Graph Database Management System, CIDR 2023
  5. Vela Engineering, Vela-Engineering/kuzu: concurrent writes fork, GitHub, 2025
  6. Vela Partners internal ADR: adr/004-graph-based-memory-system.md