🦞OpenClaw ClawBook

Agent 与会话

每个 Agent 拥有独立的工作区、会话历史和工具策略。通过 Binding 机制实现精细的多 Agent 路由。

Agent 运行时

OpenClaw 的 Agent 基于内嵌的 pi-mono 运行时,每个 Agent 拥有:

  • 独立的 Workspace 目录
  • 独立的 agentDir(认证档案)
  • 独立的会话存储
# 查看所有 Agent
openclaw agents list --bindings

# 新建 Agent
openclaw agents add work --workspace ~/.openclaw/workspace-work

# 删除 Agent
openclaw agents delete work

Bootstrap 机制

每个新会话首条消息触发 Bootstrap,自动注入 Workspace 中的文件到上下文:

  • AGENTS.md — Agent 人设与行为规则
  • SOUL.md — 深层性格与风格
  • TOOLS.md — 可用工具说明
  • BOOTSTRAP.md — 启动指令
  • IDENTITY.md — 身份信息
  • USER.md — 用户画像

空文件会被跳过,过大的文件会被截断。

多 Agent 路由

通过 agents.list 定义多个 Agent,用 bindings 把不同来源的消息路由到不同 Agent。 路由采用 最具体优先 原则:

{
  agents: {
    defaults: { workspace: "~/.openclaw/workspace" },
    list: [
      {
        id: "work",
        workspace: "~/.openclaw/workspace-work",
        bindings: [
          { channel: "telegram", peer: { id: "123456", kind: "direct" } },
          { channel: "slack" }
        ]
      },
      {
        id: "personal",
        workspace: "~/.openclaw/workspace-personal",
        bindings: [{ channel: "whatsapp" }]
      }
    ]
  }
}

每个 Agent 可以有独立的沙箱配置和工具策略。

会话管理

会话存储为 JSONL 文件:~/.openclaw/agents/<agentId>/sessions/<sessionId>.jsonl

会话隔离(DM Scope)

模式行为
main默认。所有私聊共享会话(注意上下文泄漏风险)
per-peer每个发送者独立会话
per-channel-peer推荐。按渠道+发送者隔离
per-account-channel-peer最细粒度

会话重置

{
  session: {
    reset: {
      daily: { hour: 4 },
      idleMinutes: 120
    }
  }
}
// 手动重置:在聊天中发送 /new 或 /reset

会话维护

  • pruneAfter:默认 30 天后清理旧会话
  • maxEntries:单会话最多 500 条消息
  • rotateBytes:超 10MB 时轮转

消息过多时 Gateway 会自动压缩(Compaction)上下文。

最佳实践

  • 多用户场景务必设置 per-channel-peer 隔离
  • 为不同用途创建独立 Agent,利用 Binding 路由
  • 修改 AGENTS.md 即可定制 Agent 人设
  • 跨渠道身份关联可用 session.identityLinks