Lians vs Letta.
Letta is agent-native memory (MemGPT lineage), scored on the same five invariants we score ourselves. Credit where it's strong, receipts where it isn't.
Credit first
Where Letta is genuinely strong.
Letta pioneered self-editing agent memory: agents manage their own in-context memory blocks and an archival store with hybrid search, inside a full agent framework with a visual development environment. For building agents that curate their own context, it is the reference implementation.
Regulated-memory eval · last run 2026-07-04
The five invariants.
| Regulated invariant | Lians | Letta |
|---|---|---|
| Stale revision suppressed | pass | partial |
| Point-in-time (as-of) recall | pass | absent |
| Provable erasure (crypto-shred + cert) | pass | partial |
| Lookahead / backtest guard | pass | absent |
| Audit-state snapshot at T | pass | absent |
| Score (pass = 1, partial = ½) | 5.0 / 5 | 1.0 / 5 |
Where the lanes diverge
Different jobs, different guarantees.
Memory edits are silent LLM-driven overwrites: there is no validity window, no record of what was displaced, and archival search has no time parameter. Lians treats every change as a governed, audited event: supersession closes windows instead of overwriting, and recall_at() reconstructs any past state.
The honest recommendation
Which should you pick?
Choose Letta if you want an agent framework whose agents self-manage context and you accept its runtime. Choose Lians when memory must survive an audit, or when you want memory as infrastructure under any framework (LangChain, LangGraph, CrewAI, MCP), not a framework of its own.
Lians is framework-agnostic: keep your agent loop and swap the memory calls: the harness gives you recall-before / remember-after in a few lines, with the compliance spine underneath.