← Back to docs

Session Isolation: Understanding dmScope

When you use CrabCallr to call your OpenClaw agent, each call creates a new session. How that session relates to your other conversations depends on the dmScope setting in your openclaw.json.

The default: "main"

By default, dmScope is set to "main". All your direct messages share a single session, regardless of channel. Your WhatsApp messages, Discord DMs, TUI chats, and CrabCallr calls all feed into the same conversation context. This works fine if you're the only person who talks to your agent.

The problem: if multiple people can DM your agent, everyone shares the same context. Information from one person's conversation can leak into another's.

Recommended for CrabCallr: "per-channel-peer"

We recommend setting dmScope to "per-channel-peer":

{
  "session": {
    "dmScope": "per-channel-peer"
  }
}

This isolates sessions by channel and sender. Your WhatsApp conversation, your Discord DMs, and your CrabCallr calls each get their own independent context. No cross-talk between channels, and no risk of leaking one user's conversation to another.

What this means for phone calls

With "per-channel-peer", each CrabCallr call starts a fresh session. If you call your agent, discuss a topic, hang up, and call back later, the second call will not have the first call's conversation in its context window. Your agent won't automatically remember what you talked about.

This is where long-term memory matters. If your agent saved important details to MEMORY.md or its daily logs during the first call, it can retrieve that information in later calls through memory_search. The conversation context is separate, but the persistent memory is shared across all channels.

However, OpenClaw's default memory system relies on the LLM to decide what to save. It doesn't always capture everything. For more reliable recall across calls and channels, consider installing the Mem0 plugin (@mem0/openclaw-mem0). Mem0 automatically captures facts from every conversation and injects relevant memories into each new session, so your agent remembers your preferences, projects, and past decisions even across separate calls.

Quick summary

Setting Conversation context Long-term memory
"main" Shared across all channels Shared
"per-channel-peer" Isolated per channel Shared

Bottom line

With "per-channel-peer", your agent keeps each channel's conversation private, but its long-term knowledge (MEMORY.md, daily logs, or Mem0) stays accessible everywhere.