OpenClawSkills
GitHub
特性 • 4 分钟阅读

会话与内存

OpenClaw 如何记住你。持久的上下文、隔离以及每日内存文件。

会话是 OpenClaw 中对话管理的核心单位。它们保持不同对话之间的上下文、状态和隔离。了解会话是配置多 Agent 路由和管理复杂工作流的关键。

Tutorial.step

会话类型

主会话

主会话是私聊 (DMs) 的默认会话。默认情况下:

  • 所有的私聊都会合并到一个共享的主会话中
  • 上下文在所有的私聊对话中共享
  • 工具在宿主上以完整访问权限运行 (用于受信任的用途)
  • 非常适合希望拥有统一上下文的个人使用

群组会话

每个群组聊天都会获得自己独立的会话:

  • 上下文与其他的群组和私聊隔离
  • 可以配置为在 Docker 沙箱中运行
  • 支持基于提及的激活
  • 每个群组保持自己的对话历史

隔离会话

你可以为以下情况创建隔离会话:

  • 特定的路由需求
  • 安全隔离
  • 测试和开发
  • 多 Agent 设置
Tutorial.step

会话特性

激活模式

控制 Agent 何时在会话中响应:

  • always - Agent 响应所有消息
  • mention - Agent 仅在被提及期间响应 (群组默认)
  • manual - Agent 仅在被明确激活时响应

队列模式

会话如何处理并发请求:

  • sequential - 按顺序处理消息
  • parallel - 同时处理多个请求
  • priority - 根据优先级水平处理

上下文管理

会话自动:

  • 加载相关的上下文和内存
  • 保持对话历史
  • 在需要时剪除旧上下文
  • 根据对话更新内存
Tutorial.step

多 Agent 路由

OpenClaw 支持根据各种标准将消息路由到不同的 Agent:

基于频道的路由

将不同的频道路由到不同的 Agent:

Routing via Bindings
{
  "agents": {
    "list": [
      { "id": "whatsapp-agent", "workspace": "~/.openclaw/workspace-whatsapp" },
      { "id": "telegram-agent", "workspace": "~/.openclaw/workspace-telegram" }
    ]
  },
  "bindings": [
    { "match": { "channel": "whatsapp" }, "agentId": "whatsapp-agent" },
    { "match": { "channel": "telegram" }, "agentId": "telegram-agent" }
  ]
}

基于 Peer 的路由

将特定的联系人路由到专门的 Agent:

Peer Routing via Bindings
{
  "bindings": [
    { 
      "match": { 
        "channel": "whatsapp",
        "peer": { "kind": "dm", "id": "+1234567890" }
      }, 
      "agentId": "work-agent" 
    }
  ]
}

基于群组的路由

每个群组可以有自己的 Agent 工作区:

  • 每个群组都有隔离的上下文
  • 每个群组都有不同的技能和工具
  • 独立的内存和配置

会话隔离

会话隔离提供安全性和上下文分离:

  • 工作区隔离 - 每个 Agent 都有自己的工作区目录
  • 内存隔离 - 每个 Agent 都有独立的内存文件
  • 工具隔离 - 每个会话都有不同的工具策略
  • 沙箱隔离 - 群组可以在 Docker 容器中运行
Tutorial.step

会话工具

OpenClaw 提供用于会话管理的工具:

  • ''sessions_list'' - 列出所有活动会话
  • ''sessions_history'' - 查看会话对话历史
  • ''sessions_send'' - 将消息发送到特定会话
  • ''sessions_spawn'' - 创建新的隔离会话

这些工具允许 Agent 管理其他会话并与之交流。

Tutorial.step

会话配置

在你的 中配置会话行为:

Session Config
{
  "session": {
    "scope": "per-sender",
    "reset": {
      "mode": "daily",
      "atHour": 4
    }
  },
  "agents": {
    "defaults": {
      "sandbox": {
        "mode": "non-main"
      }
    }
  }
}
Tutorial.step

会话压缩 (Compaction)

会话自动压缩上下文以管理 Token 使用量:

  • ✂️
    自动剪除达到限制时删除旧的上下文。
  • 📝
    内存概括概括重要信息。
  • ⚖️
    Token 管理保持在模型上下文限制内。

这确保了会话在保持重要上下文的同时保持高效。