Walk through what Mem0 does between two turns of the same user's session
A user finishes turn 1 and is about to send turn 2. Describe the steps Mem0 takes between those turns and what it injects into turn 2's context.
Between turns Mem0 runs an extraction LLM over the latest dialogue, dedupes and merges the candidate facts against the existing store with contradiction resolution, then retrieves and injects only the top-k salient
Imagine a friend who keeps a small notebook about you. After every chat, they spend a moment writing down anything new they learned in short sentences: 'Likes hiking.' 'Allergic to peanuts.' 'Moved to Berlin in July.' They cross-check the new notes against the old ones, merge any duplicates, and update if something contradicts (you used to live in NYC, now Berlin, the entry gets updated). When you start talking again, they glance at the notebook, pull out the few entries that seem relevant to what you are about to say, and keep those in mind. They never re-read the whole notebook every time; just the relevant slice.
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.
Mem0's design centers on two cognitive operations: extracting facts when memories are written, and retrieving the salient slice when memories are read. The work happens between turns and is invisible to the agent. The agent sees only a small injected memory block on each turn; the full archive, the extraction logic, the dedup and contradiction handling all live inside Mem0. This deep dive walks through what happens between turn 1 and turn 2 of a session, the design choices behind each step, and the failure modes to monitor in production.
The write path: extraction over the turn pair
After turn 1 completes (user message plus assistant reply), Mem0 runs an extraction LLM pass over the pair. The extraction prompt is specifically engineered to produce declarative facts in canonical form suitable for later vector retrieval.
The prompt instructs the model to identify durable, stable facts: user preferences, demographics, ongoing situations, key relationships, project context. It explicitly tells the model to ignore transient content: the immediate question, the assistant's response, conversational pleasantries.
The output is a list of candidate memories, each one sentence:
- 'user is a vegetarian'
- 'user is moving to Berlin in July 2026'
- 'user prefers Python over JavaScript for new projects'
- 'user works at Anthropic as a research engineer'
This canonical-fact form is important. It makes embeddings more meaningful (similar facts cluster), it makes the store readable to humans (debug-friendly), and it makes retrieval more reliable (top-k returns coherent results).
Mem0 ships with a default extraction prompt that works for general conversational assistants. Production teams in 2026 commonly customize the prompt for their domain: a medical assistant focuses on medications and conditions; a coding assistant focuses on language and framework preferences; an enterprise assistant focuses on project context and team relationships.
Situations where this technique stops working.
2–4 min · Everything important, quickly.
Real products, models, and research that use this idea.
- Mem0's hosted service is used in consumer chat products that need persistent user facts across sessions
- Inflection's Pi assistant uses extract on write memory similar in shape to the Mem0 pipeline
What an interviewer would ask next. Try answering before peeking at the approach.
QHow would you customize Mem0's extraction prompt for a domain-specific assistant?
Mem0 v1.1+ exposes a custom prompt parameter. For a medical assistant, you would prompt the extractor to focus on medications, conditions, and allergies and to ignore conversational pleasantries. For a coding assistant, you would focus on language preferences, framework choices, and project conventions. Evaluate the extraction output on a sample of real dialogue before shipping the new prompt.
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.
Imagining Mem0 stores raw conversation history and rebuilds it each turn, missing that the actual unit of storage is a discrete extracted fact and that contradiction handling is part of the write path.
60 second bullets to scan on the way to the call.
Name the extraction step and what it operates on (user message plus assistant reply)
Describe the deduplication via embedding similarity
Primary sources. Browse if you want the original framing.
Same topic, related formats. Practice these next.