1. 为什么单技能不够用:飞书全家桶联动的真实痛点
OpenClaw 接入飞书之后,很多人第一步会去试单个技能:让 lark-vc 搜一场会议、让 lark-doc 写一段文档、让 lark-drive 传一个文件。单点跑通的那一刻确实爽,但用不了几天你就会发现一个问题——每个技能只解决了链路里的一个环节,剩下的步骤还得你自己手动接。
举个我实际遇到的例子。每周三下午产品评审会结束,我需要做四件事:找到这场会议的妙记、把 AI 纪要里的结论和待办提取出来、追加写入「产品评审纪要汇总」文档、再把摘要发到产品群。以前我是这么干的:打开飞书日历确认会议、进妙记页面复制纪要、切到文档手动粘贴、最后回群里发消息。四步操作,跨三个应用,中间任何一步忘了就断链。
OpenClaw 的多技能协同编排解决的正是这个问题。它的核心逻辑不复杂:你把一个完整目标用自然语言描述出来,OpenClaw 自动把目标拆成多个技能调用,按依赖关系串成执行链。上一个技能的输出,就是下一个技能的输入。你不需要写脚本,但你需要理解每个技能负责什么、怎么把它们的输入输出对齐。
这篇文章聚焦飞书全家桶里最常用的三类能力——lark-vc 会议、lark-doc 文档、lark-drive 云盘,演示怎么用 TaoToken 统一 Key 打通 API 通道,把这三类技能编排成稳定的 AI 办公工作流。我会给出可复制的 config.toml 骨架、settings.json 关键字段,以及每一步的验证动作。适合已经跑通 OpenClaw 基础接入、想进一步做多技能串联的读者。
2. TaoToken 前置:统一 Key 与 API 通道配置
2.1 为什么多技能场景更需要统一 Key
单技能调试时,你可能每个技能单独配一个 Key,能跑就行。但多技能编排场景下,一条调用链会连续触发 lark-vc、lark-doc、lark-drive 三个技能,如果每个技能走不同的 API 通道、用不同的鉴权方式,排障会非常痛苦——你根本分不清是哪个环节的 Key 失效了。
TaoToken 在这里的作用是提供统一的 API 通道和 Key 管理。你只需要在 TaoToken 控制台创建一个 Key,然后在 OpenClaw 的配置文件里把这个 Key 配到所有飞书技能上。这样整条调用链走的是同一个通道,出问题时排查范围立刻缩小。
具体操作:先到 TaoToken 控制台创建一个 API Key,然后打开接入文档确认当前的 base_url 和鉴权头格式。这两个信息后面要写进 config.toml。
注意:API 地址用 https://taotoken.net/api,不要带任何多余路径后缀。Key 创建后只显示一次,先复制到安全的地方。
2.2 config.toml 骨架:飞书三技能的统一接入
OpenClaw 的技能配置集中在 config.toml 里。下面是我实测可用的骨架,把 lark-vc、lark-doc、lark-drive 三个技能都指向同一个 TaoToken 通道:
[provider.taotoken] base_url = "https://taotoken.net/api" api_key = "sk-你的TaoToken密钥" timeout = 60 [skill.lark-vc] provider = "taotoken" model = "claude-sonnet-4-20250514" scopes = ["search", "notes", "transcript"] [skill.lark-doc] provider = "taotoken" model = "claude-sonnet-4-20250514" scopes = ["create", "update", "search"] [skill.lark-drive] provider = "taotoken" model = "claude-sonnet-4-20250514" scopes = ["files", "permission", "create_folder"]三个技能共用[provider.taotoken]这一段,意味着它们走同一个 base_url 和同一个 Key。scopes 字段决定每个技能能调用哪些子操作——lark-vc 需要 search 和 notes 才能完成「搜会议+提纪要」,lark-drive 需要 files 和 permission 才能做归档和权限清理。
2.3 settings.json 关键字段
config.toml 管的是技能级配置,settings.json 管的是运行时行为。多技能编排最关键的几个字段:
{ "orchestration": { "max_chain_depth": 6, "step_timeout": 45, "on_step_failure": "abort_and_report", "pass_output_as_input": true }, "lark": { "default_doc_token": "", "default_folder_token": "", "notify_channel": "product-team" } }max_chain_depth限制一条调用链最多串几个技能,设成 6 足够覆盖「搜会议→提纪要→写文档→发通知」这类四步链路。pass_output_as_input必须为 true,这是多技能串联的开关——上一个技能的输出会自动作为下一个技能的输入上下文。on_step_failure设成 abort_and_report,任何一步失败就中止并报告,避免脏数据继续往下传。
3. 可复制配置:三条工作流的编排写法
3.1 工作流一:会议→纪要→归档→通知
这是最高频的一条链路。目标很明确:会议结束后,自动提取纪要、写入文档、发通知给参会人。
调用链是 lark-vc+search → lark-vc+notes → lark-doc+update → lark-im 发消息。在 OpenClaw 里你不需要手动写这个链,只需要用自然语言描述目标:
帮我整理今天下午3点的产品评审会议纪要,提取核心结论和待办事项, 追加写入「产品评审纪要汇总」文档,然后把摘要发到「产品团队」群。OpenClaw 会自动规划:先用 lark-vc+search 定位会议,再用 lark-vc+notes 提取 AI 纪要(包含总结、待办、章节),然后 lark-doc+update 追加写入指定文档,最后 lark-im 发摘要到群。
这里有个容易踩的坑:文档名要写精确。如果你说「写入纪要文档」,OpenClaw 可能匹配到多个同名文档。建议在 settings.json 的default_doc_token里预置常用文档的 token,或者在指令里直接带上文档链接。
3.2 工作流二:项目启动自动化
新项目启动时,需要建目录、创建文档模板、发通知。这条链路的调用顺序是 lark-drive create_folder → lark-doc+create(多次)→ lark-im 发消息。
新项目「2026-Q2品牌升级」启动了,帮我: 1. 在云空间「项目文件」下建项目文件夹(含子目录:需求/设计/纪要/交付物) 2. 创建项目启动文档,包含项目背景、目标、里程碑模板 3. 把项目文件夹链接发到「品牌项目群」注意第 2 步会触发多次 lark-doc+create——每个子文档一次调用。max_chain_depth设成 6 时,如果子文档超过 3 个可能会触顶。这种情况可以把max_chain_depth调到 10,或者把多个文档创建合并成一次批量调用。
3.3 工作流三:每日简报定时任务
前两条是手动触发,这条是自动跑的。在 HEARTBEAT.md 里配置:
## 每日 08:30 执行 - 用 lark-vc+search 搜索昨天所有已结束的会议 - 用 lark-vc+notes 提取每个会议的待办事项 - 汇总所有待办,按优先级排序 - 用 lark-im 发送「今日待办清单」到我的飞书 - 追加写入「每日工作日志」文档HEARTBEAT.md 是 OpenClaw 的定时任务描述文件,格式就是自然语言加时间标记。OpenClaw 到点自动解析并执行。这条链路里 lark-vc+notes 会被调用多次(每个会议一次),所以step_timeout建议设成 45 秒以上,避免会议多的时候超时。
4. 验证请求:确认链路真的跑通了
配置写完不代表能跑。多技能编排的验证要分两步:先验证单个技能能通,再验证串联链路能通。
4.1 单技能连通性验证
先用最简指令测试每个技能是否走通了 TaoToken 通道:
用 lark-vc 搜索我今天的会议如果返回会议列表,说明 lark-vc 的 provider 配置正确。同理测试:
用 lark-doc 搜索「产品评审纪要汇总」文档 用 lark-drive 列出「项目文件」目录下的内容三个技能单独都能返回结果,说明 TaoToken 的 Key 和 base_url 配置没问题。如果某个技能报 401,检查 config.toml 里该技能的 provider 是否指向了 taotoken。
4.2 串联链路验证
单技能通了之后,跑一条完整链路:
帮我整理今天下午3点的产品评审会议纪要,提取核心结论和待办事项, 追加写入「产品评审纪要汇总」文档,然后把摘要发到「产品团队」群。成功的标志有三个:文档里出现了新的纪要内容、群里收到了摘要消息、OpenClaw 的执行日志显示四个步骤全部完成。如果中间某步失败,日志会标出是哪一步——这就是统一 Key 的好处,你不用猜是哪个通道的问题。
4.3 定时任务验证
HEARTBEAT.md 配好之后,不用等到第二天。可以手动触发一次:
立即执行每日简报任务观察是否按预期汇总了待办、发了消息、写了日志。确认无误后,定时任务就会在设定时间自动跑。
5. 本篇常见错排查
5.1 技能调用返回 401 或 403
最常见的原因是 config.toml 里某个技能的 provider 没指向 taotoken,或者 api_key 复制时带了空格。检查方法:把三个技能的 provider 字段都确认一遍,然后重新从 TaoToken 控制台复制一次 Key。如果只有某个技能报 401,基本就是这个技能的配置漏了。
5.2 串联链路在第二步断掉
如果 lark-vc+search 成功了但 lark-vc+notes 失败,通常是 scopes 没配全。lark-vc 的 scopes 必须同时包含 search 和 notes,只配 search 的话搜得到会议但提不了纪要。同理 lark-drive 做权限清理时,scopes 里必须有 permission。
5.3 输出没有传给下一个技能
如果文档写入了空内容,或者群里发的消息是空的,检查 settings.json 里的pass_output_as_input是否为 true。这个字段默认可能是 false,不开的话每个技能独立执行,上一个的输出不会流到下一个。
5.4 定时任务不执行
HEARTBEAT.md 的时间格式要严格匹配。## 每日 08:30 执行这种写法是有效的,但如果写成## 每天8点半可能解析不了。另外确认 OpenClaw 的守护进程在运行,定时任务依赖后台进程常驻。
5.5 文档匹配到错误的目标
指令里写「写入纪要文档」这种模糊描述时,OpenClaw 可能匹配到多个文档。解决办法是在 settings.json 里预置default_doc_token,或者在指令里直接带文档链接。链接格式是 https://xxx.feishu.cn/docx/xxx,OpenClaw 能直接解析 token。
6. 把编排能力用起来:从工具到助手的跨越
单技能用起来像工具,多技能串联用起来才像助手。工具是你告诉它做什么,它做完等你下一条指令;助手是你告诉它目标,它自己规划步骤,中间不需要你介入。这个体验差距在飞书全家桶场景里特别明显——会后归档、项目启动、每日简报这三条链路,以前每条都要手动跑四五个步骤,现在一句话触发,OpenClaw 自己串完。
我接下来的做法是把公司最高频的三条工作流都配成 HEARTBEAT 定时任务,彻底从这些重复操作里解放出来。如果你也想把编排能力用起来,建议先从「会议→纪要→归档→通知」这条链路开始跑通,再逐步加项目启动和每日简报。
配置过程中如果遇到 Key 或通道问题,直接去 TaoToken 控制台重新生成 API Key,对照接入文档检查 base_url 和鉴权头。想把模型对话能力也接进工作流的话,可以在模型对话页面先试跑几轮指令,确认输出格式符合预期再写进 config.toml。长期做编码和 Agent 编排的读者,Coding Plan 里有更完整的通道配置和额度方案,适合把多条工作流长期跑起来。