首页openclaw教程中心 › 多智能体路由教程

多智能体路由教程

什么是多智能体

默认情况下,OpenClaw 运行一个智能体(agentId = main),所有渠道的消息都由它处理。但在实际使用中,你可能需要多个"大脑"来处理不同场景: - 一个智能体负责日常闲聊,另一个专注深度工作 - 不同联系人路由到不同智能体 - 家庭群组用一个专用智能体,工作群用另一个 多智能体架构就是在一个 Gateway 上运行多个独立智能体,每个智能体拥有独立的: - 工作区(workspace):独立的 AGENTS.md、SOUL.md、MEMORY.md 等配置 - 会话(sessions):独立的对话历史 - 认证和权限:独立的工具权限和沙箱配置 它们共享同一个 Gateway 进程、同一套渠道连接和同一个模型配置。

单智能体模式(默认)

安装 OpenClaw 后,默认只有一个智能体 main,它的工作区就是: `` ~/.openclaw/workspace/ ` 所有渠道的消息都路由到 main 智能体。对大多数用户来说,单智能体模式完全够用。 你可以通过以下命令确认当前的智能体列表: `bash openclaw agents list ` 输出类似: ` Agents: main (default) workspace: ~/.openclaw/workspace sessions: ~/.openclaw/sessions `

添加新智能体

当你需要第二个"大脑"时,使用交互式向导创建:
`bash openclaw agents ` 向导会引导你完成以下步骤: 1. 输入智能体 ID:给新智能体起个名字,比如 workfamilyassistant 2. 选择模板:可以从空白开始,也可以复制现有智能体的配置 3. 配置工作区:自动创建独立的工作区目录 创建完成后,新智能体的文件结构: ` ~/.openclaw/ ├── workspace/ # main 智能体的工作区 ├── sessions/ # main 智能体的会话 └── agents/ └── work/ # 新智能体 "work" ├── workspace/ # work 的独立工作区 │ ├── AGENTS.md │ ├── SOUL.md │ └── MEMORY.md └── sessions/ # work 的独立会话 ` 你可以分别编辑每个智能体的 SOUL.md 来定义不同的人格: `bash

编辑 main 智能体的人设

nano ~/.openclaw/workspace/SOUL.md

编辑 work 智能体的人设

nano ~/.openclaw/agents/work/workspace/SOUL.md
`

Bindings 路由规则

有了多个智能体后,关键问题是:哪条消息发给哪个智能体? 这就是 Bindings(绑定)的作用。Bindings 是在
openclaw.json 中定义的路由规则,决定消息如何分发。

路由匹配优先级

Bindings 的匹配遵循最具体者优先原则: 1. peer 匹配(最高优先级):指定某个联系人/群组路由到某个智能体 2. 渠道匹配:指定某个渠道的所有消息路由到某个智能体 3. 默认匹配(最低优先级):没有匹配到任何规则时,使用默认智能体

配置示例

~/.openclaw/openclaw.json 中配置 Bindings: `json { "bindings": [ { "agentId": "work", "channel": "telegram", "comment": "Telegram 上的所有消息都给 work 智能体" }, { "agentId": "family", "channel": "whatsapp", "peer": "家庭群", "comment": "WhatsApp 家庭群专用智能体" }, { "agentId": "main", "comment": "其他所有消息给 main(默认)" } ] } `

匹配字段说明

| 字段 | 说明 | 示例 | |------|------|------| |
agentId | 目标智能体 ID | "work""family" | | channel | 渠道类型 | "telegram""whatsapp""discord" | | peer | 联系人/群组标识 | 电话号码、群组名、用户 ID | | accountId | 渠道账号 ID | 多账号场景下区分不同账号 | | comment | 备注说明 | 方便自己记住这条规则的用途 |

匹配规则详解

当一条消息到达时,Gateway 按以下顺序查找匹配的 Binding:
` 消息到达 → 遍历 bindings 数组 → 检查 peer 是否匹配(如果定义了) → 检查 channel 是否匹配(如果定义了) → 检查 accountId 是否匹配(如果定义了) → 所有定义的字段都匹配 → 使用该 binding 的 agentId → 没有字段定义(空 binding)→ 作为默认路由 ` 规则越具体(定义的字段越多),优先级越高。

实用场景

场景一:WhatsApp 日常 + Telegram 深度工作

`json { "bindings": [ { "agentId": "deep-work", "channel": "telegram", "comment": "Telegram 用于深度工作,智能体更专注、更严谨" }, { "agentId": "main", "comment": "WhatsApp 和其他渠道用默认智能体,轻松日常" } ] } ` deep-work 智能体的 SOUL.md 可以设置为更专业、更严谨的风格: `markdown

SOUL.md (deep-work)

你是一个专注的工作助手。回答要精确、有条理。 不闲聊,不开玩笑。每次回答都要有明确的行动建议。
`

场景二:一个号码服务多人

如果你用一个 WhatsApp 号码同时服务多个客户,可以按联系人路由:
`json { "bindings": [ { "agentId": "client-a", "channel": "whatsapp", "peer": "+8613800138001", "comment": "客户 A 专用智能体" }, { "agentId": "client-b", "channel": "whatsapp", "peer": "+8613900139001", "comment": "客户 B 专用智能体" }, { "agentId": "main", "comment": "其他人用默认智能体" } ] } ` 每个客户的智能体可以有独立的记忆和上下文,互不干扰。

场景三:家庭群组专用智能体

`json { "bindings": [ { "agentId": "family-bot", "channel": "whatsapp", "peer": "我的家庭群", "comment": "家庭群专用,语气亲切友好" }, { "agentId": "main" } ] } `

场景四:每个渠道一个 Bot

如果你同时运行 Discord Bot 和 Telegram Bot,可以让它们使用不同的智能体:
`json { "bindings": [ { "agentId": "discord-bot", "channel": "discord", "comment": "Discord 服务器专用" }, { "agentId": "telegram-bot", "channel": "telegram", "comment": "Telegram 频道专用" }, { "agentId": "main" } ] } `

按智能体配置沙箱和工具权限

多智能体的一个重要优势是可以按智能体独立配置安全策略

沙箱模式

openclaw.json 中,可以为每个智能体设置不同的沙箱模式: `json { "agents": { "main": { "sandbox": { "mode": "off" } }, "untrusted": { "sandbox": { "mode": "docker", "image": "openclawai/sandbox:latest" } } } } ` 沙箱模式选项: | 模式 | 说明 | |------|------| | off | 不使用沙箱,直接在主机执行(默认) | | docker | 在 Docker 容器中执行,完全隔离 |

工具权限

可以为每个智能体配置不同的工具白名单/黑名单:
`json { "agents": { "main": { "tools": { "allow": ["*"], "deny": [] } }, "restricted": { "tools": { "allow": ["web_search", "read", "memory_search"], "deny": ["exec", "write", "browser"] } } } } ` 这样 restricted 智能体只能搜索网页、读取文件和搜索记忆,不能执行命令、写文件或控制浏览器。

实际建议

- 日常智能体:权限宽松,方便使用 - 面向外部用户的智能体:开启沙箱 + 严格工具白名单 - 自动化任务智能体:只开放必要的工具权限

路径速查

多智能体模式下,各种文件的路径规律: | 路径 | 说明 | |------|------| |
~/.openclaw/openclaw.json | Gateway 主配置(包含 bindings) | | ~/.openclaw/workspace/ | main 智能体的工作区 | | ~/.openclaw/sessions/ | main 智能体的会话 | | ~/.openclaw/agents//workspace/ | 其他智能体的工作区 | | ~/.openclaw/agents//sessions/ | 其他智能体的会话 | 常用管理命令: `bash

列出所有智能体

openclaw agents list

创建新智能体(交互式)

openclaw agents

查看某个智能体的状态

openclaw agents status work

删除智能体

openclaw agents remove work
`

注意事项

1. 智能体 ID 命名:使用小写字母和连字符,如
deep-workfamily-bot 2. 默认路由:bindings 数组中至少保留一个没有 channel/peer 限定的条目作为默认路由 3. 配置热重载:修改 openclaw.json` 后,Gateway 会自动检测变更并重新加载(如果开启了热重载模式) 4. 资源消耗:多个智能体共享同一个 Gateway 进程,不会显著增加内存或 CPU 消耗 5. 会话隔离:不同智能体的会话完全隔离,互相看不到对方的对话历史

小结

多智能体是 OpenClaw 的一个强大特性,让你可以用一个 Gateway 实例满足多种场景需求。核心要点: - 每个智能体有独立的工作区、会话和权限配置 - Bindings 路由规则按"最具体者优先"匹配 - 可以按渠道、联系人、账号灵活路由 - 沙箱和工具权限可以按智能体独立配置 --- #OpenClaw多智能体 #路由配置 #Bindings #沙箱隔离 #龙虾技能库
#多智能体#路由配置#进阶教程#Bindings#沙箱

📚 相关教程

沙箱隔离专题教程进阶
深入了解 OpenClaw 的沙箱隔离机制,学会使用 Docker 容器隔离执行环境,掌握沙箱、工具策略和提权三者的区别与配合使用。
浏览器自动化专题教程进阶
掌握 OpenClaw 的浏览器工具,学会控制 Chromium 实例进行网页导航、点击、截图、文本提取等自动化操作。
远程代码执行教程进阶
掌握 OpenClaw 的代码执行工具,了解 exec、code_execution 和 process 三大工具的区别与用法,学会配置执行审批机制保障安全。
← Hooks 事件脚本专题教程移动节点与硬件集成教程 →