1. 为什么要把 OpenClaw 接进飞书一个真实的工作流痛点飞书机器人接入这件事我最早是被同事逼出来的。团队里每天有人在群里问「上周那个需求文档在哪」「这个接口的字段定义是什么」回答的人要翻聊天记录、翻云文档、翻知识库一来一回十分钟没了。后来我想能不能让一个机器人常驻群里它就能回答还能顺手把文档摘要写回飞书文档。OpenClaw 正好提供了飞书渠道插件配合统一模型通道整条链路可以自己搭起来。先说清楚 OpenClaw 是什么、能做什么、适合谁。OpenClaw 是一个开源的 AI 助手网关它把「消息渠道」和「模型能力」解耦渠道侧支持飞书、Telegram 等模型侧通过统一的 OpenAI 兼容接口调用。你不需要为每个渠道单独写一套机器人逻辑只要在配置文件里声明渠道凭证和模型通道网关就会把飞书收到的消息转成模型请求再把回复发回飞书。适合谁适合想把 AI 助手接进企业协作工具、又不想被单一厂商绑定的开发者和小团队。飞书作为企业级协作平台集成了即时通讯、文档协作、日历、云盘。把 OpenClaw 与飞书集成后你能做到三件事AI 助手直达工作群在群里 机器人就能拿答案文档智能处理自动读写飞书文档、表格、知识库消息自动化定时提醒、状态更新、信息推送。这三件事的价值在于AI 不再是浏览器里的一个标签页而是你工作流里的一个成员。但真正动手时坑比想象的多。飞书开放平台的权限模型、事件订阅模式、凭证类型和 OpenClaw 的配置字段之间需要一一对应模型调用如果直连各家 API又要管理多套 Key。这篇就把整条链路拆开从飞书开放平台创建应用、拿凭证到 OpenClaw 网关配置、事件订阅打通再到用 TaoToken 统一 Key 完成模型调用最后给一条端到端验证步骤。每一步都有可复制的配置片段和真实报错排查。2. TaoToken 前置准备统一 Key 与 API 通道在配置 OpenClaw 之前先把模型通道准备好。OpenClaw 的模型调用走 OpenAI 兼容协议所以你需要一个 Base URL、一个 API Key、一个 Model ID。如果每个模型都去单独申请 Key配置会散落在多个地方换模型时还要改代码。TaoToken 的作用就是把这些收敛成一套统一 Key 和统一 API 通道OpenClaw 侧只认一个地址和一个 Key。TaoToken 官网是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 地址是 https://taotoken.net/api 。注意 API 地址不带查询参数配置里直接写这个。你需要先在控制台创建一个 API Key控制台入口在 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite Key 管理页面在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 。创建后复制那串以 sk- 开头的字符串后面配置要用。模型 ID 怎么选如果你只是做飞书群里的问答和文档摘要选一个通用对话模型即可如果要做代码相关的 Agent选 coding 能力强的模型。TaoToken 的模型对话页面在 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentchatutm_campaignrewrite 你可以在那里先试一下模型返回是否符合预期再去配 OpenClaw。长期做编码或 Agent 场景的话可以看 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 。这里要强调一个配置原则OpenClaw 的渠道配置和模型配置是分开的。飞书渠道负责「收消息、发消息」模型通道负责「生成回复」。两者通过网关内部串联。所以你在飞书开放平台拿到的 App ID / App Secret和 TaoToken 拿到的 API Key是两套完全不同的凭证不要混用。App Secret 泄露了别人能冒充你的机器人发消息API Key 泄露了别人能消耗你的模型额度。两者都要放在本地配置文件里不要提交到代码仓库。环境要求方面OpenClaw 建议 v2026.3这个版本已内置飞书插件Node.js 需要 v18系统 Windows / macOS / Linux 都可以。飞书侧你需要一个企业管理员账号来创建应用普通成员账号创建不了企业自建应用。如果你没有管理员权限找 IT 开一个或者用飞书的测试企业。3. 可复制配置飞书应用创建与 OpenClaw 网关打通这一节是全文最核心的部分所有配置都可以直接复制。先做飞书侧再做 OpenClaw 侧顺序不要反因为事件订阅需要网关先跑起来。3.1 飞书开放平台创建应用与凭证获取访问飞书开放平台点击「创建企业应用」填写应用名称比如「OpenClaw AI 助手」和描述保存后进入应用详情页。在「凭证与基础信息」里拿到两个值App ID 格式如 cli_xxxApp Secret 是一串密钥字符串。这两个值后面要填进 OpenClaw 配置。接着配置应用权限。在「权限管理」页面点击「批量导入」粘贴以下权限配置{ 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:read, cardkit:card:write, contact:user.employee_id:readonly, corehr:file:download, event:ip_list, im:chat.access_event.bot_p2p_chat:read, im:chat.members:bot_access, im:message, im:message.group_at_msg:readonly, im:message.p2p_msg:readonly, im:message:readonly, im:message:send_as_bot, im:resource ], user: [ aily:file:read, aily:file:write, im:chat.access_event.bot_p2p_chat:read ] } }注意im:message:send_as_bot 是发送消息的必需权限漏了这条机器人只能收不能回。然后在「应用能力 机器人」中启用机器人能力设置机器人名称如「OpenClaw 助手」。最后配置事件订阅在「事件订阅」页面选择「使用长连接接收事件」WebSocket 模式添加事件 im.message.receive_v1保存配置。这里有个顺序坑事件订阅要求网关已经启动并建立长连接否则保存时会提示连接失败。所以如果你先配了事件订阅先把 OpenClaw 网关跑起来再回来保存。3.2 OpenClaw 配置文件与模型通道OpenClaw 支持两种配置方式。推荐用引导命令openclaw onboard按提示输入 App ID 和 App Secret。如果你想手动控制每个字段编辑 ~/.openclaw/openclaw.json{ channels: { feishu: { enabled: true, appId: cli_a92574f769799cb5, appSecret: blYFWKa7Bz5YWHeBrBAcXc7mAwXESerN, connectionMode: websocket, domain: feishu, groupPolicy: open, dmPolicy: pairing } }, gateway: { port: 18789, mode: local, bind: loopback }, models: { default: { baseUrl: https://taotoken.net/api, apiKey: sk-你的TaoToken密钥, modelId: 你的模型ID } } }配置说明dmPolicy 是私聊策略pairing 表示需要配对批准open 表示直接允许groupPolicy 是群聊策略open 表示所有群可用allowlist 表示仅指定群。connectionMode 用 websocket 走长连接不需要公网回调地址这是本地开发最省事的方式。models.default 这一段就是 TaoToken 统一通道baseUrl 固定写 https://taotoken.net/api apiKey 填你在控制台创建的 KeymodelId 填你要用的模型。启动网关服务openclaw gateway检查状态openclaw gateway status正常输出应包含Gateway: bindloopback (127.0.0.1), port18789 RPC probe: ok Listening: 127.0.0.1:18789看到 RPC probe: ok 说明网关起来了。这时候回到飞书开放平台的事件订阅页面保存 im.message.receive_v1 配置应该能成功。4. 验证请求一条消息从飞书发出到机器人回复配置完成后必须做端到端验证否则你不知道是渠道没通还是模型没通。验证分三步配对、发消息、看回复。4.1 首次配对批准当用户首次与机器人聊天时会收到配对码提示OpenClaw: access not configured. Your Feishu user id: ou_xxx Pairing code: FE6P7PNK Ask the bot owner to approve with: openclaw pairing approve feishu FE6P7PNK作为机器人所有者执行openclaw pairing approve feishu FE6P7PNK批准后该用户才能正常对话。这一步是 dmPolicypairing 触发的如果你设成 open 就跳过。4.2 主动发送消息验证渠道除了被动回复你也可以用飞书 API 主动发消息验证凭证是否正确。先获取 tenant_access_tokencurl -X POST https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal \ -H Content-Type: application/json \ -d {app_id:cli_xxx,app_secret:xxx}拿到 token 后发送消息curl -X POST https://open.feishu.cn/open-apis/im/v1/messages?receive_id_typeopen_id \ -H Authorization: Bearer t-xxxx \ -H Content-Type: application/json \ -d { receive_id: ou_xxx, msg_type: text, content: {\text\:\你好\} }如果返回 code:0说明渠道凭证和权限都正确。4.3 端到端验证模型通道在飞书里 机器人 发一句「帮我总结一下今天的工作重点」观察三件事飞书侧是否显示机器人正在输入OpenClaw 日志里是否有模型请求记录回复内容是否由模型生成而非固定模板。如果飞书收到了回复但内容是报错说明渠道通了、模型没通去查 models.default 的 baseUrl 和 apiKey。如果飞书完全没反应说明事件订阅没生效去查网关状态和事件订阅保存结果。文档操作也可以验证。读取飞书文档{ action: read, doc_token: ABC123def }写入飞书文档{ action: write, doc_token: ABC123def, content: # 标题\n\n这是通过 OpenClaw 自动生成的内容 }5. 本篇常见错排查401、local proxy failed、reading choices、OAuth配置过程中最容易卡在几个报错上我按真实遇到的顺序列出来。第一个是 401 Unauthorized。这个报错通常来自模型通道说明 TaoToken 的 API Key 不对或没带上。检查 openclaw.json 里 models.default.apiKey 是否以 sk- 开头、有没有多余空格。如果你用的是环境变量注入确认变量名和配置文件里引用的一致。还有一种情况是 Key 被删除或过期去控制台重新创建一个。第二个是 local proxy failed。这个报错说明 OpenClaw 网关尝试走本地代理但失败了。检查 gateway.bind 是否为 loopback、port 是否被占用。用openclaw gateway status看监听地址如果端口冲突换一个比如 18790。另外确认没有其他进程占用 18789。第三个是 reading choices 相关报错通常长这样cannot read property choices of undefined。这说明模型返回体不是预期的 OpenAI 格式可能是 baseUrl 写错了比如漏了 /api 或者多写了 /v1。TaoToken 的地址固定是 https://taotoken.net/api 不要自己拼 /v1/chat/completionsOpenClaw 会自己补路径。如果 modelId 填了一个不存在的模型也可能返回非标准结构。第四个是 OAuth 相关报错。飞书侧如果提示 OAuth 失败检查 App ID 和 App Secret 是否匹配、应用是否已发布版本。企业自建应用需要创建版本并发布否则凭证不生效。另外确认事件订阅用的是长连接模式而不是 Webhook 模式Webhook 模式需要公网地址本地跑不通。还有一个隐蔽的坑PowerShell 里显示中文乱码。这不是消息问题是终端编码问题实际消息内容是正常的。用chcp 65001切到 UTF-8 即可。如果你用的是 Claude Code 或 Cline 这类工具配合 OpenClaw配置里出现 CC Switch、Cline MCP、Codex auth.json 时记住三件套必须齐全Base URL 写 https://taotoken.net/api Key 写你的 TaoToken KeyModel ID 写你要用的模型。缺一个都会报错。6. 语义一致 CTA把这条链路用起来配置跑通之后你的飞书里就多了一个能读文档、能回消息、能定时提醒的助手。接下来可以做的扩展不少多账号支持在 channels.feishu 下加 accounts 字段主账号和备用账号分开消息流控制关掉 typingIndicator 减少干扰打开 streaming 让回复逐字显示定时任务用 cron add 创建会议提醒。{ channels: { feishu: { defaultAccount: main, accounts: { main: { appId: cli_xxx, appSecret: xxx, botName: 主助手 }, backup: { appId: cli_yyy, appSecret: yyy, enabled: false } } } } }安全上记住三条权限最小化只授予必要权限密钥保护appSecret 和 API Key 不要提交到代码仓库定期轮换定期更换 appSecret 和 API Key检查 openclaw-*.log 日志。如果你在排障或接入阶段卡住了先去 TaoToken 的 API Keys 页面确认 Key 状态https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 再看接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 。想先验证模型返回是否符合预期去模型对话页面试https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentchatutm_campaignrewrite 。长期做编码或 Agent 场景直接上 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 。最后说一个我踩过的坑飞书事件订阅保存成功不代表消息一定能收到还要确认机器人被拉进了目标群并且群设置里允许机器人发言。有一次我配了半天最后发现是群主把机器人禁言了。所以验证时先在私聊里测通再进群测。