深度

OpenClaw Session 管理深度指南:DM 隔离模式、重置策略与存储维护

OpenClaw Session 管理完整指南:DM 四种隔离模式(main/per-peer/per-channel-peer/per-account-channel-peer)、多用户安全警告与修复、跨频道身份关联(identityLinks)、每日/空闲/按类型/按频道差异化重置策略、Session 维护防止存储无限增长,以及发送策略配置。

2026/3/124分钟 阅读ClaudeEagle

Session 是 OpenClaw 中对话状态的核心载体。理解 Session 的隔离模式、生命周期和维护策略,对于多用户部署、多频道管理至关重要。

Session Key 映射规则

场景Session Key
DM(默认 main 模式)agent:<agentId>:main
DM(per-channel-peer)agent:<agentId>:<channel>:dm:<peerId>
群组/频道agent:<agentId>:<channel>:group:<id>
Telegram 论坛主题agent:<agentId>:telegram:group:<id>:topic:<threadId>
Cron 任务cron:<jobId>
Webhookhook:<uuid>

DM 隔离模式(dmScope)

控制不同用户的私信如何分组到 Session:

模式适用场景Session Key 格式
main(默认)单用户,所有 DM 共享上下文agent:<id>:main
per-peer多用户,按发送者隔离agent:<id>:dm:<peerId>
per-channel-peer多用户多频道,推荐agent:<id>:<channel>:dm:<peerId>
per-account-channel-peer多账号多频道agent:<id>:<channel>:<accountId>:dm:<peerId>

安全警告:多用户必须开启隔离

如果你的 Agent 可以接收多个用户的 DM,必须开启安全 DM 模式。

默认设置的安全问题

  • Alice 向 Agent 说了私密内容
  • Bob 问「我们之前聊了什么?」
  • 因为共享同一 Session,Agent 可能用 Alice 的上下文回答 Bob

修复方法

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

需要开启的场景

  • 配对审批了多个用户
  • DM 白名单有多个条目
  • 设置了 dmPolicy: "open"
  • 多个手机号或账号可以发消息给 Agent
bash
# 验证 DM 安全配置
openclaw security audit

同一个人在多个频道发消息时,合并为同一个 Session:

json
{
  "session": {
    "dmScope": "per-channel-peer",
    "identityLinks": {
      "alice": ["telegram:123456789", "discord:987654321012345678"],
      "bob": ["whatsapp:+8613800138000", "slack:U1234567890"]
    }
  }
}

Session 重置策略

每日重置(默认)

默认每天 凌晨 4 点(Gateway 所在机器时区) 重置:

json
{
  "session": {
    "reset": {
      "mode": "daily",
      "atHour": 4
    }
  }
}

空闲重置

超过指定分钟无活动则重置:

json
{
  "session": {
    "reset": {
      "mode": "idle",
      "idleMinutes": 120
    }
  }
}

按类型差异化重置

json
{
  "session": {
    "resetByType": {
      "thread": { "mode": "daily", "atHour": 4 },
      "direct": { "mode": "idle", "idleMinutes": 240 },
      "group": { "mode": "idle", "idleMinutes": 120 }
    }
  }
}

按频道差异化重置

json
{
  "session": {
    "resetByChannel": {
      "discord": { "mode": "idle", "idleMinutes": 10080 }
    }
  }
}

手动重置命令

在对话中发送:

  • /new — 开启新 Session,可附带消息或模型切换(/new claude-opus-4-6
  • /reset — 重置 Session
  • /stop — 中止当前运行,清除排队的跟进消息,停止所有子 Agent

Session 维护(防止存储无限增长)

默认配置

参数默认值说明
modewarn仅警告,不清理
pruneAfter30d超过 30 天的条目标记为过期
maxEntries500最大保留条目数
rotateBytes10mbsessions.json 超过此大小时轮转

生产环境推荐配置

json
{
  "session": {
    "maintenance": {
      "mode": "enforce",
      "pruneAfter": "45d",
      "maxEntries": 800,
      "rotateBytes": "20mb",
      "resetArchiveRetention": "14d"
    }
  }
}

大型部署(加硬盘上限)

json
{
  "session": {
    "maintenance": {
      "mode": "enforce",
      "pruneAfter": "14d",
      "maxEntries": 2000,
      "maxDiskBytes": "2gb",
      "highWaterBytes": "1.6gb"
    }
  }
}

手动触发维护

bash
# 预览(不执行)
openclaw sessions cleanup --dry-run
openclaw sessions cleanup --dry-run --json  # JSON 格式详细输出

# 执行清理
openclaw sessions cleanup --enforce

检查 Session 状态

bash
# 查看当前 Session 概览
openclaw status

# 列出所有 Session(JSON 格式)
openclaw sessions --json

# 仅显示最近活跃的 Session
openclaw sessions --active 60  # 60 分钟内活跃

# 在聊天中查看
/status          # 查看上下文用量、思考/详细模式等
/context list    # 查看系统提示和注入的工作区文件
/context detail  # 查看最大的上下文贡献者

发送策略(sendPolicy)

按 Session 类型屏蔽特定消息投递:

json
{
  "session": {
    "sendPolicy": {
      "rules": [
        { "action": "deny", "match": { "channel": "discord", "chatType": "group" } },
        { "action": "deny", "match": { "keyPrefix": "cron:" } }
      ],
      "default": "allow"
    }
  }
}

运行时覆盖(仅限所有者):

/send on /send off /send inherit

Session 存储位置

  • Store 文件:~/.openclaw/agents/<agentId>/sessions/sessions.json
  • 转录文件:~/.openclaw/agents/<agentId>/sessions/<SessionId>.jsonl

Gateway 是 Session 状态的唯一真相来源。远程模式下,Session 存储在远程 Gateway 主机上。


原文:Session Management - OpenClaw | 来源:OpenClaw 官方文档

相关文章推荐

深度OpenClaw 企业内网部署完全指南:多用户、权限隔离与安全加固OpenClaw 企业内网部署的完整方案:多用户架构设计(每人独立 Gateway vs 共享 Gateway 多 Agent)、allowedUsers 和 allowFrom 白名单配置、基于角色的权限控制、内网安全加固(沙箱隔离/exec 权限限制/网络出口控制)、与企业 SSO 集成的思路、审计日志配置、高可用部署(多实例/负载均衡/状态同步)、以及在完全内网环境(无公网)下部署本地模型(Ollama)的完整步骤。2026/3/21深度OpenClaw 会话管理深度指南:多用户隔离、重置规则与磁盘清理OpenClaw 会话管理完全指南:多用户场景 DM 隔离策略(per-channel-peer 防止信息泄露)、每日/空闲/按类型的重置规则、会话 Key 格式详解、磁盘清理配置(enforce 模式 + 容量上限),以及手动清理命令和发送策略。2026/3/1深度OpenClaw 多 Gateway 架构完全指南:一台机器运行多个独立 AI 助手实例OpenClaw 多 Gateway(Multi-Gateway)架构完整教程:多实例的隔离优势、同一台机器运行多个 Gateway(不同端口/配置文件/workspace)、systemd 管理多个 Gateway 服务、Nginx 虚拟主机为每个实例分配独立域名、API Key 隔离与成本拆分、单机多实例 vs 多机方案对比,以及 Docker Compose 多容器隔离部署方案。2026/3/26深度OpenClaw Hooks 自动化进阶:消息前后的智能拦截、转换与触发机制OpenClaw Hooks(钩子)自动化系统进阶教程:Hooks 的触发时机(before-send/after-receive/on-tool-call)、用 Hooks 拦截消息并修改内容(自动翻译/过滤/格式化)、基于条件的 Hook 触发(渠道过滤/关键词匹配)、Hook 中调用外部 API(Notion 记录/Bark 通知/监控告警)、exec 工具二次确认 Hook,以及 Hooks 与 SOUL.md 和 Standing Orders 的优先级关系详解。2026/3/26深度OpenClaw 插件开发完全指南:从零构建自定义渠道和工具插件OpenClaw 插件(Plugin)开发完整教程:插件类型(渠道插件/工具插件/Provider插件)、插件的目录结构和 package.json 规范、使用 Plugin SDK 开发自定义消息渠道(实现 onMessage/sendMessage 接口)、开发自定义工具(Tool)的函数签名和参数 Schema、本地插件安装与调试(openclaw plugins install ./local-plugin)、发布到 npm 的规范要求(@openclaw/ 命名空间)、插件的权限声明(capabilities)、社区插件列表(Plugin Bundles)获取,以及常见插件开发错误和调试技巧。2026/3/25深度OpenClaw 安全威胁模型深度解析:MITRE ATLAS 框架下的 AI 助手攻防分析OpenClaw 安全架构深度分析:个人助手信任模型(单用户/单 Gateway 边界)、形式化验证的认证逻辑、基于 MITRE ATLAS 框架的 AI 系统威胁分类(直接提示注入/间接提示注入/工具滥用/数据泄露/会话劫持)、多租户共享 Gateway 的风险与安全边界说明、exec/browser/文件工具的权限最小化配置、频道白名单与沙箱配置对应的威胁缓解措施,以及 `openclaw security audit` 命令的使用方法。2026/3/24