How to Share Memory Across Multiple OpenClaw Agents
Out of the box, OpenClaw isolates memory by agent, channel, and user. That's a safe default — but it means two agents talking to the same person behave like strangers. Support bot doesn't know what the ops bot was just told. Personal assistant can't reference what the research agent found yesterday.
If you're running a multi-agent setup and want shared context, the fix is straightforward: change dynamicBankGranularity so agents derive the same memory bank for the same user. Hindsight's April 20 guide walks through exactly how to do this.
Why memory is isolated by default
The default dynamicBankGranularity in the Hindsight OpenClaw plugin includes agent as a dimension. So each agent gets its own bank even for the same user and provider. This is intentional — most single-agent setups don't want cross-contamination, and it's the right default for agents doing fundamentally different things.
It's the wrong layout when your agents are deliberately collaborative: a support bot, an ops bot, and a personal assistant that all serve the same human should share that user's context.
The fix: remove agent from the bank key
In your Hindsight plugin config (in openclaw.json), change:
"dynamicBankGranularity": ["agent", "provider", "user"]
to:
"dynamicBankGranularity": ["provider", "user"]
Now every agent pointing at the same Hindsight backend will derive the same bank for the same user on the same provider. One agent learns something → all agents can access it.
Provider-scoped vs. fully global sharing
Two options, with different tradeoffs:
| Config | Scope | Use when… |
|---|---|---|
["provider", "user"] |
Shared per-provider (Discord memory ≠ Telegram memory) | You want sharing but keep channel contexts separate |
["user"] |
Fully global (same memory regardless of channel) | You want a single brain per person across all channels |
Hindsight's guide recommends starting with ["provider", "user"] unless you've consciously decided cross-platform sharing is what you want. Full global sharing means a conversation on Discord and one on Telegram feed into the same memory — which can muddy context.
Prerequisites
- OpenClaw installed and gateway healthy on all participating agents
@vectorize-io/hindsight-openclawinstalled on every agent that will share memory- All agents pointing at the same Hindsight backend (local or cloud — both work, but they must be the same instance)
Install the plugin if you haven't:
openclaw plugins install @vectorize-io/hindsight-openclaw
Add a shared retainMission
Once agents share a bank, you want the retained context to be genuinely useful — not per-agent noise. Set a retainMission that focuses on durable user context:
"retainMission": "Retain durable facts about the user: preferences, past decisions, project context, recurring questions. Ignore agent-specific housekeeping and ephemeral task state."
Without this, each agent may write its own operational chatter into the shared bank, polluting it for other agents.
Testing that it works
- Restart all participating agents after the config change
- On Agent A, share a fact with the user: "My preferred timezone is America/New_York and I work on EntityVault"
- On Agent B (same user, same provider), ask: "What do you know about my current projects?"
- Agent B should surface the EntityVault context it learned from Agent A's session
If it doesn't work, verify both agents point at the same Hindsight backend URL and that agent is actually removed from dynamicBankGranularity in both configs.
When NOT to share memory
Shared memory is powerful but not always right:
- Agents with different trust levels: A customer-facing support bot and an internal ops agent should usually have separate memory banks — the ops bank may contain sensitive business context you don't want surfacing in customer replies.
- Agents serving different users: If Agent A serves your whole team and Agent B is a personal assistant, sharing memory means team conversations could bleed into personal context.
- High-churn agents: Agents that process lots of ephemeral tasks (batch jobs, cron workers) generate noise that pollutes shared banks. Keep those isolated.
Bottom line
Multi-agent shared memory in OpenClaw is a one-line config change in Hindsight — but the wrong choice creates context pollution across your whole agent fleet. Take 5 minutes to decide whether you want ["provider", "user"] or ["user"] scoping before you flip the switch.
Running a multi-agent setup and want a config review? ClawReady audits multi-agent configurations and can walk you through the right memory architecture for your use case.