飞书 × OpenClaw 接入指南:不用服务器,用长连接把机器人跑起来

你想在飞书里用上一个能稳定对话、能发图/收文件、还能按规则在群里工作的 AI 机器人,最怕两件事:步骤多出错后不知道查哪里。这个项目存在的意义,就是把“飞书接 OpenClaw”这件事,整理成一套对非技术也友好的配置入口,并把官方文档没覆盖到的坑集中写成排查清单。

先说清楚它的角色:OpenClaw 现在已经内置官方飞书插件 @openclaw/feishu,功能更完整、维护也更及时。这是好事,说明飞书 + AI 的接入已经走通。这个仓库并不是要替代官方插件,而是继续为大家提供:

  • 新用户:从零开始的新手教程(15–20 分钟)
  • 老用户:从旧版(独立桥接或旧 npm 插件)迁移到官方插件的保姆级路线
  • 常见问题答疑 & 排查清单(最常见的坑优先)
  • 进阶场景:独立桥接模式依然可用(需要隔离/定制时再用)

另外,仓库也推荐了一个新项目 OpenCrew:把 OpenClaw 变成“多 Agent 团队”,用多个 Agent 分工,Slack 频道=岗位,经验自动沉淀,可逆操作无需你确认(原文给了 GitHub 链接)。


一、老用户迁移到官方插件(两种方式任选,效果一样)

适用人群:你以前用过本项目的独立桥接或 npm 插件,现在要迁到 OpenClaw 内置的官方飞书插件。

迁移前你需要知道的事(按原文)

  • 你之前创建的飞书应用(机器人)可以继续用,不需要重建
  • App ID / App Secret 不变
  • 聊天记录不受影响(记录在飞书端)
  • 迁移时机器人会短暂离线(几分钟)

方式一:通过 OpenClaw 升级(推荐,最省事)

前提:你的 OpenClaw 版本 ≥ 2026.2,升级后官方飞书插件已内置。

1)升级 OpenClaw
升级完成会自动重启网关。

2)添加飞书渠道
选择 Feishu → 填 App ID → 填 App Secret

App Secret 可能还在你旧环境里(原文提示位置):

  • ~/.clawdbot/secrets/feishu_app_secret(可 cat 查看)
  • 如果找不到:去飞书开放平台 https://open.feishu.cn/app → 你的应用 → 凭证与基础信息 复制

3)补全飞书应用权限(支持图片/文件/流式等)
去飞书开放平台:你的应用 → 权限管理批量导入,粘贴下面 JSON(原文内容不变):

{"scopes":{"tenant":["aily:file:read","aily:file:write","application:application.app_message_stats.overview:readonly","application:application:self_manage","application:bot.menu:write","cardkit:card:write","contact:user.employee_id:readonly","corehr:file:download","docs:document.content:read","event:ip_list","im:chat","im:chat.access_event.bot_p2p_chat:read","im:chat.members:bot_access","im:message","im:message.group_at_msg:readonly","im:message.group_msg","im:message.p2p_msg:readonly","im:message:readonly","im:message:send_as_bot","im:resource","sheets:spreadsheet","wiki:wiki:readonly"],"user":["aily:file:read","aily:file:write","im:chat.access_event.bot_p2p_chat:read"]}}

导入后:创建新版本 → 发布(让新权限生效)。原文也强调:已有权限会自动跳过,不重复添加。

4)清理旧插件/桥接(避免冲突)

# 移除旧的 npm 插件(如果装过) openclaw plugins remove feishu-openclaw 2>/dev/null # 停掉旧的桥接服务(如果用过独立桥接) launchctl unload ~/Library/LaunchAgents/com.clawdbot.feishu-bridge.plist 2>/dev/null # 重启网关 openclaw gateway restart 

然后去做“验证”(见后文)。


方式二:不整体升级,手动安装插件 + 配置

适用:你不想升级 OpenClaw,只想把飞书接进来。

1)准备 App ID / App Secret
App Secret 同样可能在:

  • ~/.clawdbot/secrets/feishu_app_secret

找不到就去飞书开放平台应用的“凭证与基础信息”。

2)补权限
同方式一(批量导入 + 创建新版本 + 发布)。

3)安装并配置

# 安装官方飞书插件 openclaw plugins install @openclaw/feishu # 添加飞书渠道(交互式引导) openclaw channels add# → 选择 Feishu# → 粘贴 App ID# → 粘贴 App Secret# 移除旧的 npm 插件(如果装过) openclaw plugins remove feishu-openclaw 2>/dev/null # 停掉旧的桥接服务(如果用过独立桥接) launchctl unload ~/Library/LaunchAgents/com.clawdbot.feishu-bridge.plist 2>/dev/null # 重启网关 openclaw gateway restart 

迁移/配置后验证(原文口径)

# 查看日志,确认飞书连接成功 openclaw logs --follow 

日志里看到类似 feishu ws connectedfeishu provider ready,说明连上了。去飞书里给机器人发消息,能正常回复即完成。

如果机器人回复了配对码(一次性安全操作),按原文执行:

openclaw pairing approve feishu <配对码>

迁移后清理(可选)

稳定运行几天后可清理旧文件(原文示例):

# 删除旧的 launchd 配置(桥接用户)rm -f ~/Library/LaunchAgents/com.clawdbot.feishu-bridge.plist 

二、新手从零:配置飞书 AI 机器人(15–20 分钟)

适用人群:第一次用 OpenClaw + 飞书。前提:OpenClaw 已安装并正常运行(原文示例:openclaw gateway status 能看到状态)。

第一步:创建飞书应用(机器人)

  • 打开飞书开放平台 https://open.feishu.cn/app
  • 创建“企业自建应用”,填名称/描述/图标

第二步:启用机器人能力

你的应用 → 应用能力 > 机器人 → 开启 → 命名机器人

第三步:配置权限(批量导入)

你的应用 → 权限管理批量导入 → 粘贴权限 JSON(与上文完全相同)

这里按原文就是“一键导入需要的权限”。

第四步:配置事件订阅(原文强调:必须长连接)

原文警告:这一步必须在 OpenClaw 网关启动后再做,否则保存会失败。你可以先做后面的 OpenClaw 配置,再回来做这一步。
  • 你的应用 → 事件与回调 > 事件配置
  • 请求方式:选择 使用长连接接收事件
  • 添加事件:im.message.receive_v1(接收消息)

第五步:记下凭证

你的应用 → 凭证与基础信息

  • App ID(cli_xxxxx
  • App Secret(原文提醒:不要分享)

第六步:发布应用

你的应用 → 版本管理与发布 → 创建版本 → 提交 → 发布/上线(原文说明通常几秒到几分钟)

第七步:在 OpenClaw 中配置飞书

# 1. 安装飞书插件 openclaw plugins install @openclaw/feishu # 2. 添加飞书渠道(交互式,跟着提示走) openclaw channels add# 选择 Feishu → 粘贴 App ID → 粘贴 App Secret# 3. 重启网关 openclaw gateway restart # 4. 查看日志,确认连接成功 openclaw logs --follow 

第八步:发消息测试(配对码按原文处理)

飞书里给机器人发“你好”。如果出现配对码:

openclaw pairing approve feishu <配对码>

批准后即可正常对话。

如果你之前跳过了“事件订阅”,现在网关已启动,回去把第四步补上,保存后再 openclaw gateway restart(这是原文提示的流程)。

第九步(可选):开机自启

原文这里只给了标题说明:让机器人电脑重启后自动上线(具体可结合 OpenClaw 命令 openclaw gateway install,该命令在“常用命令速查”中出现)。


三、常见问题 & 排查清单(按原文最常见坑优先)

1)没有消息发送框?(最常见)

原文结论:事件订阅没有配置。权限批量导入不会自动配置事件订阅。

  • 飞书开放平台 → 你的应用 → 事件与回调
  • 添加事件:im.message.receive_v1
  • 订阅方式:使用长连接接收事件
  • 版本管理 → 创建新版本 → 发布上线

原文提醒:配置事件订阅前,确保 OpenClaw/Clawdbot Gateway 已启动,否则长连接验证会失败。


2)机器人完全没反应(收不到消息)

按原文顺序检查:

  1. 网关在运行吗?不在就 openclaw gateway restart
  2. 飞书应用发布了吗?(版本管理里要有已发布版本)
  3. 事件订阅配置了吗?
    • 是否选择“使用长连接接收事件”(不是 Webhook)
    • 是否添加 im.message.receive_v1
  4. 权限够吗?原文给的最低示例:
    • im:message
    • im:message.p2p_msg:readonly
    • im:message:send_as_bot
  5. 看日志:发消息观察日志是否有反应

3)时断时续(有时回复、有时没反应)

原文给的常见原因与处理:

  • 网络波动(VPN/代理环境尤其容易):可能频繁断连
  • 网关是否反复重启(原文示例命令):
openclaw logs |grep -i "restart\\|reconnect\\|disconnect"
  • DNS/代理问题:原文建议确保 open.feishu.cn 走直连(不走代理)

4)发图片/发文件,AI 看不到

按原文:

  1. 检查权限:必须有 im:resource
  2. 补权限后要 创建新版本 → 发布
  3. 重启网关:openclaw gateway restart

5)AI 说生成了图片,但飞书没收到

按原文:

  1. im:resource 权限(用于上传图片到飞书)
  2. 看日志 upload 相关错误

6)群聊中机器人不回复

按原文:

  1. 默认需要 @机器人
  2. 确认机器人已被加到群
  3. 检查 groupPolicy(见进阶配置)

7)回复特别慢

按原文解释:主要由模型响应速度决定;可开启流式输出(默认已开启);超过 30 秒看日志是否模型调用出错。


8)配对码是什么?怎么用?

按原文:首次出于安全,机器人发配对码,管理员批准一次即可:

openclaw pairing approve feishu <配对码>

9)Lark(国际版)用户怎么配?

按原文,在配置里指定域名:

{"channels":{"feishu":{"domain":"lark"}}}

四、进阶配置参考(配置文件、群组策略、流式、多 Agent)

配置文件位置(原文)

  • ~/.openclaw/openclaw.json

基础配置示例(原文结构)

{"channels":{"feishu":{"enabled":true,"dmPolicy":"pairing","accounts":{"main":{"appId":"cli_xxxxxxxxx","appSecret":"你的AppSecret","botName":"我的AI助手"}}}}}

群组配置(原文三种典型)

默认:所有群允许,但必须 @。

指定群无需 @:

{"channels":{"feishu":{"groups":{"oc_你的群组ID":{"requireMention":false}}}}}

只允许特定用户在群里使用(allowlist):

{"channels":{"feishu":{"groupPolicy":"allowlist","groupAllowFrom":["ou_用户1","ou_用户2"]}}}

原文获取群组/用户 ID 的方式:给机器人发消息后看 openclaw logs --follow

流式输出(原文默认开启)

{"channels":{"feishu":{"streaming":true,"blockStreaming":true}}}

如要关闭:设 streaming: false

多 Agent 路由(原文 bindings 示例)

{"bindings":[{"agentId":"main","match":{"channel":"feishu","peer":{"kind":"dm","id":"ou_用户A"}}},{"agentId":"另一个agent","match":{"channel":"feishu","peer":{"kind":"group","id":"oc_某群组"}}}]}

访问控制策略(原文表述)

  • "pairing":默认,新用户配对码,管理员批准后可对话
  • "allowlist":仅白名单用户可对话
  • "open":所有人可对话
  • "disabled":禁止私聊

常用命令速查(原文)

  • openclaw gateway status:查看网关状态
  • openclaw gateway restart:重启网关
  • openclaw gateway install:安装为开机自启服务
  • openclaw logs --follow:实时日志
  • openclaw pairing list feishu:查看待授权配对
  • openclaw pairing approve feishu <CODE>:批准配对
  • openclaw plugins list:已安装插件列表

五、独立桥接模式(进阶用户才需要)

原文定位:适用于你需要进程隔离(桥接崩溃不影响网关)或有特殊定制需求。大多数用户用官方插件即可。

插件 vs 桥接(按原文对比逻辑复述)

  • 官方插件:openclaw plugins install,和网关同进程,维护随 OpenClaw 更新,适合日常
  • 独立桥接:git clone + npm install,独立进程,互不影响,但需自行维护,适合生产/隔离部署

快速启动(原文命令)

# 克隆项目git clone https://github.com/AlexAnys/feishu-openclaw.git cd feishu-openclaw # 安装依赖npminstall# 配置凭证mkdir -p ~/.clawdbot/secrets echo"你的AppSecret"> ~/.clawdbot/secrets/feishu_app_secret chmod600 ~/.clawdbot/secrets/feishu_app_secret # 启动FEISHU_APP_ID=cli_xxxxxxxxx node bridge.mjs 

开机自启(launchd)(原文命令)

# 生成服务配置node setup-service.mjs # 加载服务 launchctl load ~/Library/LaunchAgents/com.clawdbot.feishu-bridge.plist # 查看状态 launchctl list |grep feishu 

日志位置(原文)

  • ~/.clawdbot/logs/feishu-bridge.out.log(正常输出)
  • ~/.clawdbot/logs/feishu-bridge.err.log(错误日志)

调试模式(原文)

echo"FEISHU_BRIDGE_DEBUG=1"> .env tail -n 200 ~/.clawdbot/logs/feishu-bridge.err.log 

工作原理(原文表达复述)

飞书用户 ↔ 飞书云端 ↔(你的电脑上桥接脚本)↔ OpenClaw 网关
桥接通过飞书 WebSocket 长连接接收消息:不需要公网 IP、不需要域名、不需要内网穿透。


六、快问快答

  • 需要服务器吗? 不需要。飞书用 WebSocket 长连接,你的电脑直接连飞书云端,不需要公网 IP。
  • 电脑关机了怎么办? 机器人离线;开机后会自动重连(若配了开机自启)。要 24/7 在线可以用常开设备或云服务器。
  • 飞书免费版能用吗? 可以。自建应用与机器人功能对所有飞书版本开放。
  • 能同时接其它渠道吗? 可以。OpenClaw 支持多渠道,互不影响。
  • 用了官方插件后,这个项目还有用吗? 有:继续提供配置教程、迁移指南、排查与答疑。

如果你接下来想把这篇发到 GitHub README / 公众号 / 飞书文档,我可以在不改动事实与步骤的前提下,给你做两种“同源不同表达”的版本:

  • 极简版(一页纸):只保留命令、飞书侧必须点的两处、以及“没输入框/不回复/图片不可用”的最短排查
  • 面向小白版:每一步都配“你为什么要点这个/不点会出现什么症状”,但仍严格不超出原文内容

你希望用哪一种发布场景?(GitHub README 更适合极简版;公众号更适合小白解释版。)

Read more

JAVA多线程并发编程:并发容器与线程协作实战

JAVA多线程并发编程:并发容器与线程协作实战

JAVA多线程并发编程:并发容器与线程协作实战 💡 学习目标:掌握JAVA中常用并发容器的特性与适用场景,理解线程间协作的核心原理,能够运用并发容器和协作工具解决实际并发问题。 💡 学习重点:并发容器与普通容器的区别、ConcurrentHashMap 核心原理、CountDownLatch/CyclicBarrier/Semaphore 的使用、生产者消费者模式实现。 1.1 为什么需要并发容器? 在多线程场景下,普通的集合容器(如 HashMap、ArrayList)是线程不安全的。多个线程同时对其进行读写操作时,会导致数据错乱、ConcurrentModificationException 异常等问题。 ⚠️ 注意事项:即使使用 Collections.synchronizedXXX() 方法包装普通容器,也只是通过 synchronized 实现简单的加锁。这种方式锁粒度较粗,并发性能较低。 ✅ 核心结论:并发容器是JAVA为多线程场景设计的高性能容器。它们通过细粒度锁或无锁算法实现线程安全,能够在保证数据一致性的同时,大幅提升并发访问效率。 1.2 常用并

By Ne0inhk
IDEA安装教程配置java环境(超详细)_idea配置java,零基础入门到精通,收藏这篇就够了

IDEA安装教程配置java环境(超详细)_idea配置java,零基础入门到精通,收藏这篇就够了

引言 IntelliJ IDEA 是一款功能强大的集成开发环境(IDE),广泛用于 Java 开发,但也支持多种编程语言,如 Kotlin、Groovy 和 Scala。本文将为你提供一步一步的指南,帮助你在 Windows 系统上顺利安装 IntelliJ IDEA。 一、安装 JDK 1.1下载JDK 1.访问 JDK 下载页面 打开浏览器,访问Oracle JDK 下载页面. Java Downloads | Oraclehttps://www.oracle.com/java/technologies/downloads/#java22 2.选择版本 选择适合你的 JDK 版本(例如 JDK17或JDK21

By Ne0inhk
【JavaSE-网络部分04】网络原理-传输层:UDP + TCP 可靠性三大核心机制(确认应答 / 超时重传 / 连接管理)

【JavaSE-网络部分04】网络原理-传输层:UDP + TCP 可靠性三大核心机制(确认应答 / 超时重传 / 连接管理)

传输层的学习 传输层我们说过最核心的协议是TCP和UDP。 那么在这里面我们再谈一下端口号。 再谈端口号 我们说端口号是用整数表示,用来区分同一台主机上不同的应用程序。 我们前面在网络编程冲每个程序中的socket创建的时候都需要关联端口号,那么对于服务器来说,端口号是程序员的手动指定的;而对于我们的客户端来说,端口号是系统自动分配的。 端口号是由两个字节表示的无符号整数 * 范围:0~65535。 虽然它的范围呢比较多,但是呢并不是所有的数都能是可以使用的。 * 0~1023 这样的范围通常我们是不使用的,他们叫做知名端口号,是给一些知名的服务器预留的。 虽然现在我们知名的服务器没有太多,已经寥寥无几了,但是呢有两个知名的端口,一定要重点认识。 * 80 ==> 这个是给HTTP服务器留的端口号。 * 443 ==》 这个是给HTTPS服务器留的端口。 问题1:一个进程是否可以绑定多个端口号? 答:这个是完全可以的,但是注意其实不是进程绑定端口号,而是我们的socket绑定端口,我们一个进程中完全可以创建多个socket,所以呢可以同时关联到多个端口号

By Ne0inhk
Launch4j:轻量级 Java 应用 Windows 打包方案

Launch4j:轻量级 Java 应用 Windows 打包方案

Launch4j 是一款开源工具,专注于将 Java 程序(JAR 文件)封装为 Windows 原生可执行文件(.exe)。其核心原理是为 JAR 文件添加一个轻量级启动器,用户无需安装 Java 环境即可直接双击运行,体验与原生应用无异。 核心优势与特性 无缝用户体验 通过生成的 .exe 文件,用户无需手动配置 Java 环境或执行命令行操作。启动器自动检测系统 JRE 或使用捆绑的运行时,实现开箱即用。 原生集成能力 支持为可执行文件嵌入自定义图标、版本信息、公司名称等元数据。提供进程名称控制、单实例运行、UAC 权限管理等功能,使 Java 应用更贴近原生软件体验。 高效打包机制 采用内存映射技术直接加载内嵌 JAR,避免释放临时文件,既提升启动速度又降低代码泄露风险。支持 32/64 位架构,

By Ne0inhk