Skip to main content

OpenClaw Native Memory

@rushdb/openclaw-memory adds automatic, lifecycle-aware RushDB recall and persistence while leaving OpenClaw's local Markdown and SQLite memory active.

This is different from the existing MCP and skills integration:

LevelBehavior
RushDB MCPThe model can choose database tools
MCP + RushDB skillsTools plus procedural query and modeling guidance
@rushdb/openclaw-memoryAutomatic pre-inference recall and post-turn persistence

The plugin is additive. It does not claim OpenClaw's exclusive kind: "memory" capability.

Install​

openclaw plugins install @rushdb/openclaw-memory

Set the API key in the gateway environment, then configure the plugin:

{
"plugins": {
"entries": {
"rushdb-memory": {
"enabled": true,
"hooks": {
"allowConversationAccess": true,
"allowPromptInjection": true
},
"config": {
"profileId": "default",
"autoRecall": true,
"autoCapture": true,
"recallTimeoutMs": 300
}
}
}
}
}

Required environment variable:

export RUSHDB_API_KEY=your-project-api-key

For self-hosting, also set RUSHDB_API_URL. Set RUSHDB_MEMORY_SCOPE_SALT so hashes of channel and participant identifiers cannot be correlated across deployments.

Privacy behavior​

Every write and recall is constrained by agentId, profileId, privacyScope, participantScopeHash, and sandboxEligible before semantic ranking. The plugin fails closed for:

  • group and channel sessions;
  • cron, hook, node, subagent, heartbeat, and incognito sessions;
  • sandboxed prompt contexts;
  • channel conversations without a trusted participant identifier.

Local/CLI sessions default to the exact session as their participant scope. Set localScopeId only when multiple local sessions intentionally share memory.

Only the latest bounded user/assistant pair is captured. System messages, complete transcripts, tool calls, command output, and local file paths are not uploaded automatically.

Reliability​

Completed episodes are first written to a local outbox at ~/.openclaw/rushdb-memory/outbox. A background writer uses deterministic eventId values and RushDB upsert with mergeBy: ["eventId"]. If RushDB is unavailable, OpenClaw's reply and local memory continue normally and the outbox remains available for replay after restart.

Managed embedding indexes are eventually consistent. A bounded recent-write cache supplies read-your-own-write recall until the EPISODE.summary index is ready.

Verify​

  1. Tell the agent a stable project decision.
  2. End the session and start another authorized private session.
  3. Ask about the decision without explicitly calling a RushDB tool.
  4. Take RushDB offline and confirm the user conversation still completes.

Use MCP and Agent Skills alongside the plugin when the model also needs explicit graph operations.