943 字
约 3 分钟
4
OpenClaw 多 Agent 路由:一条消息到底交给谁?

10、OpenClaw 多 Agent 路由:一条消息到底交给谁?

配置多个 Agent 后,最重要的问题来了:

一条飞书消息进来,OpenClaw 怎么知道应该交给哪个 Agent?

理解三个东西就够了:

dmPolicy     → 私聊能不能进
groupPolicy  → 群消息怎么进
bindings     → 进来以后交给谁

其中真正决定 多 Agent 分发 的核心是 bindings


一、dmPolicy:先决定私聊能不能进

dmPolicy 可以理解成机器人的私聊门禁

例如不同策略可以实现:

开放私聊
    ↓
用户可以直接找机器人

配对后使用
    ↓
只有授权用户可以使用

关闭私聊
    ↓
机器人只处理其他指定场景

企业内部测试,可以采用相对方便的访问策略。

涉及生产环境、敏感数据或者模型调用成本时,则应该尽量收紧权限。

所以 dmPolicy 解决的不是:

“消息给哪个 Agent?”

而是:

“这条私聊消息有没有资格继续往里面走?”


二、bindings:决定消息交给哪个 Agent

真正负责多 Agent 路由的是:

bindings

例如:

{
  "bindings": [
    {
      "agentId": "CodeReview",
      "match": {
        "channel": "feishu",
        "accountId": "cli_xxx1",
        "peer": {
          "type": "group",
          "id": "oc_xxx"
        }
      }
    },
    {
      "agentId": "DevOps",
      "match": {
        "channel": "feishu",
        "accountId": "cli_xxx2"
      }
    }
  ]
}

不用死记 JSON,理解几个字段:

channel
→ 消息从哪里来?

accountId
→ 从哪个应用进来?

peer
→ 谁发来的?哪个用户/群?

agentId
→ 最终交给哪个 Agent?

于是整个过程就变成:

收到消息
   ↓
看 channel
   ↓
看 accountId
   ↓
看 user / group
   ↓
匹配 binding
   ↓
找到 agentId
   ↓
交给对应 Agent

三、为什么路由规则要尽量具体?

假设现在有三条规则:

A:feishu
B:feishu + app1
C:feishu + app1 + 群A

当消息恰好来自:

飞书
 ↓
app1
 ↓
群A

显然我们更希望它进入专门为“群 A”准备的 Agent,而不是被一个宽泛的飞书规则接走。

所以配置 bindings 时,一个很重要的思想就是:

特殊业务写精准规则,通用业务再做兜底。

这样多 Agent 越多,路由反而越容易维护。


四、groupPolicy:控制群消息怎么进

除了私聊,还有群聊策略。

例如一个非常常见的问题:

机器人是不是只有被 @ 才工作?

这就是群组策略需要控制的行为。

可以理解成:

群里有人讲话
     ↓
需要 @ 机器人?
   ↙       ↘
  是        否
   ↓         ↓
被@才处理   监听更多群消息

生产环境通常不建议机器人无脑监听所有群消息。

原因很简单:

消息越多 → 模型调用越多 → Token 越多 → 成本越高。

同时还需要考虑群聊内容被机器人处理带来的权限和隐私问题。


五、一张图搞懂整个路由

         飞书消息
            │
            ↓
     ┌────访问控制────┐
     │                │
   私聊              群聊
     ↓                ↓
 dmPolicy        groupPolicy
     └───────┬────────┘
             ↓
          bindings
             ↓
       匹配消息来源
             ↓
 channel → account → peer
             ↓
          agentId
             ↓
           Agent
             ↓
      LLM / Skills / Tools

所以以后再看到这些配置,不要混在一起理解。

只记住:

dmPolicy 管私聊权限,groupPolicy 管群聊行为,bindings 管 Agent 路由。

再进一步:

Policy
= 这条消息能不能进?

Bindings
= 进来以后给谁?

Agent
= 拿到消息以后干什么?

把这三层分清楚,OpenClaw 的多 Agent 架构基本就通了。

OpenClaw 多 Agent 路由:一条消息到底交给谁?
http://www.clxhxhhr.top/posts/418/
作者
clxstart
发布于
2026-09-02
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。