目前我已经完成了 OpenClaw 的基本安装,但是在对话框只有一个,机器人也只绑定到主会话,一次只能处理一个消息。很多时候我在聊天窗口,说 A 任务,然后做了一半,又发了关于 B 任务的指令。一是每次发完消息,如果 OpenClaw 还在处理,剩下的消息要么进入队列、要么看不到(实际还在队列)。两个任务切来切去,感觉体验很不好。
要彻底解决这个问题,实现网上演示的那种对各 Agent、每个对话机器人对应一个 Agent,就需要用到 多智能体路由 技术。 实现的步骤如下:
- 在飞书创建一个新的机器人
- 通过控制台创建新的智能体
- 按照指引将飞书配置上去
- 根据需要创建多个 Agent 和机器人,并对应配置上去(略)
飞书重新安装问题
明明我已经安装好了飞书,系统还是会提示我安装,否则就跳过了添加飞书这步。应该是系统 Bug。这次安装的飞书位置在 ~/.openclaw/extensions/feishu,其实和 ~/.npm-global/lib/node_modules/openclaw/extensions/feishu/ 是一样的,安装的方法不同而已。建议把 .npm-global 的删除。

第二次配置的时候,会把第一次飞书 Channel 给覆盖掉,具体看 channels.feishu 下面的配置。因为我们要实现每个 Agent 对应一个机器人,就必须要有多个 feishu 的机器人配置,而这里只有一个。

以下为 OpenClaw 自己配置的:

正确的如下,将多个机器人配置放在了 channels.feishu.accounts 下面,没办法只能手工改:
"channels": { "feishu": { "enabled": true, "domain": "feishu", "groupPolicy": "allowlist", "accounts": { "main": { "appId": "cli_1", "appSecret": "appSecret1", "botName": "主助手", "groupAllowFrom": [ "ou_id1" ] }, "feishu-work": { "appId": "cli_2", "appSecret": "appSecret2", "botName": "工作助手", "groupAllowFrom": [ "ou_id2" ] }, }, "dmPolicy": "pairing" } }, "bindings": [ { "agentId": "main", "match": { "channel": "feishu", "accountId": "main" } }, { "agentId": "work", "match": { "channel": "feishu", "accountId": "feishu-work" #要与前面配置对应 } } ],
注意事项:
- 名称一定要对应,agentId 对应,accountId 也要对应
- ou_id 可以是相同(同一个人名下建立多个机器人),也可以不同(我就是这么干的)

效果就是这样。

回到 Gateway 的聊天窗口,就可以切换聊天的对象,我这有 2 个。(应该也有相关的配置的,找到之后更新)

批量增加机器人
一次性申请了 6 个机器人,确定好 Agent 的名称,让 OpenClaw 帮我完成配置。
- BandBusiness,业务 Agent
- BandProjectMgr,项目经理 Agent
- BandProductMgr,产品经理 Agent
- BandSysDesign,系统设计 Agent
- BandCoder,系统开发 Agent,严格来说,还可以继续拆分为前端、后端、安卓、iOS、鸿蒙等
BandTester,系统测试 Agent
检查了一下,配置是对的,Agent 的职责还做了扩展。重启 openclaw gateway restart 没问题。接下来需要给每个机器人添加事件,添加配对。


提示 应用未建立长链接。原因是手工修改 openclaw.json 增加飞书渠道,并没有通过 openclaw channels add 增加。
发现在 ~/.openclaw/feishu/dedup 少了些内容,但这并没有什么影响。
实测的总结是:必须在控制台完成对飞书机器人添加,才能起作用。而 OpenClaw 生成的 openclaw.json 还是对的,能让我的新机器人与 Agent 对应上。加上之后,还需要调整一下 openclaw.json,删除错误的配置。
于是放心把其他的机器人都通过控制台添加上去,任务完美完成。
接下来我就可以创建一批智能体和机器人,并且让他们协同起来了。
缺点
飞书创建机器人的过程比较复杂,流程繁琐。好在我操作一遍之后,就可以按照之前的路径一直这样做下去。
多个飞书机器人名称包含大小写的问题
多个飞书账号时,名称中如果包含大小写,会遇到无法找到的问题。原因是飞书在处理的时候都改成了小写。为了避免类似问题,我将所有飞书的 accountId 改为小写。
多个 Agent 名称包含大小写的问题
当多个 Agent 相互调用的时候,我发现第一个 Agent 调用第二个 Agent 失败,仔细看聊天记录,发现 OpenClaw 把 Agent 的 id 全改为了小写。同样,为了规避此类问题,建议所有的 Agent 名称都改为小写。
还可以在 Agent 的 workspace 名称发现一些端倪。
比如我的 Agent 名称为 BandBusiness,系统自动分配的 workspace 名称为 ~/.openclaw/bandbusiness,全改为小写了。

