Drag each answer to line up with its matching prompt
Mem0
Typed state object that flows through nodes and supports checkpointing
Letta (formerly MemGPT)
Temporal knowledge graph with dated facts, decay, and graph traversal at retrieval
Zep
Per agent state with messages, tool history, and customizable summarization
LangGraph state
OS inspired memory blocks the model edits with explicit tool calls
LangChain ConversationSummaryBufferMemory
LLM extracted user facts stored and retrieved per turn via a managed API
AutoGen state managers
Sliding buffer of recent turns plus a running summary of older turns
Mem0 stores extracted facts behind an API; Letta exposes OS-style memory blocks edited by tool calls; Zep builds a temporal knowledge graph; LangGraph offers typed checkpointed state; LangChain summary-buffer mixes
Imagine six different librarians, each with a different way to remember what you have asked about. One writes sticky notes after every conversation and hands you the relevant ones the next time you walk in (Mem0). One has labeled drawers you can open or rearrange yourself (Letta). One draws a family tree of facts with dates so they can tell you when something was true (Zep). One keeps your whole case file in a folder with named tabs and saves a copy at every step (LangGraph). One keeps the last few pages of notes plus a one-paragraph summary of everything older (LangChain). And one assigns a junior librarian to each topic with their own way to summarize (AutoGen). Same job, six designs.
Concept explanation~2 min read
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
Concept explanation~2 min read
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
By 2026 the memory framework landscape has stabilized around six distinct designs, each with a different core abstraction and a different intended workload. Reading them as variants of the same vector store plus retrieval pattern misses the point: they differ in who manages memory, how time is modeled, what the storage unit is, and how the model fits into the loop. This deep dive walks through each framework's core abstraction, the design decision it makes, the workloads it fits, and the architectural patterns that combine them sensibly.
Mem0: extracted facts behind a managed API
Mem0 starts from the observation that most useful long-term memory is declarative facts about the user: 'is vegetarian', 'lives in Berlin since July', 'prefers Python over JavaScript'. Raw dialogue is noisy; facts are what the next turn actually needs.
The design runs an LLM extraction pass over each turn pair (user message plus assistant reply), produces candidate facts in structured form, deduplicates against existing facts using embedding similarity, and resolves contradictions with a recency and confidence rule. Retrieval at the next turn is vector search over the fact store.
The developer interface is small: mem0.add(messages, user_id), mem0.search(query, user_id). The complexity of extraction, dedup, and decay lives inside the service. This is Mem0's main value proposition, it makes long-term memory a SaaS feature rather than an engineering project.
The tradeoffs are opacity (you do not see why a fact was kept or merged), limited extraction customization (the extraction prompt is mostly fixed), and dependency on the managed service. Mem0 fits products that want memory without becoming experts in extraction logic: personal assistants, consumer chat products, ambient AI features.
Situations where this technique stops working.
2–4 min · Everything important, quickly.
Real products, models, and research that use this idea.
- Mem0 is used in production by personal assistants like Pi and Inflection's product line for fact-style memory
- Letta powers research demos of long-running autonomous agents that need memory management as part of the trajectory
What an interviewer would ask next. Try answering before peeking at the approach.
QHow would you combine LangGraph state with Mem0 in a production agent?
LangGraph state holds the working memory of the current trajectory (plan, tool results, summary). Mem0 holds cross-session user facts. Before each trajectory starts, fetch relevant Mem0 facts and put them in a persistent state slot. During the trajectory, do not write to Mem0 inside the loop; after the trajectory ends, run a single Mem0 extraction pass over the transcript. This keeps the orchestration layer and the long-term memory layer cleanly separated.
Red flags & common mistakes
The phrases that signal junior thinking. Click to expand.
Red flags & common mistakes
The phrases that signal junior thinking. Click to expand.
Treating all memory frameworks as variants of the same vector store plus retrieval pattern, missing that they differ in who manages eviction, how time is modeled, and where the model fits in the loop.
60 second bullets to scan on the way to the call.
Name Mem0's core abstraction (extracted facts behind a managed API)
Name Letta's lineage (MemGPT) and its core abstraction (OS-style memory blocks edited by the model)
Primary sources. Browse if you want the original framing.
Same topic, related formats. Practice these next.