前言
最近用 OpenClaw 对接飞书机器人,遇到了两个典型问题:群消息无响应和 Gateway 频繁断开。折腾了一阵子终于搞定,记录一下过程,希望能帮到同样踩坑的朋友。
遇到的问题
飞书消息不回复
在群里 @ 机器人后完全没反应。起初怀疑网络或连接状态,但显示明明在线。
Gateway 频繁断开
每次执行 openclaw gateway restart 甚至什么都不做,Gateway 都会断连。再次启动会报错,必须运行 openclaw doctor --fix 重装才能恢复,严重影响使用体验。
原因分析
飞书机器人类型不对
日志里有一行关键报错:
receive events or callbacks through persistent connection only available in self-build & Feishu app
这说明之前配置的 App ID(yyyyyyyyyyyyyy)属于快捷版或小程序类型,这类应用不支持 WebSocket 长连接收消息。换成运维提供的标准应用 ID(xxxxxxxxxxxxxxxx)后恢复正常。
多机器人配置方式错误
想给运营 agent(yunying)单独配一个飞书机器人,多次尝试都报 unknown channel id。查阅文档后发现,飞书多账号并非通过开多个渠道实现,而是需要在配置中使用 accounts 字段。
正确的 channels 配置如下:
{"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 断开根源
日志显示 Gateway 收到 SIGTERM 后正常关闭,但 LaunchAgent 没有自动重载。原因是之前一直用 openclaw gateway 在前台启动,这绕过了 LaunchAgent 的管理。虽然 LaunchAgent 配置了 KeepAlive: true,但前台进程不受其控制,断开后就无法自动拉起。
解决方案
修复多账号配置
更新 ~/.openclaw/openclaw.json 后重启 Gateway:
openclaw gateway restart
日志确认两个机器人均已连接:
feishu[yunying]: WebSocket client started feishu[main]: WebSocket client started
启用自动守护
停止前台运行的 Gateway,改用 LaunchAgent 管理:
# 先停掉前台运行的 Gateway
openclaw gateway stop
# 使用 LaunchAgent 方式启动
openclaw gateway install
openclaw gateway start
此后 Gateway 将受系统守护进程管理,异常断开会自动重启,无需手动干预。
经验总结
- 飞书多账号务必使用
accounts字段配置,不要试图开启多个渠道。 - Gateway 启动请使用
openclaw gateway start,确保由 LaunchAgent 接管。

