大多数人用一个 Agent 就够了。但随着使用深入,你可能会想要:一个 Agent 专门处理工作事务,另一个专门做生活助理;或者给家人提供一个权限受限的 Bot,自己用另一个功能完整的。这些都可以用多 Agent 实现。
一、什么是多 Agent
在 OpenClaw 里,Agent 是一个完全独立的"大脑"单元,有自己的:
- 独立工作目录(workspace)
- 独立的会话存储
- 独立的工具权限设置
- 独立的 Channel 绑定
多个 Agent 运行在同一个 Gateway 实例里,共用同一个进程,但彼此完全隔离、互不干扰。
二、什么时候需要多 Agent
| 场景 | 说明 |
|---|---|
| 功能隔离 | 工作 Bot 能读写文件,生活 Bot 只能聊天 |
| 权限隔离 | 给家人一个只能聊天的 Bot,自己用功能完整的 |
| 个性隔离 | 不同 Channel 上的 Bot 有不同的名字和风格 |
| 模型隔离 | 日常对话用便宜的模型,专业任务用强模型 |
三、创建新 Agent
bash
bash
1openclaw agents add <agentId>例如创建一个叫 family 的 Agent:
bash
bash
1openclaw agents add family这条命令会:
- 在
~/.openclaw/agents/family/下创建独立的状态目录 - 在
~/.openclaw/workspace-family/下创建工作目录
查看所有 Agent:
bash
bash
1openclaw agents list四、在配置文件里配置多 Agent
~/.openclaw/openclaw.json 里用 agents.list 数组定义每个 Agent:
json5
json5
1{
2 agents: {
3 // 默认设置,所有 Agent 继承
4 defaults: {
5 model: {
6 primary: "anthropic/claude-sonnet-4-6"
7 }
8 },
9
10 // Agent 列表
11 list: [
12 {
13 id: "main", // 默认 Agent,必须有
14 agentDir: "~/.openclaw/agents/main",
15 workspace: "~/.openclaw/workspace",
16 tools: { profile: "full" }
17 },
18 {
19 id: "family",
20 agentDir: "~/.openclaw/agents/family",
21 workspace: "~/.openclaw/workspace-family",
22 model: {
23 primary: "groq/llama-3.3-70b-versatile" // 这个 Agent 用不同的模型
24 },
25 tools: {
26 profile: "messaging" // 只允许聊天,不能操作文件
27 }
28 }
29 ]
30 }
31}`agentDir` 必须每个 Agent 独占,绝对不能两个 Agent 共用同一个目录,否则会导致认证和会话数据混乱。
五、Channel 绑定:消息路由到哪个 Agent
创建了多个 Agent 之后,还需要告诉 OpenClaw:哪些消息路由给哪个 Agent。这通过 bindings(绑定规则) 来配置。
方案一:按 Channel 类型路由
Telegram 的消息给 main,Feishu 的消息给 family:
json5
json5
1{
2 agents: {
3 list: [
4 { id: "main", /* ... */ },
5 { id: "family", /* ... */ }
6 ],
7 bindings: [
8 { channel: "feishu", agentId: "family" },
9 { channel: "telegram", agentId: "main" }
10 ]
11 }
12}方案二:按用户 ID 路由
同一个 Channel,不同用户路由到不同 Agent:
json5
json5
1{
2 agents: {
3 bindings: [
4 // 家人的 Telegram ID 路由给 family Agent
5 { channel: "telegram", peer: "家人的user_id", agentId: "family" },
6 // 其他人(包括自己)默认走 main
7 { channel: "telegram", agentId: "main" }
8 ]
9 }
10}路由优先级
当多条规则都匹配时,更精确的规则优先:
- peer(指定用户 ID)— 最高优先级
- guild/team ID(指定群组)
- account ID(指定 Channel 账户)
- channel(Channel 类型)— 最低优先级
同一层级有多条规则时,配置文件里靠前的优先。
六、验证路由配置
bash
bash
1openclaw agents list --bindings这条命令会列出所有 Agent 及其绑定规则,方便确认配置是否正确。
七、常见配置示例
工作 Bot + 家用 Bot
json5
json5
1{
2 agents: {
3 defaults: {
4 model: { primary: "anthropic/claude-sonnet-4-6" }
5 },
6 list: [
7 {
8 id: "work",
9 agentDir: "~/.openclaw/agents/work",
10 workspace: "~/work-workspace",
11 tools: { profile: "coding" } // 可以操作文件和执行命令
12 },
13 {
14 id: "home",
15 agentDir: "~/.openclaw/agents/home",
16 workspace: "~/.openclaw/workspace-home",
17 model: { primary: "groq/llama-3.3-70b-versatile" }, // 用更便宜的模型
18 tools: { profile: "messaging" } // 只能聊天
19 }
20 ],
21 bindings: [
22 { channel: "telegram", peer: "自己的user_id", agentId: "work" },
23 { channel: "telegram", agentId: "home" } // 其他人走 home
24 ]
25 }
26}给不同 Channel 设置不同个性
每个 Agent 的工作目录里可以放 SOUL.md 文件,定义 Bot 的个性和行为风格:
bash
bash
1# work Agent 的个性
2echo "你是一个专业的工作助理,回答简洁、重点突出。" > ~/work-workspace/SOUL.md
3
4# home Agent 的个性
5echo "你是一个友善的家庭助理,语气温暖,适合全家人使用。" > ~/.openclaw/workspace-home/SOUL.md恭喜!到这里,OpenClaw超简单系列的进阶配置篇全部完结。你已经掌握了从安装到多 Agent 管理的完整知识体系,可以根据自己的需求灵活组合这些能力了。