How to Share Memory Across Multiple OpenClaw Agents

April 21, 2026 · ClawReady Team · Based on Hindsight's April 20 guide

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:

ConfigScopeUse 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

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

  1. Restart all participating agents after the config change
  2. On Agent A, share a fact with the user: "My preferred timezone is America/New_York and I work on EntityVault"
  3. On Agent B (same user, same provider), ask: "What do you know about my current projects?"
  4. 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:

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.