Sessions and memory
Enabling active memory
Remember across conversations
For a personal or fully trusted agent, enable bounded recall across its other private conversations with one per-agent setting:
{ agents: { entries: { personal: { memory: { search: { rememberAcrossConversations: true, }, }, }, }, },}The setting defaults on for personal installs: global session.dmScope must be
unset or "main", and no binding may override session.dmScope. Any configured
DM isolation defaults it off. An explicit true or false always wins. When
enabled, OpenClaw indexes that agent's session transcripts and runs an Active
Memory retrieval pass before eligible private replies. The pass can read
relevant transcript excerpts from the same agent's other private conversations.
It excludes the conversation already being answered.
The privacy boundary is fixed:
- private direct and persistent explicit UI conversations can recall one another
- groups and channels are neither recall sources nor recall destinations
- another agent's transcripts are never eligible
- unknown or archived transcripts without enough conversation metadata are rejected
This does not merge transcripts, change session keys or delivery routes, widen
tools.sessions.visibility, or grant broader sessions_* tool access. Shared
workspace memory (MEMORY.md and memory/*.md) keeps its existing behavior.
Active Memory must remain enabled. Retrieval adds a bounded blocking step to
eligible replies. An intentional no-intent skip or an unavailable search adds a
short hidden outcome note instead of recalled transcript context. This tells
the main model that recall did not run or could not finish without exposing
provider errors. Timeout and empty results keep their existing behavior.
OpenClaw's built-in memory provider supports this protected transcript-recall
path. Other memory providers keep their own recall behavior but do not
automatically receive private transcript authorization. openclaw doctor
reports an unsupported provider or missing memory_search tool.
Advanced Active Memory quick start
Paste into openclaw.json for an advanced safe default: plugin on, scoped to
main, direct-message sessions only, model inherited from the session.
{ plugins: { entries: { "active-memory": { enabled: true, config: { enabled: true, mode: "escalate", agents: ["main"], allowedChatTypes: ["direct"], modelFallback: "google/gemini-3-flash", queryMode: "recent", promptStyle: "balanced", timeoutMs: 15000, maxSummaryChars: 220, persistTranscripts: false, logging: true, }, }, }, },}plugins.entries.* (including active-memory.config) is in the no-restart
config category:
the Gateway reloads the plugin runtime automatically and no manual restart is
needed. If you want to force a full restart anyway, run:
openclaw gateway restartTo inspect it live in a conversation:
/verbose on/trace onWhat the key fields do:
plugins.entries.active-memory.enabled: trueturns the plugin onconfig.mode: "escalate"runs deep recall only for recall intent without a strong deterministic hitconfig.agents: ["main"]opts only themainagent inconfig.allowedChatTypes: ["direct"]scopes it to direct-message sessions (opt in groups/channels explicitly)config.model(optional) pins a dedicated recall model; unset inherits the current session modelconfig.modelFallbackis used only when no explicit or inherited model resolvesconfig.fastModeoptionally overrides fast mode for recall without changing the main agentconfig.promptStyle: "balanced"is the default forrecentmode- active memory still runs only for eligible interactive persistent chat sessions (see When it runs)