什么是多代理
OpenClaw 支持在单个网关中运行多个完全隔离的 AI 代理。每个代理就像一个独立的「大脑」,拥有自己的:
- 工作区和文件系统
- 会话存储和聊天历史
- 人格设定和行为指令
- 模型配置和工具权限
- 认证凭证
这意味着你可以在同一台设备上同时运行「工作助手」「生活管家」「编程搭档」等多个角色完全不同的 AI 代理。
配置多个代理
在 ~/.openclaw/openclaw.json 中定义代理列表:
{
agents: {
defaults: {
model: { primary: "anthropic/claude-sonnet-4-5" }
},
list: [
{
id: "work",
identity: {
name: "工作助手",
emoji: "💼"
},
model: { primary: "anthropic/claude-opus-4-5" },
workspace: "~/openclaw-workspaces/work"
},
{
id: "home",
identity: {
name: "生活管家",
emoji: "🏠"
},
model: { primary: "ollama/llama3.3" },
workspace: "~/openclaw-workspaces/home"
},
{
id: "coder",
identity: {
name: "编程搭档",
emoji: "👨💻"
},
model: { primary: "anthropic/claude-opus-4-5" },
workspace: "~/projects"
}
]
}
}
消息路由
OpenClaw 使用确定性的优先级规则将消息路由到正确的代理:
- 对等方匹配:特定联系人或群组 ID 绑定到指定代理
- 账户匹配:按聊天账户路由(适用于多账号场景)
- 频道规则:按频道类型路由
- 默认回退:未匹配的消息路由到默认代理
按联系人路由
让同事的消息发给工作助手,家人的消息发给生活管家:
{
agents: {
list: [
{
id: "work",
bindings: {
peers: ["colleague-user-id-1", "colleague-user-id-2"]
}
},
{
id: "home",
bindings: {
peers: ["family-member-id"]
}
}
]
}
}
按账户路由
如果你有多个聊天账号(比如工作微信和私人微信),可以按账户分流:
{
channels: {
whatsapp: {
accounts: {
"personal": { /* 个人号配置 */ },
"business": { /* 工作号配置 */ }
}
}
},
agents: {
list: [
{
id: "home",
bindings: { accountId: "personal" }
},
{
id: "work",
bindings: { accountId: "business" }
}
]
}
}
隔离与安全
每个代理的数据完全隔离,存储在独立的目录结构中:
~/.openclaw/agents/
├── work/
│ ├── agent/
│ │ ├── AGENTS.md # 代理行为指令
│ │ ├── SOUL.md # 人格设定
│ │ └── auth-profiles.json
│ └── sessions/ # 会话存储
├── home/
│ ├── agent/
│ └── sessions/
└── coder/
├── agent/
└── sessions/
认证凭证(如 API 密钥)不会在代理之间自动共享,每个代理需要独立配置。
差异化权限
可以为不同代理设置不同的安全级别:
{
agents: {
list: [
{
id: "personal",
// 完全信任的个人代理
sandbox: { mode: "off" }
},
{
id: "family",
// 家庭成员共用,限制权限
sandbox: {
mode: "all",
workspaceAccess: "ro"
},
tools: {
deny: ["exec", "browser"]
}
},
{
id: "public",
// 对外开放的代理,最严格限制
sandbox: {
mode: "all",
workspaceAccess: "none"
},
tools: {
allow: ["group:web"],
deny: ["exec", "browser", "group:fs"]
}
}
]
}
}
代理人格配置
每个代理在自己的工作区中有 AGENTS.md 和 SOUL.md 文件来定义行为和人格:
工作助手的 SOUL.md 示例:
你是一个专业的工作助手。你的风格是简洁、高效、注重数据。
回复使用正式的商务语气,优先给出可执行的建议。
生活管家的 SOUL.md 示例:
你是一个温暖的生活助手。你关心用户的健康和生活质量。
回复风格轻松友好,会主动提醒休息和运动。
群聊中的代理识别
在群聊中,可以通过 @ 提及或 emoji 前缀来指定与哪个代理交互:
{
agents: {
list: [
{
id: "work",
identity: {
name: "工作助手",
emoji: "💼"
},
groupChat: {
mentionPatterns: ["@工作助手", "💼"]
}
}
]
}
}
使用建议
- 从 2 个代理开始,逐步扩展
- 为每个代理明确分工,避免职责重叠
- 敏感操作限制在可信的代理中
- 公开代理务必开启沙箱和权限限制
- 定期检查各代理的会话记录和工具调用日志