1. 为什么要在飞书里跑 OpenClaw
OpenClaw(也就是 moltbot / clawdbot 这一系)本质是一个跑在你本机或服务器上的 AI 助手框架,它能接各种大模型、能装插件、能连聊天软件。飞书接入之后,你就不用再开终端敲命令,直接在飞书群里 @ 一下机器人,它就能帮你查资料、写代码、整理文档。适合谁?适合已经把 OpenClaw 跑起来、想让团队在飞书里直接用 AI 的开发者,尤其是那种「不想每个人都配一遍 Key、不想每个人都装一遍环境」的场景。
我这次要解决的核心问题是:多个 AI 工具、多个插件、多个模型,Key 怎么统一管。以前每个插件各配一份 Key,飞书插件一份、coding 插件一份、对话插件一份,改一次要改五个地方,还容易漏。用 TaoToken 做统一 Key/API 通道之后,所有插件都指向同一个入口,飞书机器人这条链路也走同一个 Key,配置量直接砍半。
这篇会给你可复制的config.toml/settings.json骨架、飞书插件启用步骤、机器人回调验证动作,目标是一次性把消息收发链路跑通。你跟着做,最后能在飞书里跟本地的 OpenClaw 对话。
2. TaoToken 前置:统一 Key 与 API 通道
在动飞书之前,先把 Key 这条线理顺。TaoToken 的作用是给你一个统一的 API 入口和 Key,OpenClaw 里所有需要调模型的地方都填这一个地址和 Key,不用每个插件单独去申请。
先去控制台拿 Key:
- 控制台入口:https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite
- API Key 管理:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite
拿到 Key 之后,OpenClaw 的模型通道就填这个。API 基础地址是https://taotoken.net/api(这个地址不加 UTM,直接填)。如果你用的是 Claude Code 那套编码链路,可以看 https://taotoken.net/claude-code-anthropic?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite 里的接入说明;如果是长期跑编码或 Agent 任务,Coding Plan 更划算,入口在 https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite。
这里有个关键点:飞书插件本身不直接调模型,它只是把飞书消息转给 OpenClaw 核心,核心再用你配的 TaoToken Key 去调模型。所以 Key 只需要在 OpenClaw 主配置里配一次,飞书插件那边不用重复填。这就是统一 Key 的价值。
注意:Key 不要写进会提交到 Git 的文件里。本地用环境变量或者单独的 secrets 文件,配置里引用变量名。
3. 飞书侧:创建应用、开权限、拿凭证
飞书这边要做的事分四步:建应用、加机器人能力、开权限、拿 App ID / App Secret。
打开飞书开发者平台 https://open.feishu.cn/app?lang=zh-CN ,登录后点「创建企业自建应用」,填应用名称(比如「OpenClaw 助手」),选个图标,创建。
进入应用管理页,左侧导航找「添加应用能力」,在列表里选「机器人」,点添加。这一步是让应用具备收发消息的能力,不加的话后面回调收不到消息。
然后是权限。即时通讯相关的权限要开全,必需的那几个:
| 权限 | 说明 |
|---|---|
| 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这些是历史消息、编辑、撤回、表情相关,用不到就不开。
权限开完,左侧导航进「凭据与基础信息」,找到 App ID 和 App Secret,分别复制保存。这两个值后面要填进 OpenClaw 的飞书 channel 配置里。保存完先别关页面,后面发布版本还要用。
4. 可复制配置:config.toml 与 settings.json 骨架
OpenClaw 的配置有两种常见形态,一种是config.toml,一种是openclaw.json(有些版本叫settings.json)。下面给两份骨架,你按自己版本选。
先看config.toml的模型通道部分,这里填 TaoToken 的统一入口:
[model] provider = "openai-compatible" base_url = "https://taotoken.net/api" api_key = "${TAOTOKEN_API_KEY}" default_model = "claude-sonnet-4-20250514" [plugins] allow = ["feishu"] load_paths = ["./extensions/feishu"] [plugins.entries.feishu] enabled = true [channels.feishu] appId = "cli_XXXXXXXXXX" appSecret = "XXXXXXXXXXXXX" domain = "feishu" enabled = true dmPolicy = "open" allowFrom = ["*"]再看openclaw.json的等价写法,如果你用的是 JSON 配置,直接追加这段:
{ "plugins": { "allow": ["feishu"], "load": { "paths": ["C:\\Users\\你的用户名\\.clawdbot\\extensions\\feishu"] }, "entries": { "feishu": { "enabled": true } } }, "channels": { "feishu": { "appId": "cli_XXXXXXXXXX", "appSecret": "XXXXXXXXXXXXX", "domain": "feishu", "enabled": true, "dmPolicy": "open", "allowFrom": ["*"] } } }几个参数说明一下。base_url填https://taotoken.net/api,这是统一通道;api_key用环境变量引用,别硬编码。plugins.allow里加feishu是白名单,不加插件不会被加载。load.paths指向飞书插件代码的实际路径,Windows 下注意反斜杠转义。dmPolicy设open表示私聊开放,allowFrom设["*"]表示不限制来源,测试阶段方便,上线前建议收紧。
飞书插件本身用开源项目@m1heng-clawd/feishu,安装命令:
openclaw plugins install @m1heng-clawd/feishu装完插件代码会落到扩展目录,如果自动落位不对,就手动把 GitHub 项目 https://github.com/m1heng/Clawdbot-feishu 里的飞书 channel 代码放到load.paths指定的路径下。
5. 启用插件与验证消息链路
配置写完,开始启用和验证。
第一步,加 channel:
openclaw channels add交互里选「Yes」,再选「飞书」。这一步会把飞书 channel 注册进 OpenClaw。
第二步,打开配置界面确认:
openclaw config在界面里检查飞书插件是否已启用、App ID / App Secret 是否填对。这里有个坑:保存可能会失败,一定要先确保 OpenClaw 已经跑起来、并且能和飞书建立长连接,保存才会生效。如果 OpenClaw 没起,保存动作会静默失败,你以为存了其实没存。
第三步,重启服务让配置生效:
openclaw restart或者直接 reload 配置:
openclaw config reload第四步,回飞书开发者平台,点「创建版本并发布」,发布为在线应用。不发布的话,机器人能力不生效,飞书里搜不到也 @ 不到。
第五步,验证。打开飞书客户端或手机 App,搜索你的应用名,进私聊发一条消息,比如「你好」。或者在群里 @ 机器人 发消息。正常的话,OpenClaw 会收到消息,用 TaoToken 的 Key 调模型,然后把回复发回飞书。
验证成功的标志:飞书里能看到机器人回复,同时 OpenClaw 终端日志里有收到消息和发出请求的记录。如果只看到消息进来、没有回复出去,多半是im:message:send_as_bot权限没开或者没发布版本。
想单独验证模型通道是否通,可以用模型对话入口测一下:https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite 。如果那边能正常对话,说明 Key 和通道没问题,问题就在飞书插件侧。
6. 本篇常见错排查
报错一:插件装了但openclaw config里看不到飞书。检查plugins.allow里有没有feishu,load.paths路径对不对。Windows 下路径要用双反斜杠或正斜杠,单反斜杠会被当转义符。
报错二:保存配置失败。前面说过,先起 OpenClaw,确认长连接建立,再保存。顺序反了就会失败。
报错三:飞书里 @ 机器人没反应。先确认应用已发布为在线版本,再确认im:message.group_at_msg:readonly权限开了。群聊里必须 @ 机器人才会触发,不 @ 默认收不到(除非开了im:message.group_msg)。
报错四:机器人收到消息但不回复。检查im:message:send_as_bot权限,检查 TaoToken Key 是否有效、base_url是否填对。可以看 OpenClaw 日志里调模型那一步有没有报 401 或 404。
报错五:群聊里不同人说话被当成同一个人。开contact:user.base:readonly权限,让插件能解析发送者姓名。
报错六:插件代码路径不对导致加载失败。终极办法是把 GitHub 项目的飞书 channel 代码手动放到load.paths指定目录,然后在openclaw config里 reload 一次。
排查顺序建议:先看 OpenClaw 日志有没有收到飞书消息,再看有没有调模型,最后看有没有发回飞书。三段链路哪段断了一眼就能定位。
7. 下一步:把 Key 和通道固定下来
链路跑通之后,建议做两件事。一是把api_key从明文改成环境变量,export TAOTOKEN_API_KEY=你的Key,配置里用${TAOTOKEN_API_KEY}引用,这样换 Key 不用改配置文件。二是把allowFrom从["*"]收紧到具体用户或部门,避免机器人被滥用。
如果你后面还要接更多插件、更多模型,统一 Key 的优势会更明显——所有插件都指向https://taotoken.net/api这一个入口,换模型、换 Key 只改一处。长期跑编码或 Agent 任务的话,Coding Plan 的额度模型更适合持续调用,入口在 https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite 。接入文档和 API Key 管理分别在 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite 和 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite ,配置过程中遇到通道问题优先翻这两处。
飞书这条链路本身不复杂,坑主要集中在权限、发布版本、配置保存顺序这三处。把这三处过了,剩下的就是插件和 Key 的对接,一次配好,后面基本不用再动。