用 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 断开 | 用前台启动而非 LaunchAgent | 用 openclaw gateway start |
有问题的朋友评论区见 🚀