openclaw 对接完飞书群机器人配置踩坑记:消息不回、Gateway 断开问题排查

openclaw 对接完飞书群机器人配置踩坑记:消息不回、Gateway 断开问题排查

前言

用 OpenClaw 配飞书机器人,踩了两个坑:群消息不回、Gateway 总是断开。排查了好一阵子,总算搞定了,记录一下希望能帮到遇到同样问题的朋友。


发现问题

飞书消息不回复

在飞书群里 @ 了机器人,完全没反应。一开始以为是网络不好或者机器人没上线,但状态显示明明是连接着的,这就奇怪了。

Gateway 频繁断开

每次改完配置跑 openclaw gateway restart,或者根本什么都没干,Gateway 说断就断。再想启动就报错,必须跑一遍 openclaw doctor --fix 重新安装才能用。太影响使用了。


查看原因

飞书机器人 ID 搞错了

翻日志看到这么一句:

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"。后来翻 OpenClaw 官方文档才发现,飞书多账号不是那么配的,得用 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 断开的原因

日志显示 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 自动重启

简单说就是别跑 openclaw gateway,改用 LaunchAgent:

# 先停掉前台运行的 Gateway# 然后用 LaunchAgent 方式启动 openclaw gateway install openclaw gateway start 

以后 Gateway 就会受 LaunchAgent 管理,断开会自动重启,不用每次手动搞了。


踩过的坑

总结一下:

  1. 飞书多账号要用 accounts 字段配,别想着开多个渠道
  2. Gateway 一定要用 openclaw gateway start 启动,别直接跑 openclaw gateway

有其他问题欢迎评论区聊聊。

Read more

【Python库和代码案例:第一课】Python 标准库与第三方库实战指南:从日期处理到 Excel 操作

【Python库和代码案例:第一课】Python 标准库与第三方库实战指南:从日期处理到 Excel 操作

🎬 个人主页:艾莉丝努力练剑 ❄专栏传送门:《C语言》《数据结构与算法》《C/C++干货分享&学习过程记录》 《Linux操作系统编程详解》《笔试/面试常见算法:从基础到进阶》《Python干货分享》 ⭐️为天地立心,为生民立命,为往圣继绝学,为万世开太平 🎬 艾莉丝的简介: 文章目录 * 1 ~> 使用库:标准库和第三方库 * 2 ~> 标准库 * 2.1 认识标准库 * 2.1.1 理论 * 2.2 使用 import 导入模块 * 2.2.1 理论 * 2.2.2 最佳实践 * 2.3

By Ne0inhk
2026 Python+AI 学习方向拆解:3 个高性价比赛道,新手优先学

2026 Python+AI 学习方向拆解:3 个高性价比赛道,新手优先学

欢迎文末添加好友交流,共同进步! “ 俺はモンキー・D・ルフィ。海贼王になる男だ!” * 前言 * 一、AI数据处理与分析赛道 * 1.1 为什么选择这个方向? * 1.2 核心技能树 * 1.3 实战代码示例 * 数据清洗与预处理 * 1.4 学习路线图 * 二、AI应用开发赛道(LLM + RAG) * 2.1 为什么选择这个方向? * 2.2 RAG技术架构流程 * 2.3 实战代码:构建RAG问答系统 * 2.4 学习路线图 * 三、AI自动化办公赛道 * 3.1 为什么选择这个方向? * 3.2 自动化办公应用场景 * 3.3 实战代码示例

By Ne0inhk

VS Code 中的 Python 代码格式化插件

在 VS Code 中,有几款非常出色的 Python 代码格式化插件可以帮助你保持代码的整洁与规范。下面这个表格整理了目前主流的几款工具,你可以根据它们的特点进行选择。 工具名称核心特点风格理念推荐适用场景Black开箱即用,几乎无需配置;强制统一的代码风格,可预测性强。“无妥协”的格式化器。它决定格式,讨论空间小,保证所有代码风格一致。团队协作项目;希望零配置快速上手的开发者;追求极简和一致性。autopep8基于 PEP 8 规范,主要修复代码风格问题(如缩进、空格)。相对保守,专注于修复而非重新排版。希望代码严格遵循 PEP 8;对现有代码进行温和的格式化修复。yapf高度可定制,可以模仿多种代码风格;格式化策略更“激进”,会重新排版代码。“自成风格”。目标是通过调整代码来达到最佳可读性,而非严格遵循某一规范。需要高度自定义格式化规则;项目有特殊的代码风格要求。 🔧 如何安装与配置 选好工具后,只需简单几步就能在 VS Code 中启用它们。

By Ne0inhk
Python开发从入门到精通:异步编程与协程

Python开发从入门到精通:异步编程与协程

《Python开发从入门到精通》设计指南第二十一篇:异步编程与协程 一、学习目标与重点 💡 学习目标:掌握Python异步编程的基本概念和方法,包括协程、任务调度、事件循环等;学习asyncio、aiohttp等核心库的使用;通过实战案例开发异步应用程序。 ⚠️ 学习重点:协程的定义与使用、任务调度、事件循环、asyncio库、aiohttp库、异步编程实战。 21.1 异步编程概述 21.1.1 什么是异步编程 异步编程是一种并发编程方式,通过非阻塞的操作提高程序的执行效率。在异步编程中,程序可以在等待I/O操作完成时继续执行其他任务,而不需要阻塞等待。 21.1.2 异步编程的优势 * 提高执行效率:在等待I/O操作完成时,程序可以继续执行其他任务。 * 降低资源消耗:减少了线程切换的开销。 * 简化代码结构:通过协程和任务调度,代码结构更加简洁。 21.1.3 异步编程的应用场景

By Ne0inhk