Build1 publisher3 min readPublished
Only one of six agent-memory systems documents an edge that changes on read
Mem0, Zep, Cognee, Letta, Supermemory and Mnemoverse all ship a knowledge graph, and each one's docs mean something different by a node. Read-time behaviour is the part a buyer can settle from the documentation.
The Engineer · Build desk

What happened
- A comparison of six agent-memory systems, Mem0, Zep with Graphiti, Cognee, Letta, Supermemory and Mnemoverse, read each vendor's own pages and published code against a single question about graph writes.
- In all six, edges are made when you write; two walk further on a read, one writes a reinforcement on a read, and the only demonstrable read-strengthening sits in a research repository, not in a product.
- A node means an entity to Zep and Cognee, a memory to Mem0, a Markdown file the model wrote to Letta, a fact to Supermemory, and a concept in a learned association graph to Mnemoverse.
- Mnemoverse publishes the read-time reinforcement in its server output and code comments, keeps its engine closed, and still had a superseded description of that behaviour live on its research page on 13 September.
Compiled by The EngineerSomething wrong?How this is made
Why it matters
- decision A buyer who needs recurring result pairings to be tunable can rule out a bipartite shared-entity graph from the docs, before any trial data exists.
- constraint Where edges exist only because two items share an entity and nothing weights them, usage will never re-rank them; the only lever left is editing what gets stored.
- contradiction The system describing read-time reinforcement in the most detail is the one whose engine an outsider cannot inspect, so the most disclosure and the most verifiability point at different products.
Start with what a node is, because the read path follows from it. Zep's documentation says: "Zep's temporal Context Graph is the unit of agent memory. Nodes are entities, and edges are facts or relationships. The graph updates as new data arrives" [4]. Cognee also extracts entities and relationships into a graph store, and its retrieval guide fixes the order of a read: nodes are selected first, and "An edge is only carried over if both of the nodes it connects were selected" [5].
Mem0's Graph Memory is bipartite. Entities are stored once, and the docs say "Over time this forms a graph: a web of entities, each connecting all the memories that mention it" [6]. Two memories are connected because they share an entity, and that connection has no learned weight [6]. Mem0 also rules out typed relations in the same passage: "It does not assign typed, labeled relationships between entities" [7]. So the case the post opens with, a question about the payments retry table that keeps returning the queue migration because both mention the same service [20], is one shared-entity match firing again each week [19].
Letta's nodes are Markdown files the model itself wrote, the edges are file links a resolver parses, and nothing weights them [8]. Its published memory showcase is exact about what a link does: "A double-bracket path is a discovery link, not an automatic include or semantic retrieval instruction" [8]. Supermemory connects facts to facts: "When content is processed, new facts connect to existing ones through three relationship types" [9].
The system whose public text describes read-time reinforcement is the author's own. Mnemoverse's memory server prints a line the user sees: "concept-to-concept links learned from concepts that occur together as memories are stored and used" [10]. The comment above it names the operation, co_activate, linking query concepts "to result concepts on use" [11]. The library page says "Its association layer links concepts through weighted edges strengthened by co-activation, with feedback tuning the weights over time" [12]. The engine is closed, so a buyer can read those sentences and verify none of them [13]. A weight that moves on read only changes what comes back if the weight enters ranking, and the library page is the only place that says feedback tunes it [12].
The other five do not mention this behaviour anywhere in public [14]. For a buyer choosing on documentation, that leaves the point open. The post's author, who works on Mnemoverse, wrote: "If you are choosing on evidence rather than on ambition, that runs against us, and it should" [17]. The same code comment corrects an earlier description the team published and names both of its defects [15], while the superseded gloss, "connections between memories that strengthen when they are retrieved together", was still live on 13 September on Mnemoverse's own research page [16]. Across all six, edges are made on write, and the only place a read demonstrably strengthens an edge is a research repository [3].
What to watch
- Whether Mnemoverse opens the engine or publishes a test that shows a weight changing on a read.
- Whether the superseded gloss still live on Mnemoverse's research page on 13 September gets corrected to match the code comment.
- Whether Zep, Cognee, Mem0, Letta or Supermemory start documenting what a retrieval does to the graph.