Why Multi-Agent Systems Lose User Memory
Multi-agent systems are everywhere. Memory in multi-agent systems is nowhere. Chat history is a poor way to carry user context from one agent to the next.
TL;DR
- Multi-agent systems lose user context at each agent handoff because current frameworks pass raw chat history or summaries rather than structured understanding between agents
- Each handoff compounds the loss, so the last agent in a chain often knows very little about the user’s actual preferences
- Shared self-models address this by giving all agents access to a structured, confidence-weighted user model that persists across handoffs
Multi-agent systems lose user context at each handoff when agents pass raw chat history or summaries to one another. This context loss explains why multi-agent systems can feel impersonal and disjointed even when each individual agent performs well. This post covers why chat history fails as inter-agent memory and how shared self-models can carry user context across a chain of agents.
How Context Gets Lost Between Agents
Consider a content strategy workflow with four sequential agents:
Agent 1 (Researcher): Gathers information about the user’s domain, audience, and content goals. Conducts an initial conversation to understand requirements.
Agent 2 (Strategist): Takes the research and develops a content strategy, including topic selection, scheduling, and channel planning.
Agent 3 (Writer): Produces content drafts based on the strategy, adapting tone and style to the user’s preferences.
Agent 4 (Reviewer): Evaluates the drafts against the strategy and the user’s original requirements, suggesting revisions.
In a pipeline like this, major items such as domain and goals tend to survive the first handoff. Nuances such as tone preferences, specific audience characteristics, and terminology requirements are the first to be lost or buried. By the time the strategist’s output reaches the writer, it focuses on strategy rather than user context. By the time the drafts reach the reviewer, the original user preferences may be absent entirely, which makes the review generic rather than personalized.
Without Shared Memory (Chat History Passing)
- ×Each handoff passes conversation log or summary to next agent
- ×Context degrades at each handoff through summarization loss
- ×Later agents inherit little of the user's original context
- ×Final agent produces generic output with no personalization
With Shared Memory (Self-Model Integration)
- ✓All agents query shared self-model for user understanding
- ✓Context stays available regardless of handoff count
- ✓Every agent inherits structured beliefs, not raw transcripts
- ✓Final agent produces personalized output informed by full user model
Why Chat History Fails as Memory
The core issue is that current agent frameworks use conversation history as their memory mechanism. This fails for three reasons.
Summarization loss. When conversation history is too long for the next agent’s context window, it gets summarized. Each summarization drops details. The summarizer does not know which details matter for downstream agents, so it optimizes for brevity at the cost of specificity. User preferences are exactly the kind of specific details that get dropped.
Signal-to-noise ratio. A research conversation between the user and the researcher agent contains a mix of user context (valuable downstream) and conversation mechanics (greetings, clarifications, false starts). When this entire conversation is passed to the next agent, the user context is buried in noise. The strategist has to extract meaning from a transcript, which is like trying to learn about someone by reading the transcript of their doctor’s visit.
No confidence weighting. Chat history treats all statements equally. A casual mention (I think I might prefer shorter articles) and a firm requirement (our compliance team requires all content to be reviewed by legal) look the same in a transcript. There is no signal for how confident or important each piece of context is.
Summarization Loss
When conversation history exceeds the next agent’s context window, it gets summarized. Each summarization drops details. The summarizer does not know which details matter downstream.
Signal-to-Noise Ratio
Research conversations mix user context (valuable downstream) with conversation mechanics (greetings, clarifications, false starts). User context gets buried in noise.
No Confidence Weighting
A casual mention and a firm requirement look the same in a transcript. There is no signal for how confident or important each piece of context is to the user.
The Self-Model Solution
The fix is to replace chat history as the inter-agent memory with a structured self-model. Instead of passing conversation logs between agents, all agents share access to a common user model that each agent can read from and write to.
Here is how this works architecturally.
1// Without shared memory: passing chat history← Context degrades each handoff2const handoff = {3chatHistory: researcher.getConversationLog(), // 4000 tokens of mixed signal4taskSummary: researcher.summarize(), // lossy compression5};6strategist.start(handoff); // context degrades at each handoff78// With shared memory: self-model as shared state← Context persists across all agents9// Agent 1 (Researcher) writes observations to shared model10await clarity.addObservation(userId, {11action: 'user_preference_expressed',12details: { preference: 'concise technical content', confidence: 0.85 },13context: 'communication_style',14});1516// Agent 2 (Strategist) reads from same shared model17const selfModel = await clarity.getSelfModel(userId);18// Gets structured beliefs with confidence scores - not raw transcript19// Context persists, regardless of how many agents follow
The self-model acts as a shared database of user understanding. Each agent contributes observations from its interactions, and each agent queries beliefs relevant to its task. The researcher adds observations about user preferences. The strategist queries those preferences when building strategy. The writer queries tone and style beliefs. The reviewer queries original requirements.
Because the self-model is structured and confidence-weighted, there is no summarization loss. The model does not degrade with each access - it is a database query, not a conversation summary. And because beliefs have confidence scores, downstream agents know which preferences are firm requirements and which are tentative suggestions.
How Common Frameworks Handle Memory
Each framework handles memory differently, but the core limitation is similar. These descriptions summarize each framework’s documented approach, not test results.
LangGraph: Uses state graphs with shared state objects. The state mechanism is flexible but unstructured. Teams must define their own memory schema. Without explicit user model design, teams tend to default to passing messages.
CrewAI: Agents share context through task descriptions and shared memory. The shared memory is a text-based store, which has the same signal-to-noise issues as chat history. Better than raw transcripts but still unstructured.
AutoGen: Uses conversation-based memory where agents can access the group chat history. This is the most chat-history-dependent approach.
Swarm (OpenAI): Uses function-based handoffs with context variables. The context variable mechanism is more structured than chat history but still requires manual context management. Better for task-level context, weaker for user-level understanding.
Custom orchestrators: Teams building their own orchestration can design user memory explicitly. Those who rely on ad hoc context passing leave user context to chance.
The Implications for Enterprise
The memory problem in multi-agent systems is particularly concerning for enterprise deployments where multi-agent workflows are becoming standard.
Enterprise use cases such as customer support escalation, multi-step onboarding, and complex document processing can involve many agent handoffs. Any loss at each handoff compounds, so a long workflow can reach its final agent with very little of the original user context. The customer experience degrades toward generic output by the end of the workflow.
This is one reason multi-agent AI systems can feel impersonal and disjointed. Each individual agent might be excellent. But the system as a whole fails because context evaporates at the seams.
Trade-offs
Self-model integration adds latency. Each agent must query the self-model before acting, adding latency per handoff depending on model complexity. For real-time conversational agents, this latency may be noticeable. For batch or semi-synchronous workflows, it is negligible.
Shared models require access control design. In multi-agent systems, not all agents should have access to all user beliefs. A research agent might add sensitive information that a marketing agent should not access. The self-model needs access control layers that match the agent permission model.
Model write conflicts are possible. When multiple agents observe the user simultaneously (in parallel agent architectures), they may produce conflicting observations. The self-model needs a conflict resolution strategy - typically confidence-weighted merging or last-write-wins with confidence decay.
Framework integration is not yet standardized. Each agent framework has different extension points for memory integration. Integrating self-models requires framework-specific adapters. As the agent ecosystem matures, standardized memory interfaces will emerge, but today each integration is custom work.
What to Do Next
-
Test your own agent pipeline. Establish a set of user preferences in the first agent and check how many still inform the behavior of the last agent. If you have several handoffs and no structured memory, expect to lose a lot of user context. Measure the problem before solving it.
-
Audit what each agent needs to know about the user. For each agent in your pipeline, list the user-level context it needs to perform its task well. This is not task context (what to do) but user context (who they are doing it for). The union of these lists defines your self-model schema.
-
Evaluate shared self-model architecture for your agent pipeline. Clarity provides structured, confidence-weighted user models that any agent can query and contribute to. The self-model becomes the shared memory layer that agent frameworks are missing. See if self-models fit your multi-agent architecture.
Your agents are smart individually. They are amnesic collectively. Shared self-models fix the memory problem. Build the shared memory your agents need.
References
- scarce resource with a finite “attention budget”
- context engineering
- memory vs. retrieval augmented generation
- lack persistent memory about the users and organizations they serve
- Atkinson-Shiffrin model
Related
Need evals for the AI agent you are shipping?
What did this article change about what you believe?
Select your beliefs
After reading this, which resonate with you?
Stay sharp on AI personalization
Daily insights and research on AI personalization and context management at scale. Read by hundreds of AI builders.
Daily articles on AI-native products. Unsubscribe anytime.
We build in public. Get Robert's weekly newsletter on building better AI products with Clarity, with a focus on hyper-personalization and digital twin technology. Join 1500+ founders and builders at Self Aligned.
Subscribe to Self Aligned →