
1. 为什么要在 openclaw 里接飞书机器人openclaw 是一个把大模型能力落到本地终端和自动化流程里的开源工具你可以把它理解成一个「能听懂人话、能调工具、能跑脚本」的智能体运行时。飞书则是很多团队日常沟通、审批、文档协作的主阵地。把这两者接起来最直接的价值就是你在飞书里 一下机器人背后跑的其实是 openclaw 的完整推理链路能读文档、能查数据、能触发本地脚本回复还直接落在聊天窗口里。这套联动适合谁一类是个人开发者想给自己搭一个随手可用的私人助理另一类是小团队希望把重复的查询、汇总、通知类工作交给机器人。整个链路里最容易被卡住的其实不是 openclaw 本身而是两个地方一是模型调用的 Key 管理二是飞书的事件订阅与回调配置。前者如果每个模型都单独配 Key切换和维护都很烦后者如果长连接没建起来机器人就是「哑巴」。这篇就按落地顺序走一遍先用 TaoToken 把模型通道统一成一个 Key再创建飞书自建应用、配好事件与回调、批量导入权限、发布版本最后回到 openclaw 侧填配置、验证收发消息。中间会给出可复制的config.toml和settings.json骨架以及一份报错排查清单。你跟着做基本能一次跑通。2. TaoToken 前置统一 Key 与 API 通道在动飞书之前先把模型这一侧理顺。openclaw 支持多种模型后端如果你每个后端都去单独申请 Key、单独记 base_url配置会越来越乱。TaoToken 的作用就是提供一个统一的 API 通道你只维护一个 Key就能在 openclaw 里切换不同模型省掉反复改配置的麻烦。具体操作分三步。第一步打开官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 注册并登录。第二步进入控制台 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite 在 API Keys 页面创建一个新的 Key复制保存好这个 Key 后面要填进 openclaw 的配置里。第三步确认你的 API 基地址是 https://taotoken.net/api 注意这个地址不带任何查询参数直接作为 base_url 使用。提示Key 只在创建时完整显示一次建议创建后立刻存进密码管理器。如果怀疑泄露直接在控制台删除重建即可openclaw 侧改一下配置就恢复。如果你后面打算长期跑编码类、Agent 类任务可以顺手看一下 Coding Plan https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 它更适合高频调用场景。想先验证模型通不通可以用模型对话页面 https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodel-chatutm_campaignrewrite 发一条测试消息确认 Key 和通道都正常再去配 openclaw能少走很多弯路。3. 飞书自建应用创建与机器人能力模型通道就绪后进入飞书这一侧。打开飞书开放平台新建「企业自建应用」填写应用名称、描述设置一个图标创建完成后进入应用后台管理页。这里有个细节区域选择要和你实际使用场景一致国内团队选 China 即可。接着在左侧菜单找到「添加应用能力」选中「机器人」并添加。添加完成后进入「凭据与基础信息」页面把 App ID 和 App Secret 复制保存下来这两个值后面要填进 openclaw 的配置。机器人访问权限按需选择如果只是自己私聊用选 Disabled 就够如果要拉进群聊选公开模式且不需要配 IP 白名单时可以直接选 Open。这一步做完飞书侧的应用骨架就有了但机器人还不会「说话」因为事件和回调还没配。很多人卡在这里以为配置错了其实是顺序问题——事件配置里的长连接需要 openclaw 网关先跑起来才能建立。所以建议先把 openclaw 侧配置写好、进程启动再回来点保存。4. 可复制配置config.toml 与 settings.json 骨架openclaw 的配置分两块一块是模型通道写在config.toml一块是飞书通道参数写在settings.json。下面给的是骨架你把自己的 Key、App ID、App Secret 替换进去即可。先看config.toml重点是base_url指向 TaoToken 的 API 地址api_key填你刚才创建的那个 Key# config.toml [model] provider openai-compatible base_url https://taotoken.net/api api_key sk-你的TaoToken密钥 model claude-sonnet-4-5 timeout 120 [agent] max_tokens 4096 temperature 0.7再看settings.json这里放飞书通道参数。app_id和app_secret来自飞书凭据页connection_mode选长连接模式这样就不用手动填回调地址{ feishu: { enabled: true, app_id: cli_你的AppID, app_secret: 你的AppSecret, connection_mode: websocket, bot_name: openclaw助手, allow_private: true, allow_group: true, require_mention_in_group: true }, channel: { type: feishu, reply_in_thread: false, max_reply_length: 4000 } }两个文件放好后启动 openclaw 网关进程。启动日志里如果出现类似「feishu websocket connected」的字样说明长连接已经建立。这时候再回到飞书开放平台的「事件与回调」页面事件配置勾选「长连接接收事件」并保存就不会再提示未建立长连接了。5. 事件订阅、回调与权限批量导入长连接建立后继续在「事件与回调」里操作。事件配置勾选长连接接收事件并保存。然后添加订阅事件新增「接收消息」事件并开通对应权限如果要在群里用额外加上机器人进群、群消息提醒、消息已读等群组相关权限。回调配置同样选择「使用长连接接收回调」不需要手动填回调地址保存后自动生效。这一步是很多人疑惑的点——既然不用填地址那回调怎么找到我的服务答案就是长连接openclaw 主动连出去飞书通过这条连接把事件推回来所以本地开发环境没有公网 IP 也能跑通。接下来是权限管理。进入「权限管理」点击「批量导入权限」把下面这段 JSON 粘进去确认导入{ scopes: { tenant: [ im:message, im:message.p2p_msg:readonly, im:message.group_at_msg:readonly, im:message:send_as_bot, im:resource, contact:user.base:readonly, im:message.group_msg, im:message:readonly, im:message:update, im:message:recall, im:message.reactions:read, docx:document:readonly, drive:drive:readonly, wiki:wiki:readonly, bitable:app:readonly, task:task:read, contact:contact.base:readonly, docx:document, docx:document.block:convert, drive:drive, wiki:wiki, bitable:app, task:task:write ], user: [] } }导入后可以在权限列表核验确认消息收发、私聊/群聊消息只读、文件文档只读编辑、通讯录基础信息读取这些租户权限都已开通。后续按需增减即可权限给多了反而增加审核负担。6. 版本发布与消息收发验证权限配好后进入「版本管理与发布」新建应用版本填写版本号和更新说明提交发布申请等待飞书管理员审核通过。审核通过后应用才正式生效这一步不能跳过否则机器人在客户端里搜不到。发布生效后在飞书客户端搜索机器人应用名称发起私聊或者直接拉进业务群聊。首次对话如果弹出配对请求复制机器人返回的终端命令在本地终端执行配对指令。配对完成后向机器人发送一条消息比如「你好帮我总结一下今天的待办」如果收到正常智能回复说明整条链路已经打通。验证时建议分两步先发纯文本消息确认收发正常再发一条带 的群消息确认群组权限生效。如果私聊正常但群聊没反应多半是群组相关权限或require_mention_in_group配置的问题。7. 本篇常见报错排查清单跑不通的时候按下面这张表逐项对照基本能定位到问题现象可能原因处理方式保存事件配置提示未建立长连接openclaw 网关未启动或 App ID/Secret 填错先启动网关核对settings.json里的凭据机器人搜不到应用版本未发布或未审核通过回到版本管理确认状态私聊无回复模型通道不通或 Key 失效用模型对话页面单独测 Key群聊 无反应群组权限未开或未开启 触发补权限检查require_mention_in_group回复内容被截断超过max_reply_length调大该值或让模型分段回复401/403 报错Key 或权限范围不对核对 Key 与权限 JSON排查顺序建议从模型侧往飞书侧走先用模型对话确认 Key 可用再看 openclaw 日志确认长连接最后查飞书权限和版本状态。这样能避免在多个环节同时怀疑浪费时间。需要重新生成或管理 Key直接去 API Keys 页面 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 接入参数和字段说明看接入文档 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 。如果你用的是 Claude Code 这类编码工具Anthropic 兼容接入的说明在 ClaudeCodeAnthropic https://taotoken.net/claude-code-anthropic?utm_sourcetaotoken_aicg_blog_endutm_contentclaudecode-anthropicutm_campaignrewrite 配置思路和上面一致只是把 base_url 和 Key 填到对应位置。最后补一个实操经验飞书权限导入后有时候客户端缓存会导致机器人行为不一致退出重进或换个会话窗口再试一次往往就正常了。配置这东西改完先重启进程再验证比反复点保存靠谱得多。