An honest comparison · facts sourced July 2026
Four good tools that remember four different things. This page says plainly which is which, including what kgai does not do, so you can pick in ten minutes.
We build kgai, so read accordingly. Every claim about the other tools comes from their public docs and repos. If we got something wrong, tell us at team@kgai.dev and we will fix it.
01The ten-second version
None of these is a drop-in replacement for another. The real question is what you need remembered.
Your team's decisions. Why the code is the way it is, what changed, the reasoning, and the alternatives you rejected. Shared by every dev and every AI on the team.
Your users. A memory layer that learns preferences and facts about a person across sessions, to personalize an assistant or app.
Facts over time. A temporal knowledge graph built from your conversations and documents, with real time-validity on every fact.
Your sessions. A git-like timeline of one developer's agent sessions, prompts, responses and diffs you can search and replay.
02Side by side
| kgai | Mem0 | Zep / Graphiti | Memov | |
|---|---|---|---|---|
| Unit of memory | A decision. What changed, why, what was rejected, mutating a small graph of domain elements | Facts about a user, extracted from conversations | Entities and facts with validity windows, extracted from text | Session snapshots: prompt, response, plan, diff |
| How it's captured | By the agent itself, during normal work. A skill records, a hook catches what it forgot. No pipeline, no extra LLM calls | LLM extraction pipeline per exchange (add / update / delete) | LLM extraction pipeline per episode | Session recorder |
| History | Immutable, append-only. New decisions supersede old, dead ends stay queryable, kg as-of replays any past date |
Reconciled. Memories are updated or deleted as facts change | Non-destructive. Contradicted facts are invalidated but kept | Immutable snapshots, rollback via branches |
| Deterministic? | Yes. Content-addressed events, deterministic ids. Every machine replays the log to a byte-identical graph, verifiable with kg export --canonical (sha256) |
Extraction depends on the LLM run | Extraction depends on the LLM run | Snapshots are deterministic, per machine |
| Team sync | Any S3 bucket you own. Write-once per-writer shards, so parallel writers can't produce a textual conflict. Real contradictions surface as an explicit branch to resolve | Hosted platform, per-user / per-agent scoping | Runs as a service, team story via Zep Cloud | Per-repo timeline, no multi-writer merge story |
| What you operate | Nothing. Embedded engine in the plugin. No server, no database, no API key | Vector store plus LLM/embedding keys, or the hosted platform | Graph DB (Neo4j / FalkorDB) plus LLM calls, or Zep Cloud | Local tool plus MCP server |
| Retrieval | Lexical plus graph traversal. No embeddings, by design. The asking agent bridges synonyms by rephrasing | Semantic vector plus keyword hybrid, stronger fuzzy recall | Semantic, graph and keyword hybrid | Semantic search over session history |
| Works with | Claude Code plugin (automatic), any agent or script via the kg CLI, MCP endpoint in cloud beta |
SDKs (Python/TS), MCP, many framework integrations | Python SDK, REST, MCP | MCP (Claude Code, Cursor, and others) |
| Measured at scale | 1,000,000 decisions / 30 writers: ~100 ms decision lookups, byte-identical clones. Numbers | Benchmarks target conversational recall (LoCoMo) | Benchmarks target conversational recall (DMR, LongMemEval) | — |
| License | MIT, local-first, hosted cloud in beta | Apache-2.0 plus hosted platform | Apache-2.0 engine plus Zep Cloud | MIT |
| Sourced from each project's public README and docs, July 2026. Corrections welcome. | ||||
03The wider field
The three columns above each stand for a whole category. If you're evaluating one of these, here's where it fits.
Same category as Zep: builds a knowledge graph and vector index from your documents with an LLM pipeline. Strong at ingesting arbitrary content, same trade-offs on determinism and infrastructure.
Same category as Mem0: memory for an assistant or its users. Self-editing agent state, memory-OS research, user profiles. General agent memory, not a record of a team's engineering decisions.
A session recorder for Claude Code: compresses past sessions so the next one starts informed. A different job than a decision graph. Teams happily run it side by side with kgai.
Closest neighbours in spirit: dev-knowledge logs and repo wikis for coding agents. kgai differs on the deterministic graph, byte-identical replay and conflict-free team sync.
04Where kgai wins
Everything below follows from one design choice: memory as an immutable log of decisions instead of a mutable pile of extracted facts.
kg export --canonical digests match, sha256 for sha256, tested to a
million decisions.05The whole setup
$ claude plugin marketplace add kgaidev/kgai $ claude plugin install kgai@kgai-marketplace
The prebuilt engine for Linux and macOS downloads itself. No Go, no compiler, no database.
$ kg init --remote s3://your-bucket/team-kg $ kg sync
Any S3-compatible bucket you own. No server, no accounts to manage, no lock-in.
# nothing. your agent records # and recalls on its own
Capture and recall are automatic in the session. Ask by hand anytime:
kg search, kg history.
06Measured, not promised
The full latency table, including the slow paths we haven't fixed yet, is in the repository. Recall and free-text search are slower than decision lookups.
07Fair questions
kg conflicts as a branch with both heads, and anyone
resolves it by recording one new decision that supersedes both. The branch and its
resolution stay in history.