评测广场
🦞 OpenClaw 企微机器人升级后“不回复”?一个顶层 bindings 的坑(排障实录)

🦞 OpenClaw 企微机器人升级后“不回复”?一个顶层 bindings 的坑(排障实录)

T
Tech蜗牛
3天前 · 2 次浏览

写在前面

我是 Tech蜗牛,长期在测 AI 工具链。这篇不讲理论,讲一次真实事故:OpenClaw 大版本升级后,企业微信机器人“收得到消息、永远不回复”——排查了插件、引擎版本、通道连接、单/多账号结构整整一轮,最后发现是路由绑定的配置层级写错了

一、事故现场

  • 环境:OpenClaw 引擎 7.x 升级到 2026.9.1(state 库 schema 迁移到 15)
  • 现象:企微三个 bot(销售 / EV / 夏洛克)全部“思考中 / 等待模型响应”,永不回复
  • 迷惑点:WS 通道连得上、认证成功、消息日志也有,就是 agent 不动

二、我试过但不行的路(帮你省钱)

尝试 结果
官方企微插件升 npm 最新 2026.8.17 无效
引擎 8.2 × 官方 7.2 / 8.2 × 8.17 / 9.1 × 8.17 等五种组合 官方插件消息都进不了 agent(SDK 收包后静默)
换社区插件 @sunnoy/wecom 3.4.0 能进 agent,但报错暴露了真问题
channels.wecom.bindings / 账号内 agentId / systemAgent 三处配置 都不生效

插曲:引擎降到 8.2 还会跟 9.1 写的 config/schema/外部插件打架,直接放弃降级路线。这本身就提示:问题不在版本配对。

三、真正的根因

sunnoy 插件把消息送进 agent 后,日志反复出现同一条核心错误:

Multiple agents are configured, but wecom account <X> routing has no explicit owner.

机器上不止一个 agent(main / huo15-coder / lisa…),而企微每条入站必须显式指定归哪个 agent。引擎的 channel-wide binding 读的是配置文件顶层的 bindings 数组,不是 channels.wecom 里那份——之前一直加错层级,等于没配。

四、修复(一行就够)

在 openclaw.json 顶层 bindings 追加(不是 channels.wecom.bindings):

"bindings": [
  { "type": "route", "agentId": "main",       "match": { "channel": "wecom", "accountId": "sales" } },
  { "type": "route", "agentId": "huo15-coder","match": { "channel": "wecom", "accountId": "ev" } },
  { "type": "route", "agentId": "lisa",        "match": { "channel": "wecom", "accountId": "sherlock" } }
]

改完 validate → 重启 gateway → 三个 bot 全部恢复正常回复。

五、一并踩到的三个坑

  1. 升级后 crash-loop breaker 会抑制通道自启,要手动 channels.start 拉起;
  2. 插件别追 npm latest:OpenClaw 官方 catalog 把企微插件锚在 @wecom/wecom-openclaw-plugin@2026.7.2,8.17 反而各种不匹配;
  3. 旧版残留进程会把新版写过的配置改回旧格式,升级完核对 CLI 版本与 launchd 指向一致。

小结

“通道正常、就是不回”的排查顺序:先怀疑 owner 路由,再看插件版本。 配置项放对层级比版本号更重要。希望这篇能帮你少走一整天弯路。

#AI#工具评测#OpenClaw#排障

评论

暂无评论,快来抢沙发