openclaw配置飞书机器人血泪史:消息不回、Gateway 挂掉的坑我都踩遍了

0 阅读2分钟

用 OpenClaw 配飞书机器人,群消息不回、Gateway 一直断,排查到怀疑人生😤 最终发现全是配置坑,写出来让大家别再踩了。


场景还原

事情是这样的,我想用 OpenClaw 搞个飞书机器人进群值班,结果:

  • 在群里 @ 机器人 → 完全没反应
  • Gateway 改完配置就挂 → 必须跑 openclaw doctor --fix 才能救回来

离谱的是,状态显示明明连接成功,但就是不吃消息🤷


坑1:飞书消息不回复

症状

机器人在线,但 @ 它完全没反应。

根因

日志里搜到这么一句:

receive events or callbacks through persistent connection only available in self-build & Feishu app

查完才知道 —— 我一开始配的那个 App ID 是快捷版/小程序类型的飞书应用,根本不支持 WebSocket 长连接!

解决

找运维要了正确的机器人 ID(自建应用类型),换上去就搞定了。


坑2:多机器人配置一直失败

症状

想给运营 agent 单独配一个飞书机器人配置,试了无数次一直报错 unknown channel id

根因

飞书多账号不是那么配的!不能用多个 feishu 渠道,得用 accounts 字段。

正确姿势

{
  "channels": {
    "feishu": {
      "defaultAccount": "main",
      "accounts": {
        "main": {
          "appId": "xxxxxxxxxxxxxxxx",
          "appSecret": "abcdefghijklmnopqrstuvwxyz"
        },
        "yunying": {
          "appId": "yyyyyyyyyyyyyy",
          "appSecret": "1234567890abcdef"
        }
      }
    }
  }
}

bindings 这么写:

{
  "bindings": [
    {
      "type": "route",
      "agentId": "main",
      "match": {
        "channel": "feishu",
        "accountId": "main"
      }
    },
    {
      "type": "route",
      "agentId": "yunying",
      "match": {
        "channel": "feishu",
        "accountId": "yunying"
      }
    }
  ]
}

重启 Gateway:

openclaw gateway restart

日志显示两个机器人都连上了:

feishu[yunying]: WebSocket client started
feishu[main]: WebSocket client started

坑3:Gateway 频繁断开

症状

改完配置跑 openclaw gateway restart,Gateway 直接挂掉。再启动就报错,必须跑一遍 openclaw doctor --fix

根因

我一直用 openclaw gateway前台启动,而不是用 LaunchAgent。虽然 LaunchAgent 配了 KeepAlive: true,但前台进程不受它管啊!断开了就死了,不会自动起来。

解决

用 LaunchAgent 方式启动:

# 先停掉前台 Gateway
# 然后用 LaunchAgent 方式
openclaw gateway install
openclaw gateway start

总结

原因解决方案
消息不回App ID 是快捷版,不支持 WebSocket换自建应用的机器人 ID
多账号失败没用到 accounts 字段按上面的正确姿势配
Gateway 断开用前台启动而非 LaunchAgentopenclaw gateway start

有问题的朋友评论区见 🚀