本教程基于实际部署经验,手把手教你将 OpenClaw 接入飞书,让 AI 助手直接在飞书群聊/私聊中响应消息。整个过程分为 6 个步骤,预计 15-30 分钟完成。
openclaw onboard 向导;已有飞书企业/团队账号且拥有管理员权限。
1. 打开 飞书开放平台,登录管理员账号。
2. 点击「创建企业自建应用」,填写应用名称(如 "OpenClaw Bot")和描述。
3. 创建完成后,进入应用详情页,记录 App ID 和 App Secret:
在飞书开放平台的应用管理页面中:
2.1 添加机器人能力:
进入「添加应用能力」→ 勾选「机器人」。
2.2 配置权限:
进入「权限管理」,搜索并开启以下权限:
im:message # 获取与发送单聊/群聊消息 im:message.group_at_msg # 接收群聊中 @机器人 消息 im:message.group_at_msg:readonly # 读取群聊中 @机器人 消息 im:message.p2p_msg # 接收私聊消息 im:message.p2p_msg:readonly # 读取私聊消息 im:message:send_as_bot # 以机器人身份发送消息 im:chat # 获取群信息 im:chat:readonly # 读取群信息 contact:user.id:readonly # 读取用户 ID
2.3 配置事件订阅:
进入「事件订阅」→ 选择 WebSocket 模式(推荐,无需公网地址)。
添加以下事件:
im.message.receive_v1 # 接收消息事件
在 OpenClaw 中安装官方飞书插件:
openclaw plugin install @openclaw/feishu
安装完成后,确认插件已启用:
openclaw plugin list # 应该看到: # feishu @openclaw/feishu@2026.3.2 enabled
~/.openclaw/openclaw.json 的 plugins 配置段。
编辑 ~/.openclaw/openclaw.json,在 "channels" 中添加飞书配置:
groupAllowFrom 和 allowFrom 中的群组 ID 以 oc_ 开头,可在飞书群设置中查看,或通过飞书 API 获取。
5.1 确认 plugins 配置:
5.2 在飞书开放平台发布应用:
回到飞书开放平台 → 「版本管理与发布」→ 创建版本 → 提交审核。
如果是内部应用(企业自建),审核通常即时通过。
5.3 将机器人添加到群聊:
打开目标飞书群 → 群设置 → 群机器人 → 添加机器人 → 选择刚创建的应用。
重启 OpenClaw Gateway 使配置生效:
# 重启 Gateway openclaw gateway restart # 查看日志确认飞书连接成功 openclaw logs --tail 50
成功连接后,日志中应出现:
在飞书群中发送消息(或 @机器人),如果 OpenClaw 正常回复,说明对接成功。
以下是 OpenClaw 对接飞书过程中最常见的 100 个问题,按类别分组。点击分类快速跳转:
#1 – #15:创建应用、权限、事件订阅等
#16 – #25:插件安装失败、版本冲突等
#26 – #40:配置字段、格式、验证等
#41 – #55:连接失败、断线、超时等
#56 – #68:群聊不响应、权限、@机器人等
#69 – #76:私聊无响应、消息丢失等
#77 – #85:API 权限、Token 过期等
#86 – #92:飞书文档/云盘/Wiki 技能等
#93 – #98:富文本、图片、卡片等
#99 – #100:Lark 海外版、性能等
cli_ 开头)和 App Secret。点击「显示」查看完整 Secret。
"connectionMode": "websocket"
im:message 相关权限;③刷新事件订阅页面,搜索 im.message.receive_v1。
appId 和 appSecret;③重新申请并审批权限;④重新发布应用。
OPENCLAW_CONFIG=~/.openclaw/openclaw-company-a.json openclaw gateway start OPENCLAW_CONFIG=~/.openclaw/openclaw-company-b.json openclaw gateway start
"encryptKey" 字段。
# 使用国内镜像 npm config set registry https://registry.npmmirror.com openclaw plugin install @openclaw/feishu # 或手动安装 cd ~/.openclaw/extensions mkdir feishu && cd feishu npm init -y npm install @openclaw/feishu
~/.openclaw/openclaw.json 中 plugins.entries 和 plugins.installs 是否都包含 feishu 条目。如果缺失,手动添加:
"plugins": {
"entries": { "feishu": { "enabled": true } },
"installs": {
"feishu": {
"source": "npm",
"spec": "@openclaw/feishu",
"installPath": "~/.openclaw/extensions/feishu"
}
}
}
# 更新 OpenClaw 到最新版 npm install -g openclaw@latest # 再安装飞书插件 openclaw plugin install @openclaw/feishu
# 修复权限 chmod -R 755 ~/.openclaw # 重新安装 openclaw plugin install @openclaw/feishu
%USERPROFILE%\.openclaw 目录添加到杀毒软件白名单。
# 直接重新安装即可更新 openclaw plugin install @openclaw/feishu # 重启 Gateway 生效 openclaw gateway restart
~/.openclaw/openclaw.json,将 plugins.entries.feishu.enabled 改为 true,然后重启 Gateway。
# 清除缓存后重新安装 npm cache clean --force rm -rf ~/.openclaw/extensions/feishu openclaw plugin install @openclaw/feishu
npm pack @openclaw/feishu 下载 tgz 包;②将 tgz 传到目标服务器;③手动解压到 ~/.openclaw/extensions/feishu;④在 openclaw.json 中手动添加 plugins 配置。
~/.openclaw/openclaw.json,删除 channels.feishu、plugins.entries.feishu 和 plugins.installs.feishu 三处配置,然后重启 Gateway。
openclaw.json.bak,可用于恢复。
"channels" 对象中,与 "models"、"agents"、"gateway" 同级。如果没有 "channels" 字段,手动添加即可。
cli_ 开头,后跟 16-20 位字母数字。"cli_a92393ccde789bd9"。注意不要多复制空格或换行符。
\ 或 ",需要转义为 \\ 或 \"。一般飞书 Secret 只包含字母数字,不需要特殊处理。
"websocket"(推荐)— 使用飞书长连接,无需公网 IP;
"webhook" — 使用 HTTP 回调,需要公网可访问的地址。绝大多数场景使用 websocket 即可。
"feishu"(使用 open.feishu.cn 域名),海外用户填 "lark"(使用 open.larksuite.com 域名)。
"open" — 机器人被加入的所有群聊都会响应;
"allowlist" — 仅在 groupAllowFrom 列表中的群聊才响应。建议初期测试用 allowlist 控制范围,稳定后可改为 open。
im/v1/chats)获取机器人加入的群列表;方法二:查看 OpenClaw 日志,当机器人收到群消息时会打印群聊 ID;方法三:设 groupPolicy: "open" 先运行,从日志中找到目标群的 oc_ ID。
"group" — 整个群共享同一个会话上下文,所有人的消息在同一对话中;
"per-user" — 群中每个用户有独立的会话上下文。大多数场景用 "group" 更自然。
"open" — 所有用户都可以和机器人私聊;
"closed" — 禁止私聊,机器人不响应私聊消息。如果只想在群里使用,设为 closed。
im:message.group_at_msg 权限;②确认事件订阅中有 im.message.receive_v1;③尝试先设为 false 排除其他问题,再改回 true。
openclaw gateway restart部分配置(如 channels)不支持热重载,必须重启。
openclaw.json.bak(最多保留 4 份)。从备份恢复:
cp ~/.openclaw/openclaw.json.bak ~/.openclaw/openclaw.json openclaw gateway restart
{
"enabled": true, // 是否启用
"appId": "cli_xxx", // 飞书 App ID
"appSecret": "xxx", // 飞书 App Secret
"connectionMode": "websocket", // websocket | webhook
"domain": "feishu", // feishu | lark
"groupPolicy": "open", // open | allowlist
"groupSessionScope": "group", // group | per-user
"groupAllowFrom": [], // 允许的群聊 ID
"allowFrom": [], // 允许的来源
"dmPolicy": "open", // open | closed
"requireMention": false // 是否需要 @
}
im.message.receive_v1 事件。保存后等待几秒再重试。
open.feishu.cn(执行 curl -I https://open.feishu.cn);②如果在内网环境,检查代理设置;③尝试设置环境变量:HTTPS_PROXY=http://proxy:port。
# 设置代理环境变量 export HTTPS_PROXY=http://proxy.company.com:8080 export HTTP_PROXY=http://proxy.company.com:8080 export NO_PROXY=localhost,127.0.0.1 openclaw gateway restart如果代理不支持 WebSocket 升级,需要联系网络管理员放行。
NODE_TLS_REJECT_UNAUTHORIZED=0(不推荐,仅调试用);③最好的方案是让运维将飞书域名加入代理白名单,不做 HTTPS 解密。
# 检查 Gateway 状态 openclaw gateway status # 如果未运行,启动它 openclaw gateway start # 或查看日志定位问题 openclaw logs --tail 100
im.message.receive_v1 事件;③确认应用版本已发布;④检查群中是否已添加机器人。
# 使用 host 网络模式 docker run --network host openclaw ... # 或确保容器 DNS 能解析飞书域名 docker run --dns 8.8.8.8 openclaw ...
open.feishu.cn、*.feishu.cn、*.bytedance.com;③如果是内网服务器,可能需要配置 DNS 转发或手动添加 hosts。
agents.defaults.maxConcurrent 设置合理(建议 4-8);③如果资源不足,考虑只启用必要的渠道;④检查日志中是否有 OOM 或事件循环延迟警告。
requireMention 是否为 true?如果是,需要 @机器人;②groupPolicy 是否为 allowlist?如果是,检查 groupAllowFrom 是否包含当前群 ID;③查看 OpenClaw 日志是否收到了消息事件;④确认 Gateway 正在运行。
im:message.group_at_msg 已开启并审批通过;②确认事件订阅中有 im.message.receive_v1;③确认应用最新版本已发布;④在群设置中确认机器人存在。
requireMention 设为 false。"requireMention": true 设为 true,这样机器人只在被 @时才响应。适合人数较多的群。
"groupPolicy": "allowlist", "groupAllowFrom": [ "oc_群聊ID_1", "oc_群聊ID_2" ]只有列表中的群聊会被响应。
"requireMention": true;②确认飞书插件版本为最新(旧版可能缺少 bot 消息过滤)。
"requireMention": true 减少无关消息处理;②选用更快的模型;③调整 agents.defaults.maxConcurrent 限制并发。
groupSessionScope 设为 "group",所有用户共享上下文。"groupSessionScope": "per-user"。但注意这会让机器人无法理解群聊讨论的完整上下文。
groupAllowFrom 是否包含不工作的群 ID;②检查飞书应用的可用范围是否包含该群的成员所在部门;③某些群可能有额外的安全策略限制机器人。
openclaw plugin install @openclaw/feishu)。新版本会自动过滤非文本用户消息。
"dmPolicy": "open";②确认权限 im:message.p2p_msg 已开启;③确认应用可用范围包含你的账号;④在工作台中找到机器人,点击进入私聊(而非搜索同事头像)。
session.dmScope 控制私聊会话范围。默认 "per-channel-peer" 表示每个用户在每个渠道有独立会话。确保 Gateway 持续运行,重启会清除内存中的会话。启用 hooks.internal.entries.session-memory 可持久化会话。
openclaw gateway restart。如果重启后仍有问题,确认 openclaw.json 中的配置格式正确(注意 JSON 字符串值需要双引号)。
allowFrom 字段主要用于群聊过滤。对于私聊限制,可通过飞书开放平台的「应用可用范围」来控制 —— 只将应用设为对特定部门/人员可见即可。
date 命令);②更新插件到最新版;③重启 Gateway。
im:message:send_as_bot 权限已开启;②确认机器人已被添加到目标群聊;③如果是新权限,需要创建新版本并发布。
export FEISHU_APP_SECRET="your_secret_here"
# 在 openclaw.json 中使用:
# "appSecret": "${FEISHU_APP_SECRET}"
或者确保 openclaw.json 的文件权限为 600(仅所有者可读写)。
requireMention: true);②避免在大群中不设限地响应所有消息;③OpenClaw 有内置的速率控制,确认插件为最新版本。
gateway.auth.token 是 OpenClaw Gateway 本地 HTTP API 的认证令牌,用于本地访问控制。appSecret 是飞书应用的凭证,用于与飞书 API 通信。两者完全独立,不要混淆。
openclaw skill install feishu-doc安装后需要在飞书开放平台额外开启文档相关权限(如
docx:document)。注意:飞书文档技能默认 enabled: false,需要在 openclaw.json 的 skills.entries 中设为 true。
drive:drive、drive:file:readonly。同时确保目标文件/文件夹对机器人应用有读取权限(在飞书云盘中分享给应用)。
openclaw skill install feishu-wiki;②开启权限 wiki:wiki:readonly;③在 skills.entries 中设 "feishu-wiki": { "enabled": true };④重启 Gateway。
feishu-perm 用于管理飞书文档/云盘的权限分享。一般场景不需要安装。仅在需要通过机器人来管理文件权限时才启用。这四个飞书技能(doc/drive/perm/wiki)都是可选的。
feishu-doc: docx:document, docx:document:readonly feishu-drive: drive:drive, drive:file:readonly feishu-wiki: wiki:wiki:readonly feishu-perm: drive:permission在飞书开放平台的「权限管理」中搜索并开启对应权限,然后发布新版本。
maxTokens 来限制回复长度。
~/.openclaw/feishu/dedup/ 目录下维护去重缓存。如果出现重复:①检查 dedup 目录是否可写;②重启 Gateway 清除缓存;③如果是网络不稳定导致飞书重投递事件,这是正常的重试机制,更新插件可改善去重效果。
ackReactionScope 控制机器人在收到消息时是否自动添加 Reaction(如「已读」表情)。可选值:"all"(对所有消息添加)、"group-mentions"(仅对群中 @自己的消息添加)、"none"(不添加)。
"domain" 改为 "lark",其他配置完全相同。Lark 的开放平台地址为 open.larksuite.com。注意:Lark 应用和飞书应用不互通,需要分别创建。
1. ✅ 飞书开放平台创建了企业自建应用 2. ✅ 添加了「机器人」能力 3. ✅ 开启了 im:message 等必要权限 4. ✅ 事件订阅选择了 WebSocket 模式 5. ✅ 添加了 im.message.receive_v1 事件 6. ✅ 应用已发布且处于启用状态 7. ✅ 安装了 @openclaw/feishu 插件 8. ✅ plugins.entries.feishu.enabled = true 9. ✅ channels.feishu 配置正确(appId/appSecret) 10. ✅ connectionMode = "websocket" 11. ✅ Gateway 已启动(openclaw gateway status) 12. ✅ 日志显示 WebSocket connected 13. ✅ 机器人已添加到目标群聊 14. ✅ groupPolicy/dmPolicy 设置正确 15. ✅ 发消息测试能收到回复按顺序检查以上每一项,通常能定位到问题所在。