MEMORY.md, a Claude Code agent’s project memory, a native agent’s session store — which Clawboo preserves across runs but never reads or modifies.
A fact saved by one agent is available to every teammate, regardless of which runtime they run on. Private memory is each runtime’s own cognitive scratch space; teammates cannot see it. The model decides what to promote from private to shared by explicitly calling memory_save.
The shared memory tier
The shared store holds two kinds of entries:- Facts — declarative knowledge: “the staging deploy command is
pnpm deploy:staging”, “the user prefers concise responses”, “the API rate limit is 100 req/min.” - Procedures — versioned how-to instructions kept separately from facts so they stay findable.
| Tool | What it does |
|---|---|
memory_save | Save a fact or procedure to the shared store. |
memory_search | Search the shared store with a text or semantic query. |
memory_browse | Browse all stored facts and procedures, optionally filtered by scope. |
Memory scopes and namespaces
Every fact carries an optional team scope and agent scope. The visibility rules are inclusive: a query scoped to team T and agent A returns facts tagged with team T, facts tagged with agent A, and global (untagged) facts — but never another team’s facts or another agent’s private facts. When an agent auto-saves a team fact during a run, it is tagged with the team only (no agent tag) — so every teammate on every runtime can recall it. Tagging an auto-save with a specific agent ID would hide it from teammates and defeat the purpose of a shared store.The scope binding is authoritative when the run is connected. A runtime cannot widen its own visibility or mis-tag a save by passing different scope arguments — when the MCP session is bound to a team and agent, those are the scopes that apply, regardless of what the tool arguments say.
Auto-injection at run start
You do not need to callmemory_search at the start of every run to load relevant context. When a task run begins, Clawboo automatically searches the shared store using the task’s title and description as a query, retrieves the top matching facts (up to 5 by default, within a ~1500-character budget), and injects them into the prompt as a bounded <auto-memory> block.
This means your agents start each task already aware of what the team has learned — deploy commands, user preferences, project conventions — without an explicit tool call.
Search: full-text and semantic
The shared store supports three search modes:| Mode | How it works | When it’s used |
|---|---|---|
| FTS | Full-text search using BM25 ranking. | Default when no embedding provider is configured. |
| Vector | Semantic search using cosine similarity over stored embeddings. | When an embedding provider is available. |
| Hybrid | Blends vector (60%) and full-text (40%) signals. | Default when an embedding provider is available. |
The private memory tier
Each runtime’s native memory is preserved by Clawboo but never modified:| Runtime | Private memory | What Clawboo does |
|---|---|---|
hermes | MEMORY.md, state.db, self-created skills | Provides a stable per-identity home directory where these accumulate across runs. |
clawboo-native | Persisted conversation transcripts | Provides a stable per-identity home for the session store. |
openclaw | Gateway-managed memory | Observes it; the Gateway owns it entirely. |
claude-code | Project memory | Runs against your real home; no Clawboo-managed home. |
codex | No native memory | Runs with an ephemeral per-run home. |
MEMORY.md over many runs carries that knowledge forward. Clawboo’s job is to preserve that state, not flatten it.
Security: scrub-on-write and sanitize-before-inject
The shared store is a single write choke point, which makes it the right place to remove secrets before they become durable. Every save — whether through the MCP tool, the REST API, or a future writer — passes through a secret redactor before storage. A credential that an agent tries to memorialize is stored as[REDACTED], never as the live value.
Before a fact reaches an agent’s prompt through auto-injection, two additional guards run:
- Injection scan — a fact containing potential prompt-injection content is dropped before it reaches another agent’s context.
- Re-scrub — facts are scrubbed again on the read path as a defense-in-depth measure, in case a fact predates the scrubber or was written by an older code path.
Using the Memory Browser in the dashboard
Using the Memory Browser in the dashboard
Open the Memory Browser from the dashboard sidebar to see all facts and procedures stored for your team. You can:
- Filter by team, agent, or global scope
- Search using the same full-text or semantic search your agents use
- Delete stale or incorrect facts
- Seed facts manually before starting a new project
Teams and Planes
How the shared and private planes relate to team structure.
Agent Model
How each runtime’s private memory is preserved across runs.
Observability
The event log that records runtime activity.
MCP Tools Reference
The
memory_save, memory_search, and memory_browse input shapes.