OpenClaw 多智能体路由方案实现不同业务处理

0 阅读4分钟

一、需求场景分析

需求,我需要让一个 OpenClaw(小龙虾)处理三个(根据自己实际情况而定)不同的任务:写公众号文章、整理素材、日常对话;且互相不干扰,最好还能搭配不同的 AI模型(文本模型和生图模型)。

解决方案:配置多智能体路由(Multi-Agent Routing)

在一个 OpenClaw 网关(Gateway)下,创建三个独立的智能体,并通过飞书的不同对话场景(私聊、群聊)将任务路由给对应的智能体。这样每个智能体专注自己的职责,互不干扰。

下面上实操,直接开始配置。

前提是你已经走通了小龙虾和飞书的对话,没有安装部署的可以看我前面发的内容。

二、创建群聊

在飞书App中,手动创建三个群聊,并为其命名以区分用途。之所以用手机创建是因为要拿到群ID,只有手机上能看到。

创建群聊流程

拉机器人OpenClaw(小龙虾)进群流程:

**这里注意:**拉机器人进群用专门的入口,不是普通邀请“真人”进群的方式,别搞错了。

三、修改配置文件

找到 openClaw 在你电脑上的配置文件 openclaw.json ,mac电脑的路径是这个 ~/.openclaw/openclaw.json ,打开找到 agents 节点下的 list 节点,修改为下面这样。

3.1 配置智能体

"list": [
      {
        "id": "assistant_xiaosheng", // 自定义智能体id
        "name": "日常助手",
        "default": true, // 设为默认智能体
        "workspace": "/Users/codexiaosheng/.openclaw/workspace"
      },
      {
        "id": "writergzh_xiaosheng",
        "name": "公众号写手",
        "workspace": "/Users/codexiaosheng/.openclaw/workspace-writer" // 每个智能体单独指定工作空间
      },
      {
        "id": "collector_xiaosheng",
        "name": "素材处理员",
        "workspace": "/Users/codexiaosheng/.openclaw/workspace-collector"
      }
    ]

这里的工作空间文件夹不需要我们手动创建,配置文件生效后会自动创建。

修改好记得保存一下。

现在回到手机飞书群里,挨个点开到下图这个页面,把群ID复制出来,多个群的不要搞混了,自己记好。

接着继续在 openclaw.json 中找到 bindings 节点,修改为如下内容。

3.2 配置智能体路由

"bindings": [
    // 绑定规则:将飞书的不同对话路由到不同的智能体
    // 示例1:将飞书群聊「公众号选题群」的消息路由给 writer 智能体
    {
      "agentId": "writergzh_xiaosheng",
      "match": {
        "channel": "feishu",
        "peer": { "kind": "group", "id": "你刚刚复制的群ID" } // 替换为您的飞书群聊ID
      }
    },
    // 示例2:将飞书群聊「素材收集群」的消息路由给 collector 智能体
    {
      "agentId": "collector_xiaosheng",
      "match": {
        "channel": "feishu",
        "peer": { "kind": "group", "id": "你刚刚复制的群ID" }
      }
    },
    // 示例3:将飞书群聊「日常对话群」的消息路由给 assistant_xiaosheng 智能体
    {
      "agentId": "assistant_xiaosheng",
      "match": {
        "channel": "feishu",
        "peer": { "kind": "group", "id": "你刚刚复制的群ID" }
      }
    },
    // 4. 默认规则:所有其他飞书消息(私聊、未匹配的群聊) -> assistant_xiaosheng 智能体 (保留此条)
    {
      "agentId": "assistant_xiaosheng",
      "match": {
        "channel": "feishu",
        "peer": { "kind": "direct", "id": "你刚刚复制的群ID" } // 我这里把[日常对话群]作为默认
      }
    }
  ]

3.3 配置群里是否需要@才可响应

继续在 openclaw.json 中找到 channels 节点下的 feishu 节点,把 groupPolicy 的值改为 allowlist ,默认它不会对任何群进行消息回复,这里改为只有我们配置的群才会回复。

"groupPolicy": "allowlist", // 只允许 groupAllowFrom 列表中指定的群聊
"groupAllowFrom": ["你的群组ID", "你的群组ID", "你的群组ID"], // 填入您三个业务群聊的ID
 "groups":{
    "你的群组ID":{
    "requireMention":false // 想要哪个群无需@即可响应 默认都需要@才可响应
    }
}

groupPolicy 的作用

channels.feishu.groupPolicy 是控制飞书群聊访问的总开关,有三个选项:

  • "open":允许机器人接收所有群聊的消息(但仍可能受 requireMention 等规则限制)。

  • "allowlist":只允许 groupAllowFrom 列表中指定的群聊。

  • "disabled":禁用所有群组消息。这是最严格的设置,会直接丢弃所有来自群聊的消息。

3.4 重启OpenClaw网关

这一步一定要记得,只要 openclaw.json 发生改变,要想生效就一定要重启网关,在终端执行如下命令即可:

openclaw gateway restart

等待重启完成,没有报错,就可以在飞书群里测试了。

一般报错也都是语法错误(会给出行号),全程不管是冒号还是逗号,都是英文的,这是容易犯错的地方;还有一个就是括号没对齐,有头无尾的情况,自己检查下就能解决。

四、总结

上面的配置已经实现了多智能体路由核心功能,但没有做个性化配置,比如我公众号写作群想用 Gemini api来写,日常交流群用 deepseek 就足够了;还希望不同群我对小龙虾的称呼不同,也就是我可以给不同的智能体起一个特定的名字,这样他在完成任务做汇报时我通过名字就知道它给我干了什么。

当然,如果是生图、生视频,一样的道理。就看你的业务多不多了,多的话区分出来是最好的,下篇就写这个。

下篇:OpenClaw 多智能体配置不同的模型和个性化设置

大家好,我是小生,从程序员转行做自媒体,每天学习一点 AI 技术。