☰
让 AI 住进飞书:OpenClaw 接入飞书机器人的完整实践与 TaoToken 统一通道配置
2026/10/8 18:12:29 网站建设 项目流程

1. 飞书群里 @ 一下,AI 就回你:OpenClaw 接入的真实场景

飞书机器人接入 AI 这件事,我最早是在一个 8 人小团队里看到的。他们把日报、周报、需求评审都放在飞书群里,但每次要查个接口文档、翻译段英文、或者让 AI 帮忙改一版文案,都得切到浏览器另开一个对话窗口,复制粘贴来回倒腾。后来他们用 OpenClaw 把机器人接进飞书群,直接在群里 @ 一下机器人就能对话,整个流程顺了很多。

OpenClaw 是一个开源的 AI 助手网关,能对接多种大模型通道,同时对外暴露飞书、钉钉、企业微信等 IM 平台的机器人接口。它做的事情说白了就是:把飞书群里的消息转成模型请求,再把模型返回的内容发回群里。适合谁用?三类人最合适——一是想把 AI 塞进现有办公流的小团队,二是不想让成员各自开账号、想统一管理模型 Key 的团队管理员,三是想拿飞书机器人做内部工具、又不想从零写回调服务的开发者。

这篇要讲的落地链路是完整的:飞书开放平台建应用 → 配事件订阅和消息回调 → OpenClaw 侧对接 → 用 TaoToken 统一 Key/API 通道完成模型调用 → 飞书群里 @ 机器人验证端到端。每一步我都会给可复制的配置和参数,你照着做基本能跑通。中间踩过的坑我也会标出来,尤其是回调地址校验和权限清单这两块,新手最容易卡住。

整条链路里,模型调用这一环我建议用 TaoToken 统一通道来管。原因很直接:OpenClaw 支持配置多个模型通道,但如果你每个通道都单独填一家厂商的 Key,后面换模型、加模型、团队共享都会很乱。TaoToken 提供一个统一的 Base URL 和 Key,OpenClaw 侧只配一次,模型 ID 按需切换就行。官网在 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 入口是 https://taotoken.net/api ,后面配置里会反复用到。

2. TaoToken 前置准备:拿到统一 Key 和 Base URL

在动飞书之前,先把模型通道这块搞定,不然后面联调的时候你分不清是飞书回调的问题还是模型请求的问题。TaoToken 的角色是统一通道:你不需要在 OpenClaw 里为每个模型厂商单独配 Key,只需要一个 TaoToken 的 API Key 和一个 Base URL,模型用哪个通过 Model ID 指定。

第一步,打开 https://taotoken.net/api-keys ,登录后创建一个 API Key。创建的时候给它起个能认出来的名字,比如openclaw-feishu,方便后面在 OpenClaw 配置里对应。Key 创建完只显示一次,复制下来存好,丢了就得重建。

第二步,确认 Base URL。TaoToken 的 API 入口是https://taotoken.net/api,注意这里不带任何查询参数,配置里就填这个。有些教程会让你在 Base URL 后面拼/v1,这个要看你用的客户端要求——OpenClaw 的 OpenAI 兼容通道一般填到/api就行,如果它内部会自己拼/v1/chat/completions,你多填一层反而会 404。我实测下来,OpenClaw 的openaiprovider 填https://taotoken.net/api是通的。

第三步,确认你要用的 Model ID。TaoToken 支持多种模型,具体列表可以在 https://taotoken.net/doc 里查。常见的比如claude-sonnet-4-20250514、gpt-4o这类。你先记下准备用的那个 Model ID,后面 OpenClaw 配置里要填。

这里有个细节要注意:TaoToken 的 Key 是统一 Key,意味着你换模型不用换 Key,只改 Model ID 就行。这对 OpenClaw 这种要跑多个机器人、可能不同群用不同模型的场景特别友好。你可以在 OpenClaw 里配多个 provider,每个 provider 用同一个 TaoToken Key,但 Model ID 不同,这样不同飞书群可以走不同模型。

如果你后面要长期跑编码类或 Agent 类任务,可以看下 Coding Plan 页面 https://taotoken.net/coding-plan ,它针对高频调用场景有更合适的配额方案。不过飞书机器人这种对话场景,普通 API Key 就够用了。

前置准备做完,你手里应该有三样东西:TaoToken API Key、Base URLhttps://taotoken.net/api、一个准备用的 Model ID。这三样就是 OpenClaw 侧模型通道的全部配置项,后面直接填。

3. 可复制配置:飞书应用 + OpenClaw 对接全流程

这一节是整篇的核心,我把飞书开放平台和 OpenClaw 两侧的配置都拆成可复制的片段。你按顺序做,中间不要跳步,尤其是权限和事件订阅这两块。

3.1 飞书开放平台创建应用

打开 https://open.feishu.cn/app ,点「创建企业自建应用」。名称填OpenClaw助手之类,图标随意。创建完进入应用详情页,左侧菜单找到「凭证与基础信息」,这里能看到App ID和App Secret,这两个后面 OpenClaw 配置要用,先复制存好。

接着配权限。左侧「权限管理」,搜索并开通以下权限(这是最小可用集,少一个机器人就可能不回消息):

权限代码说明用途
im:message获取与发送单聊、群组消息收发消息核心权限
im:message.group_at_msg接收群聊中@机器人消息事件群里 @ 机器人触发
im:message.p2p_msg接收单聊消息私聊机器人触发
im:chat获取群组信息识别消息来自哪个群
im:chat:readonly读取群信息同上,只读

开通后记得点「批量开通」,有些权限需要管理员审批,自建应用一般自己就能批。

3.2 配置事件订阅与消息回调

左侧「事件与回调」→「事件订阅」。这里有两种模式:长连接和 Webhook。OpenClaw 支持长连接模式(WebSocket),配置更简单,不需要公网地址。如果你用 Webhook 模式,需要填一个公网可访问的回调地址,本地开发得用内网穿透,比较麻烦。我建议先用长连接模式跑通。

在事件订阅页面,订阅以下事件:

  • im.message.receive_v1(接收消息)
  • im.message.message_read_v1(消息已读,可选)

如果你用 Webhook 模式,回调地址填你的服务地址,比如https://your-domain.com/feishu/webhook。填完飞书会发一个 challenge 校验请求,你的服务要能正确返回challenge值。OpenClaw 内置了处理逻辑,你只要把地址配对就行。

这里有个坑:飞书的事件订阅有「加密策略」,如果你开了 Encrypt Key,OpenClaw 侧也要填对应的 Key,否则解密失败。新手建议先不开加密,跑通后再加。

3.3 OpenClaw 侧配置文件

OpenClaw 的配置文件一般是config.yaml或config.toml,具体看你用的版本。下面给一份可复制的 YAML 片段,路径按你实际安装位置调整:

# OpenClaw 配置片段 feishu: app_id: "cli_xxxxxxxxxxxx" app_secret: "xxxxxxxxxxxxxxxxxxxxxxxx" encrypt_key: "" # 先留空,跑通后再加 verification_token: "xxxxxxxxxxxx" connection_mode: "websocket" # 长连接模式,不需要公网地址 providers: - name: "taotoken" type: "openai" base_url: "https://taotoken.net/api" api_key: "sk-你的TaoTokenKey" model: "claude-sonnet-4-20250514" bot: provider: "taotoken" system_prompt: "你是飞书群里的AI助手,回答简洁,中文优先。" max_tokens: 2048

如果你用的是 JSON 格式配置,等价片段如下:

{ "feishu": { "app_id": "cli_xxxxxxxxxxxx", "app_secret": "xxxxxxxxxxxxxxxxxxxxxxxx", "connection_mode": "websocket" }, "providers": [ { "name": "taotoken", "type": "openai", "base_url": "https://taotoken.net/api", "api_key": "sk-你的TaoTokenKey", "model": "claude-sonnet-4-20250514" } ], "bot": { "provider": "taotoken", "system_prompt": "你是飞书群里的AI助手,回答简洁,中文优先。" } }

注意type填openai,因为 TaoToken 提供 OpenAI 兼容接口。base_url填https://taotoken.net/api,不要多填/v1。api_key填你在 https://taotoken.net/api-keys 创建的那个 Key。model填你要用的 Model ID。

3.4 启动 OpenClaw 并确认连接

配置写完,启动 OpenClaw:

openclaw start --config ./config.yaml

如果长连接模式配对了,日志里会打印类似feishu websocket connected的字样。这时候去飞书开放平台的事件订阅页面,应该能看到「已连接」状态。如果显示未连接,检查 App ID、App Secret 是否填对,以及应用是否已发布版本(自建应用需要创建版本并发布,否则事件不生效)。

发布版本这一步很多人漏掉:在飞书开放平台「版本管理与发布」里创建一个版本,申请发布,管理员审批通过后应用才真正生效。没发布的话,你在群里 @ 机器人是没反应的。

4. 验证请求:飞书群里 @ 机器人跑通端到端

配置都就绪后,验证环节分两步:先确认模型通道本身是通的,再确认飞书链路是通的。分开验证的好处是出问题能快速定位是哪一段。

4.1 先单独验证 TaoToken 通道

在启动 OpenClaw 之前,你可以先用 curl 直接打 TaoToken 的接口,确认 Key 和 Base URL 没问题:

curl https://taotoken.net/api/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-你的TaoTokenKey" \ -d '{ "model": "claude-sonnet-4-20250514", "messages": [{"role": "user", "content": "用一句话介绍你自己"}], "max_tokens": 100 }'

如果返回里有choices数组和正常的content,说明通道没问题。如果返回 401,说明 Key 不对;如果返回 404,检查 Base URL 是不是多填了/v1;如果返回model not found,说明 Model ID 写错了,去 https://taotoken.net/doc 核对。

4.2 飞书群内 @ 机器人验证

把机器人拉进一个飞书群:群设置 → 群机器人 → 添加机器人 → 搜索你创建的应用名。添加后,在群里发一条@OpenClaw助手 你好。

正常的话,几秒内机器人会回复。如果没回复,按这个顺序查:

第一,看 OpenClaw 日志有没有收到事件。如果日志里完全没有im.message.receive_v1,说明飞书事件没推过来,检查应用版本是否已发布、事件订阅是否配了im.message.receive_v1、机器人是否真的在群里。

第二,如果日志收到了事件但没回复,看模型请求那一段有没有报错。常见的是401或local proxy failed,前者是 TaoToken Key 问题,后者是 OpenClaw 到 TaoToken 的网络问题。

第三,如果模型返回了但群里没显示,检查im:message权限是否开通,以及机器人是否有发消息的权限。

我实测下来,最容易卡住的是应用版本没发布和权限没批量开通这两点。飞书开放平台的权限开通后要点「批量开通」按钮,不是勾选就生效的。

4.3 验证多模型切换

如果你想验证 TaoToken 统一通道的多模型能力,可以在 OpenClaw 配置里加第二个 provider:

providers: - name: "taotoken-claude" type: "openai" base_url: "https://taotoken.net/api" api_key: "sk-你的TaoTokenKey" model: "claude-sonnet-4-20250514" - name: "taotoken-gpt" type: "openai" base_url: "https://taotoken.net/api" api_key: "sk-你的TaoTokenKey" model: "gpt-4o"

两个 provider 用同一个 Key,只是 Model ID 不同。你可以在不同飞书群绑定不同 provider,实现「这个群用 Claude,那个群用 GPT」的效果。这就是统一通道的价值:Key 只维护一份,模型按需切。

5. 本篇常见错排查:401、local proxy failed、reading choices、OAuth

这一节把接入过程中最常撞到的几个报错单独拎出来,每个都给现象、原因和修法。你遇到报错先来这里对号入座。

5.1 401 Unauthorized

现象:OpenClaw 日志里模型请求返回401,或者 curl 测试时返回{"error":{"message":"Invalid API key"}}。

原因:TaoToken API Key 填错、过期、或者复制时带了空格。也有可能是 Key 被删了。

修法:去 https://taotoken.net/api-keys 重新创建一个 Key,复制时注意不要带首尾空格。配置里api_key字段填sk-开头的完整字符串。改完重启 OpenClaw。

5.2 local proxy failed

现象:日志里出现local proxy failed或connection refused,模型请求发不出去。

原因:OpenClaw 所在机器到https://taotoken.net/api的网络不通。可能是 DNS 解析问题,也可能是本机网络策略限制。

修法:先在机器上curl -I https://taotoken.net/api看能不能通。如果不通,检查 DNS 配置,或者换一个网络环境测试。注意不要用任何非正规的网络工具,企业内网的话找运维确认出站策略。

5.3 reading choices 相关报错

现象:日志里出现reading 'choices'或Cannot read properties of undefined (reading 'choices')。

原因:模型返回的 JSON 结构不符合 OpenAI 兼容格式,OpenClaw 解析时拿不到choices字段。常见于 Base URL 填错,请求打到了非兼容接口上。

修法:确认base_url填的是https://taotoken.net/api,type填的是openai。如果你填了别的 type,OpenClaw 可能用了不兼容的请求格式。改完重启。

5.4 OAuth 相关报错

现象:飞书侧报OAuth或app ticket相关错误,机器人拿不到 token。

原因:飞书应用的 App ID / App Secret 填错,或者应用未发布导致拿不到 tenant_access_token。

修法:核对飞书开放平台「凭证与基础信息」里的 App ID 和 App Secret,确保和 OpenClaw 配置一致。然后确认应用已创建版本并发布,管理员已审批。飞书机器人拿 token 依赖应用发布状态,没发布就是拿不到。

5.5 机器人收到消息但不回复

现象:OpenClaw 日志显示收到了im.message.receive_v1,但模型请求没发出,或者发出了但群里没显示。

原因:可能是bot.provider没配对,或者im:message权限没开通。

修法:检查配置里bot.provider是否等于某个 provider 的name。检查飞书权限里im:message是否已开通并批量生效。如果模型请求发出了但群里没显示,看返回内容是否为空,可能是max_tokens设太小被截断。

6. 统一通道收尾:把 Key 管理和模型切换交给 TaoToken

整条链路跑通后,你手里其实只维护了一份模型凭证——TaoToken 的 API Key。飞书侧管的是应用凭证,OpenClaw 侧管的是通道配置,模型调用全部走 TaoToken 统一出口。这个结构的好处在你加第二个、第三个机器人的时候会特别明显:新机器人只需要复制一份 provider 配置,Key 不用重新申请,模型 ID 改一下就行。

如果你后面要把这套东西扩展到更多群、更多场景,比如让不同群走不同模型、或者给机器人加编码能力,可以看下 Coding Plan https://taotoken.net/coding-plan ,它针对长期高频调用有更合适的方案。模型对话的在线调试入口在 https://taotoken.net/chat ,你可以先在网页上试好 Model ID 和 prompt,再填进 OpenClaw 配置,省得反复重启服务。

接入文档在 https://taotoken.net/doc ,里面列了所有支持的 Model ID 和参数说明。API Key 管理在 https://taotoken.net/api-keys ,建议给每个机器人单独建一个 Key,方便后面按机器人排查调用量和问题。控制台在 https://taotoken.net/console ,能看到调用记录和用量。

最后说个实操细节:OpenClaw 的日志级别建议开到debug,这样飞书事件和模型请求都能看到,排查问题快很多。跑稳定后再调回info,不然日志量会很大。飞书那边的事件订阅如果开了加密,记得把 Encrypt Key 同步到 OpenClaw 配置里,不然解密失败会静默丢事件,这个坑我踩过,日志里什么都不报,就是没反应。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询