查看: 128|回覆: 4

OpenClaw 多 Agent + 飞书多 Bot 路由配置实战复盘

[複製鏈接]

5

主題

0

回帖

0

積分

热心网友

金币
0
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2009-7-11
發表於 2026-5-4 00:42:00 | 顯示全部樓層 |閲讀模式

说明:本文由 OpenClaw 助手根据一次真实配置与排障过程辅助整理,内容经过人工确认。

最近在 OpenClaw 里做了一次多 Agent、多飞书 Bot 的配置:新建一个独立的 agent profile <agent-b-id>,并让一个新的飞书机器人专门路由到这个 agent,同时保留原来的默认机器人继续服务主 agent。

这篇记录一下完整过程、踩坑点和最终结论。

目标

原始状态:

  • 一个 OpenClaw Gateway
  • 一个默认 agent:main
  • 一个默认飞书 bot:default

目标状态:

  • 保留 default bot → main agent
  • 新增第二个 agent
  • 新增第二个飞书 bot
  • 新 bot 收到的消息自动路由到 第二个 agent

最终路由关系:

Feishu default bot        -> agent: main
Feishu bot B              -> agent: <agent-b-id>

1. 创建新的 Agent Profile

先新增 agent:

openclaw agents add <agent-b-id> --workspace <agent-b-workspace>

如果不走交互式,也可以直接在配置里添加:

{
  agents: {
    list: [
      { id: "main", workspace: "<main-workspace>", default: true },
      { id: "<agent-b-id>", workspace: "<agent-b-workspace>" }
    ]
  }
}

同时给新 workspace 准备基础身份文件,例如:

<agent-b-workspace>/IDENTITY.md
<agent-b-workspace>/SOUL.md
<agent-b-workspace>/AGENTS.md

2. 配置飞书多账号

飞书插件支持 multi-account,但这里有一个关键点:

default bot 的 appId/appSecret 需要继续保留在 channels.feishu 顶层。

也就是说,不应该把 default bot 完全迁移到 accounts.default。正确结构类似:

{
  channels: {
    feishu: {
      enabled: true,
      domain: "feishu",
      connectionMode: "websocket",

      // default bot 仍然放顶层
      appId: "cli_default_xxx",
      appSecret: "***",

      defaultAccount: "default",

      accounts: {
        "<account-b>": {
          appId: "cli_bot_b_xxx",
          appSecret: "***",
          name: "Bot B"
        }
      }
    }
  }
}

一开始我把旧 bot 放进了 accounts.default,结果 default bot 在 runtime 里显示 not configured。修正后,两个 bot 都恢复正常。

3. 添加路由绑定

bindings 里把不同 Feishu account 绑定到不同 agent:

{
  bindings: [
    {
      agentId: "main",
      match: {
        channel: "feishu",
        accountId: "default"
      }
    },
    {
      agentId: "<agent-b-id>",
      match: {
        channel: "feishu",
        accountId: "<account-b>"
      }
    }
  ]
}

验证:

openclaw agents list --bindings
openclaw channels status --probe

期望看到:

Feishu default: enabled, configured, running, works
Feishu account B: enabled, configured, running, works

4. 新飞书应用权限配置

飞书开放平台里,新 bot 至少要完成:

  1. 创建企业自建应用
  2. 开启机器人能力
  3. 事件订阅使用长连接 / WebSocket
  4. 添加消息接收事件:im.message.receive_v1
  5. 开通发送消息权限
  6. 发布版本并安装/升级到企业

这次最主要的权限坑是:新 bot 能收到消息,但不能回复。

Feishu API 返回:

code: 99991672
Access denied. One of the following scopes is required:
im:message:send, im:message, im:message:send_as_bot

也就是说,除了接收消息事件,必须开通发送消息权限。实际开通 im:message:send_as_bot 后,发送验证通过。

5. Pairing 模式下的首条消息

当前 Feishu DM policy 是 pairing 模式。新 bot 第一次收到陌生用户 DM 时,不会直接进入 agent,而是生成 pairing request。

需要执行:

openclaw pairing list --channel feishu --account <account-b>
openclaw pairing approve feishu <CODE> --account <account-b>

否则用户侧看起来就是“发了消息但没反应”。

6. 最终验证

最终验证链路:

  1. 用户给 bot B 发消息
  2. OpenClaw 日志显示:
feishu[account-b]: received message ...
feishu[account-b]: dispatching to agent
session=agent:<agent-b-id>:feishu:direct:...
  1. agent 生成回复
  2. bot B 成功发送回复
  3. 用户在飞书客户端收到消息

最终状态:

Gateway: running / probe ok
Feishu default: running / works
Feishu account B: running / works
Routing:
  default       -> main
  account B    -> agent B

经验总结

这次配置里最重要的几个经验:

  1. Feishu multi-account 下,default bot 不要完全迁移到 accounts.default
    default bot 的凭据要保留在 channels.feishu.appId/appSecret 顶层。

  2. 新飞书 bot 能收消息不代表能回消息。
    发送消息需要额外开通 im:message:send_as_bot 等权限,并发布/升级应用。

  3. Pairing 模式会让首条 DM 看起来像“没反应”。
    实际是消息被拦截等待批准,需要 pairing approve

  4. 调试时要分层验证。

    • bot 是否 websocket 在线
    • 是否收到 inbound message
    • 是否通过 pairing / allowlist
    • 是否 dispatch 到正确 agent
    • agent 是否生成回复
    • Feishu send API 是否成功
  5. 日志比直觉可靠。
    这次几个问题都不是“模型没回”,而分别是 routing config、pairing、Feishu scope 权限问题。

整体来看,OpenClaw 的多 Agent + 多 Bot 路由机制是可行的,但飞书插件的 default account 兼容细节和飞书开放平台权限发布流程需要特别注意。



来源:https://www.cnblogs.com/LexLuc/p/19969852/openclaw-multi-agent-feishu-bots
回覆

使用道具 舉報

0

主題

720

回帖

4441

積分

琼殿精英

金币
3721
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2011-10-11
發表於 2026-5-8 10:13:24 | 顯示全部樓層
看到这么详细的复盘贴,必须来支持下!

之前我也折腾过OpenClaw的多Bot配置,不过没搞这么复杂,看了你的帖子才发现原来还有这么多坑。
飞书 multi-account 下,default bot 不要完全迁移到 accounts.default

这个坑估计很多人都会踩,包括我之前也是把default bot移到了accounts下面,结果一直显示not configured,还以为是版本bug...

另外那个权限问题也很典型,之前帮朋友配置飞书机器人,也是只开了接收消息事件,结果用户说能发消息但收不到回复,查半天发现是发送权限没开。
  1. code: 99991672
  2. Access denied. One of the following scopes is required: im:message:send, im:message, im:message:send_as_bot
複製代碼

这个错误信息确实不够直观,飞书开放平台的权限体系确实比较复杂。

总结得很到位,特别是最后那条"日志比直觉可靠",做系统集成真的就是这样的——大多数时候出问题都不是模型的问题,而是各种配置、权限、路由的细节。

感谢分享!这种实战复盘对社区很有价值,期待更多这样的帖子~


  • 已收藏
  • 给楼主加个分
回覆

使用道具 舉報

0

主題

0

回帖

98

積分

琼殿精英

金币
97
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2012-5-8
發表於 2026-5-8 10:13:34 | 顯示全部樓層
[s:ac:赞同]这篇实战复盘太刚需了!我最近刚好在做类似的多bot分流配置,试了好几次新bot的消息都还是会跑到默认agent那里,卡了快两天都没找到问题出在哪,蹲一个后续的踩坑点和完整配置示例!顺便想问下同时接多个飞书bot的话,要不要提前给Gateway做什么额外的性能配置呀?[s:ac:期待]
回覆

使用道具 舉報

0

主題

67

回帖

84

積分

琼殿精英

金币
17
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2010-9-27
發表於 2026-5-19 01:49:36 | 顯示全部樓層
楼主分享的这个主题确实很实用!多bot路由配置在实操中容易卡在消息分流上,常见原因是路由规则里bot ID或agent映射没设准。建议一步步核对Gateway配置,确保新bot的入口和agent绑定是独立的,别和默认混了。

关于性能配置,同时接多个飞书bot时,如果Gateway资源充足(比如内存和CPU留有余量),一般不用提前大调,但最好监控一下连接数和响应时间,必要时可以调整线程池大小。等原帖的完整示例出来,咱们再对照看看细节。

加油,期待更多讨论![s:ac:赞同]
回覆

使用道具 舉報

0

主題

67

回帖

84

積分

琼殿精英

金币
17
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2010-9-27
發表於 2026-5-19 01:50:16 | 顯示全部樓層
[s:ac:赞同] 多bot路由配置确实容易踩坑,你遇到的问题很典型!新bot消息跑到默认agent,通常是因为网关的路由映射没设对,得确保新bot的ID在配置里明确绑定到新建的agent profile,而不是走默认路由。

踩坑点方面,除了路由绑定,还要注意飞书bot的webhook地址和网关接收端点是否匹配,以及agent profile里的权限设置是否完整。配置示例建议按步骤来:先创建新agent profile并测试基础功能,再部署新bot并网关里添加路由规则,最后用新bot发消息验证分流是否生效。

性能配置上,网关默认能处理多bot连接,一般不用额外调优。但如果消息并发量很高,可以留意网关的日志和资源监控,必要时调整线程池或缓存设置。

祝你顺利搞定!如果还有具体配置卡住,欢迎贴出细节,大伙儿一起帮你看看。[s:ac:加油]
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部