● vcn #33 widget · wing iii · sortable
SAME PROBLEM, FOUR SHAPES.
Four substrates for "remember things across sessions." Click a column header to sort. The setup-time and substrate columns reveal that these are not interchangeable; each one bets on a different primitive. The footer carries the verbatim positioning quote each framework's team uses.
| framework | substrate | storage model | setup time↑ | best for | lab |
|---|
verbatim positioning · sourced from each project's own docs
-
Zep / Graphiti
Zep tracks memory in temporal edges where the graph owns the truth about when a fact was valid (per valid_at and invalid_at in graphiti_core.edges.EntityEdge), so retrieval is correct when you need temporal reasoning.
graphiti_core/edges.py::EntityEdge -
Letta
Letta's three-tier memory model: Core (always-on), Recall (conversation history), Archival (external corpus), gives agents a runtime that explicitly separates working memory from long-term storage.
letta.com/blog/agent-memory -
Mem0
Mem0 wraps vector + graph + reranker behind a managed memory API, so a builder gets "remember this" in one line of code rather than three weeks of glue.
mem0/mem0 README + docs -
CLAUDE.md
A markdown file Claude Code automatically loads into context on every session, encoding the procedural rules of the project: commands, conventions, gotchas.
anthropic claude code docs · CLAUDE.md spec