Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions examples/openclaw-plugin/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ Use [OpenViking](https://github.com/volcengine/OpenViking) as the long-term memo
- [Configuration Reference](#configuration-reference)
- [Daily Usage](#daily-usage)
- [Web Console (Visualization)](#web-console-visualization)
- [Multi-Agent Memory Isolation](#multi-agent-memory-isolation)
- [Troubleshooting](#troubleshooting)
- [Uninstallation](#uninstallation)

Expand Down Expand Up @@ -406,6 +407,31 @@ Open http://127.0.0.1:8020 in your browser.

---

## Multi-Agent Memory Isolation

Previously, all agents on the same OpenClaw instance shared a single memory namespace — memories stored by one agent were visible to every other agent. The plugin now supports **per-agent memory isolation**: each agent's memories are automatically namespaced by its agent ID, so agents no longer see each other's memories.

**This is enabled by default.** No extra configuration is needed — simply leave the `agentId` config empty and the plugin will use the agent ID provided by the OpenClaw host.

| `agentId` config | Behavior |
|---|---|
| **Not set** (default, recommended) | Each agent gets its own isolated memory namespace. The plugin reads the agent ID from the OpenClaw host automatically. |
| **Set to a fixed value** (e.g. `"default"`) | All agents using this value share the same memory namespace (the old behavior). |

> **Note on `"main"` agent ID:** OpenClaw's default primary agent ID is `"main"`. With per-agent isolation enabled (the default), memories are stored under the `"main"` namespace — not the legacy `"default"` namespace. If you previously used a fixed `agentId: "default"` config, those memories remain under `"default"` and will not be visible to the `"main"` agent. To continue accessing them, explicitly set `agentId: "default"` in your config.

> **Tool isolation limitation:** Auto-recall and auto-capture (the background memory pipeline) are fully per-agent isolated — the plugin receives agent context from OpenClaw via hook events and routes each agent's memories correctly. However, explicit tool calls (`memory_store`, `memory_recall`, `memory_forget`) do not currently inherit the calling agent's identity. They use the configured `agentId` value, or `"default"` if none is set. This is a platform-level constraint: the OpenClaw tool execution API does not pass agent context into tool `execute` callbacks. Full tool-level isolation would require a change to the OpenClaw platform.

### Reverting to Shared Memory

If you need all agents to share the same memories (the previous behavior), set a fixed `agentId`:

```bash
openclaw config set plugins.entries.memory-openviking.config.agentId "default"
```

---

## Troubleshooting

### Common Issues
Expand Down
Loading
Loading