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 workBootstrap 机制
每个新会话首条消息触发 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