1. 从零把 OpenClaw 接进飞书,我踩过的那些坑
OpenClaw 是一个自托管网关,简单说就是跑在你自己机器上的一个进程,把飞书、Telegram、Discord 这类聊天工具和 AI 编码代理连起来。你在飞书里发一句话,网关收到后转发给模型,再把结果回传到飞书会话里。它适合愿意自己掌控数据、又想在聊天窗口里随手调用 AI 的开发者。这篇要解决的核心问题是:OpenClaw 本体装好了,飞书插件也装了,但应用凭证、权限、事件回调、统一 Key 这几块串不起来,消息发出去没反应。我会按环境准备、插件安装、TaoToken 统一 Key 接入、settings.json/config.toml 骨架配置、端到端验证的顺序走一遍,配置片段可以直接复制。
飞书这条链路比 Telegram 麻烦的地方在于,它需要在飞书开放平台建应用、配权限、订阅事件、发版本,任何一步漏了都会表现为「机器人不回消息」。而模型侧如果每个渠道都单独填一套 Key,维护起来很痛苦,所以这里用 TaoToken 做统一入口,一个 Key 覆盖多个模型通道。
2. 环境准备与 OpenClaw 安装
2.1 版本要求与安装前清理
Node 版本必须大于等于 22,这是硬门槛,低于这个版本装到一半会报模块解析错误。如果你之前装过旧版,先卸干净再装,避免残留配置干扰。
# 卸载旧版本 pnpm uninstall -g openclaw pnpm list -g --depth=0 # 删除旧配置目录 rm -rf ~/.openclaw一键安装脚本最省事:
curl -fsSL https://openclaw.ai/install.sh | bash也可以用 npm 或 pnpm 手动装:
# npm 方式 npm install -g openclaw@latest # pnpm 方式 pnpm add -g openclaw@latest装完先确认版本和健康状态:
openclaw --version openclaw doctordoctor会检查 Node 版本、配置目录权限、网关端口占用等,输出里如果有红色项,先解决再往下走。
2.2 初始化向导
openclaw onboard --install-daemon这个命令会引导你完成基础配置并注册后台守护进程。向导里会让你选模型提供方,这里先跳过或随便选,后面我们统一改成 TaoToken 通道。装完守护进程后,网关默认监听 18789 端口,Web UI 地址是:
http://127.0.0.1:18789/chat?session=agent%3Amain%3Amain常用基础命令记一下,后面排障会反复用:
openclaw gateway restart # 改配置后必须重启才生效 openclaw gateway stop openclaw models list # 列出当前可用模型 openclaw config # 打开配置编辑 openclaw tui # 终端界面3. TaoToken 统一 Key 接入
3.1 为什么用统一 Key
OpenClaw 支持多渠道多代理,如果飞书、钉钉、QQ 各配一套模型凭证,改一次模型要动好几处。TaoToken 提供统一的 API 通道,一个 Key 就能在多个模型之间切换,配置只写一份,渠道插件共用。对自托管网关这种场景来说,集中管理凭证比分散填写省心得多。
3.2 获取 Key 与配置通道
先到控制台创建 API Key:
https://taotoken.net/console/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=openclaw_feishu_deploy创建后复制 Key,注意只显示一次。接入文档在这里,参数细节可以对照看:
https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=openclaw_feishu_deployAPI 基础地址是https://taotoken.net/api,这个地址不带任何查询参数,直接填进配置即可。
3.3 config.toml 骨架配置
OpenClaw 的模型通道配置写在~/.openclaw/config.toml里。下面是一个可用的骨架,把apiKey换成你自己的:
[providers.taotoken] type = "openai-compatible" baseUrl = "https://taotoken.net/api" apiKey = "sk-你的TaoToken密钥" defaultModel = "claude-sonnet-4-20250514" [agents.main] provider = "taotoken" model = "claude-sonnet-4-20250514"type用openai-compatible是因为 TaoToken 的接口兼容 OpenAI 格式,OpenClaw 能直接识别。defaultModel和 agent 里的model保持一致,避免路由时找不到模型。
改完重启网关:
openclaw gateway restart openclaw models listmodels list里能看到 taotoken 通道下的模型,说明 Key 和地址都通了。如果这里就报 401,先别急着装飞书插件,把 Key 和 baseUrl 核对一遍。
4. 飞书插件安装与 settings.json 配置
4.1 安装插件
OpenClaw 默认自带 Feishu/Lark 插件,如果没有再手动装:
cd ~/.openclaw/extensions openclaw plugins install @m1heng-clawd/feishu openclaw plugins list openclaw plugins info feishu启用插件并加入信任列表:
openclaw plugins enable feishu openclaw config set plugins.allow '["feishu"]'4.2 飞书开放平台建应用
到飞书开放平台创建应用:
https://open.feishu.cn/app?lang=zh-CN建完拿到 App ID 和 App Secret,这两个是配对凭证。然后添加「机器人」应用能力,进入权限管理,批量导入下面这组权限:
{ "scopes": { "tenant": [ "im:message:send_as_bot", "im:message", "im:message.group_at_msg:readonly", "im:message.p2p_msg:readonly", "im:message:readonly", "im:resource", "contact:user.employee_id:readonly", "drive:drive:readonly", "application:application:self_manage", "application:bot.menu:write", "contact:contact.base:readonly", "event:ip_list", "im:chat.access_event.bot_p2p_chat:read", "im:chat.members:bot_access" ], "user": [ "im:chat.access_event.bot_p2p_chat:read" ] } }权限里im:message和im:message:send_as_bot是收发消息的核心,缺了机器人就是哑巴。事件与回调里勾选「接收消息」事件,否则飞书不会把用户消息推给网关。最后发布版本,不发布的话权限不生效。
4.3 settings.json 渠道配置
飞书渠道的配置写在~/.openclaw/settings.json的channels节点下:
{ "channels": { "feishu": { "enabled": true, "appId": "cli_xxxxxxxxxxxxxxxxxx", "appSecret": "xxxxxxxxxxxxxxxxxx", "domain": "feishu", "groupPolicy": "disabled" } } }domain填feishu表示国内版,groupPolicy设为disabled表示只响应私聊,群聊需要 @ 才触发的话改成对应策略。改完重启:
openclaw gateway restart5. 端到端验证与成功结果
5.1 配对流程
飞书插件需要配对才能绑定会话。在飞书里给机器人发一条消息,网关会生成配对码,然后执行:
openclaw pairing approve feishu 7QP32BRW配对码有时效性,收到后尽快执行。配对成功后再发一条消息,机器人应该能正常回复。
5.2 验证请求
在飞书私聊窗口发一句「你好,帮我列一下当前目录」,观察三件事:飞书里是否收到回复、网关日志是否有请求记录、openclaw models list里的模型是否被调用。日志可以这样看:
openclaw gateway logs --follow如果回复正常,说明飞书事件回调、插件路由、TaoToken 通道三段都通了。想单独验证模型通道,可以用模型对话页面直接测:
https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=openclaw_feishu_deploy5.3 长期编码场景
如果你打算把 OpenClaw 当日常编码助手用,飞书里频繁调用模型,建议走 Coding Plan,额度更稳:
https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=openclaw_feishu_deploy6. 常见报错排查
6.1 机器人不回消息
先查三处:飞书开放平台的事件订阅是否勾了「接收消息」、版本是否已发布、settings.json里enabled是否为 true。这三项任意一个没配好,消息都到不了网关。再看网关日志有没有收到事件推送,没有的话就是飞书侧的问题。
6.2 401 或模型不可用
models list报 401,多半是 Key 填错或 baseUrl 写成了带路径的地址。baseUrl 必须是https://taotoken.net/api,不要在后面加/v1之类的后缀。Key 复制时注意别带空格。
6.3 插件未加载
openclaw plugins list里看不到 feishu,检查是否执行了plugins enable feishu,以及plugins.allow数组里有没有包含feishu。信任列表没加的话插件会被安全策略拦下。
6.4 配对码失效
配对码有时效,过期后重新在飞书发消息生成新的,再执行pairing approve。别用旧的码反复试。
6.5 改配置不生效
OpenClaw 的配置改动必须重启网关才生效,openclaw gateway restart是高频操作。改完config.toml或settings.json都记得重启一次。
整条链路跑通后,飞书里发消息、网关转发、TaoToken 通道调模型、结果回传,四步闭环。后面换模型只改config.toml里的model字段,飞书侧不用动。