Convergent evolution in AI memory

Opinion
AI Memory
Two unrelated projects, Omnigraph and Mnestic, arrived at the same design for AI agent memory: a graph that follows connections, not just keyword or similarity search.
Published

May 27, 2026

Illustration: Convergent evolution in AI memory

Neither seems aware of the other, maybe evidence for a solution landscape with a global minimum 🤔

The problem they tackle is something I try not to cover typically, but it keeps appearing in my box: AI agents doing real work over time need to remember stuff, not just a bit of chat, but accumulate facts and relationships as a conceptual network of the world. Some would argue that world geometry (physics) is inevitable in this direction but that’s another topic altogether.

Keyword search finds text that matches, similarity search finds things that resemble each other. Neither on its own follows the connections between things, like who reports to whom, what depends on what, what changed because of what etc.

The two projects converging to the same are Omnigraph and Mnestic. Omnigraph treats a knowledge graph like a shared codebase. It’s Rust, Arrow, and Lance (a versioned, columnar file format sitting directly on S3-style object storage). Multiple AI agents can each branch off the same graph, write independently, and merge back through a three-way, typed-conflict merge. It’s git engineering applied to structured knowledge instead of code. A policy layer (Cedar) decides who can merge what before it lands. Mnestic, on the other hand, goes small and embedded, forked from CozoDB. It’s a relational-graph-vector engine that runs Datalog queries instead of a dedicated graph query language. It’s bitemporal and every write is timestamped along two axes (when a fact became true, plus when the database learned it). It runs in a single process, no infrastructure necessary, it can even run in a browser via WebAssembly.

The two have a different philosophy, object-storage-native versus embedded, LPG schema versus relational Datalog, distributed multi-agent branching versus single-process bitemporal history. Yet, both landed on the identical core retrieval trick: fuse keyword search, vector similarity, and graph traversal into one ranked result using reciprocal rank fusion (RRF) rather than running three separate lookups and hoping the application layer sorts it out. Omnigraph does it declaratively as a query-file primitive while Mnestic does it as a Datalog-composable fixed rule with diversification built in. When two teams solving different problems independently converge on the same technique, that convergence is a stronger signal than either project’s own claims about itself. I am not saying this conveys some absolute truth, I’m merely observing the similarities. Given more time I’m sure I would be able to see more matches across other projects since agent memory is really a very fertile domain. In fact, I see graph databases being rebranded as agent memory, because it’s more appealing.