![[开源]飞书 CLI AI 效率系统 — 10 大工作流 Skill 实战拆解与 TaoToken 接入指南](http://pic.xiahunao.cn/yaotu/[开源]飞书 CLI AI 效率系统 — 10 大工作流 Skill 实战拆解与 TaoToken 接入指南)
1. 飞书 CLI 效率系统到底解决什么问题飞书开放平台这几年把消息、日历、云文档、多维表格、任务、通讯录几乎全部 API 化了官方也提供了命令行工具lark-cli。但真正动手的人会发现一个尴尬API 有了CLI 有了可你每天还是要手动敲一堆参数、拼 JSON、翻文档找字段名。想让它变成说一句话就干活的效率系统中间缺的是一层 AI Skill 封装。我理解的飞书 CLI AI 效率系统本质是把飞书 CLI 当成 AI 的手和脚把 Claude Agent / OpenClaw 这类 Agent 当成大脑中间用 10 个 Skill 把高频场景固化下来。你对着 Agent 说今天有什么安排它去调lark-cli calendar你说上个月谁联系过我它去查多维表格里的互动记录。整个过程你不需要记任何命令只需要说人话。这套东西适合谁三类人最合适。第一类是个人开发者想给自己搭一套自动化工作流又不想从零写后端第二类是小团队的技术负责人想用最低成本把飞书里的重复操作自动化第三类是正在学 Agent / Skill 开发的同学需要一个真实、可跑通、有 10 个完整案例的练手项目。开源项目lark-workflow-feishu-cli就是干这个的它把 10 个实战用例完整迁移到飞书生态每个 Skill 都能单独跑。为什么值得做因为飞书、企业微信、钉钉这三大平台都开放了 CLI 能力企业系统的操作入口正在从点鼠标变成调命令。谁先把 CLI AI Skill 这套组合跑顺谁就能在效率上拉开差距。下面我从环境准备讲到 10 个 Skill 的配置再到用 TaoToken 统一接入全部给可复制的片段。2. TaoToken 前置准备与飞书 CLI 环境搭建在写 Skill 之前先把两件事搞定飞书 CLI 能跑通AI 通道能调通。很多人卡在第二步因为要同时管理多个模型的 Key、Base URL、额度切换起来很烦。我的做法是用 TaoToken 做统一入口一个 Key 走所有模型请求飞书 CLI 那边只管业务逻辑。先说飞书 CLI 的安装。lark-cli是官方命令行工具装完之后要配置应用凭证。你需要先在飞书开放平台建一个自建应用拿到App ID和App Secret然后开通对应的权限日历、消息、多维表格、云文档等按需勾选。配置命令大致是这样# 安装飞书 CLI以 npm 为例具体以官方文档为准 npm install -g larksuiteoapi/lark-cli # 配置应用凭证 lark-cli config set app_id cli_xxxxxxxxxxxx lark-cli config set app_secret xxxxxxxxxxxxxxxxxxxx # 验证配置是否生效 lark-cli auth statusauth status返回tenant_access_token有效就说明飞书侧通了。这一步踩过的坑是权限没开全后面调日历接口会报permission denied建议一开始把要用的模块权限都勾上。再说 TaoToken 侧。TaoToken 提供统一的 API 通道Base URL 是https://taotoken.net/api你在这里申请一个 Key就能在 Agent 配置里统一填。它的作用是让你不用为每个模型单独维护一套凭证Skill 里只认一个入口。申请入口在控制台的 API Keys 页面拿到形如sk-xxxx的 Key 之后先别急着写进 Skill用一条 curl 验证通道是否正常curl https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer sk-你的Key \ -H Content-Type: application/json \ -d { model: claude-sonnet-4-20250514, messages: [{role: user, content: ping}] }返回里有choices字段且内容正常说明通道没问题。如果返回 401多半是 Key 写错或没带Bearer前缀如果报local proxy failed检查你的网络出口和 Base URL 是否写成了https://taotoken.net/api注意不要多加/v1之外的路径。这一步通了后面 10 个 Skill 才有稳定的模型调用底座。3. 10 大工作流 Skill 的可复制配置片段这一节是核心。10 个 Skill 我按场景分成三组日程与任务类、信息检索类、内容生成类。每个 Skill 的配置结构一致都是namedescriptiontoolsprompt四段。下面给出可直接复制的 JSON 片段路径放在项目的skills/目录下文件名和 Skill 名对应。先看日程管理 Skill对应今天有什么安排{ name: daily-schedule, description: 查询并汇总用户今天的日程安排, tools: [lark-cli calendar events list], prompt: 调用 lark-cli 查询今天 00:00 到 23:59 的日历事件按开始时间排序输出时间、标题、参与人。若为空则回复今天没有安排。, model: claude-sonnet-4-20250514, base_url: https://taotoken.net/api }任务分配 Skill对应创建任务分配给我{ name: task-assign, description: 在飞书任务中创建任务并分配给指定成员, tools: [lark-cli task create], prompt: 解析用户意图中的任务标题、截止时间、负责人调用 lark-cli task create 创建任务。负责人默认是当前用户除非明确指定他人。, model: claude-sonnet-4-20250514, base_url: https://taotoken.net/api }个人 CRM Skill对应上个月谁联系过我{ name: personal-crm, description: 查询多维表格中的互动记录汇总联系人往来, tools: [lark-cli bitable records list], prompt: 从互动记录表中筛选指定时间范围内的记录按联系人聚合统计邮件、会议次数和最后联系时间按最后联系时间倒序输出。, model: claude-sonnet-4-20250514, base_url: https://taotoken.net/api }会议待办整理 Skill对应整理最近一周会议的待办事项{ name: meeting-todos, description: 搜索过去一周的会议纪要并提取待办, tools: [lark-cli calendar events list, lark-cli docx blocks list], prompt: 先查过去 7 天的会议再读取有纪要的会议文档提取其中的待办事项标注来源会议和负责人。, model: claude-sonnet-4-20250514, base_url: https://taotoken.net/api }每日早晨简报 Skill{ name: morning-brief, description: 生成每日早晨简报并发送到指定群聊, tools: [lark-cli calendar events list, lark-cli im messages create], prompt: 汇总今天的日程、待办、天气占位信息生成简报文本调用 lark-cli 发送到指定群聊。, model: claude-sonnet-4-20250514, base_url: https://taotoken.net/api }知识库管理 Skill{ name: wiki-manage, description: 在飞书知识库中检索和整理文档, tools: [lark-cli wiki nodes list, lark-cli docx blocks list], prompt: 根据用户关键词在知识库中检索相关文档返回标题、链接和摘要。, model: claude-sonnet-4-20250514, base_url: https://taotoken.net/api }社交媒体管理 Skill{ name: social-manage, description: 管理社交媒体内容排期与发布记录, tools: [lark-cli bitable records list, lark-cli bitable records create], prompt: 从内容排期表读取待发布内容更新发布状态记录发布时间。, model: claude-sonnet-4-20250514, base_url: https://taotoken.net/api }夜间综合分析 Skill{ name: nightly-analysis, description: 夜间汇总当天数据并生成分析报告, tools: [lark-cli bitable records list, lark-cli docx blocks create], prompt: 汇总当天各表数据生成分析报告写入指定文档。, model: claude-sonnet-4-20250514, base_url: https://taotoken.net/api }创意写作 Skill{ name: creative-writing, description: 根据主题生成创意文案并存入文档, tools: [lark-cli docx blocks create], prompt: 根据用户给定主题生成文案写入指定文档。, model: claude-sonnet-4-20250514, base_url: https://taotoken.net/api }每日股票分析 Skill{ name: stock-daily, description: 生成每日股票分析简报, tools: [lark-cli im messages create], prompt: 根据用户关注的股票列表生成分析简报发送到指定群聊。, model: claude-sonnet-4-20250514, base_url: https://taotoken.net/api }身体健康管理 Skill{ name: health-track, description: 记录并汇总每日健康数据, tools: [lark-cli bitable records create, lark-cli bitable records list], prompt: 记录用户输入的健康数据按周汇总趋势。, model: claude-sonnet-4-20250514, base_url: https://taotoken.net/api }这 10 个片段里base_url全部指向 TaoTokenmodel可以按需换成你额度里可用的模型 ID。注意tools字段里的命令是示意实际以lark-cli当前版本的子命令为准建议先用lark-cli --help确认。4. 验证请求与成功结果对照配置写完不代表能跑。我习惯用单 Skill 直调的方式先验证再挂到 Agent 上。以日程 Skill 为例先手动跑一遍底层命令lark-cli calendar events list \ --start_time 2025-06-01T00:00:0008:00 \ --end_time 2025-06-01T23:59:5908:00返回 JSON 里有items数组每个元素含summary、start_time、attendees说明飞书侧数据能取到。然后把这个命令塞进 Skill 的tools让 Agent 去调。成功时你会看到 Agent 输出类似今天你有 3 场安排 1. 09:30 产品评审会 — 参与人张三、李四 2. 14:00 技术方案讨论 — 参与人王五 3. 16:30 周会 — 参与人全组如果 Agent 只回我无法访问日历八成是 Skill 的tools没写对或者飞书应用权限没开。验证模型通道是否正常可以单独发一条请求curl https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer sk-你的Key \ -H Content-Type: application/json \ -d { model: claude-sonnet-4-20250514, messages: [{role: user, content: 返回 JSON: {\ok\: true}}] }返回体里choices[0].message.content包含ok说明模型通道正常。这一步和飞书侧是两条独立的链路排障时要分开看飞书报错看权限和命令模型报错看 Key 和 Base URL。再验证一个组合场景比如帮我整理最近一周会议的待办事项。这个 Skill 会先调日历接口拿会议列表再对每个有纪要的会议调文档接口读内容。成功输出会像找到 5 场会议其中 3 场有纪要。 待办事项 - 完成接口联调来源6/1 技术方案讨论负责人王五 - 提交测试报告来源6/2 产品评审会负责人张三 - 更新排期表来源6/3 周会负责人李四如果只返回会议列表没有待办说明文档读取那步失败了去检查docx blocks list的权限和文档 token 是否正确。验证阶段建议每个 Skill 都单独跑一次别一次性全挂上去否则报错定位会很痛苦。5. 本篇常见错误排查这一节列几个真实会撞上的报错对照着改。401 Unauthorized。两种可能一是 TaoToken 的 Key 写错或过期重新在控制台生成一个二是飞书侧的app_secret配错。区分方法很简单单独 curl TaoToken 接口如果 401 就是 Key 的问题如果 TaoToken 通了但飞书命令报 401就是飞书凭证的问题。local proxy failed。这个报错通常出现在模型请求环节说明请求没到达 TaoToken。检查base_url是不是写成了https://taotoken.net/api有没有多写路径或者写成别的域名。另外确认你的运行环境能正常访问外网本地防火墙别拦了。reading choices 相关报错。一般是返回体结构和你代码里解析的字段对不上。TaoToken 返回的是标准 OpenAI 兼容格式choices[0].message.content是正文。如果你用的是某个 SDK确认它读的是这个路径。报错里出现reading choices说明返回体里根本没有choices多半是请求本身失败了先看 HTTP 状态码。OAuth 相关报错。飞书 CLI 首次授权会走 OAuth 流程如果报invalid redirect_uri或scope错误去开放平台检查重定向 URL 和权限范围是否和 CLI 配置一致。自建应用建议用tenant_access_token模式少走用户授权的坑。权限不足 permission denied。飞书每个模块的权限要单独开日历、消息、多维表格、云文档各是一组。报这个错就去开放平台把对应权限勾上然后重新发布应用版本权限变更需要重新审核生效。模型返回空内容。有时候choices存在但content是空字符串这通常是 prompt 太长或者模型 ID 写错。先确认model字段是你额度里真实可用的 ID再精简 prompt 重试。排查顺序建议固定成先 curl 模型通道 → 再手动跑 lark-cli 命令 → 最后挂 Skill。这样每层都能单独验证不会混在一起。6. 把 10 个 Skill 串成日常效率系统单个 Skill 跑通之后真正的价值在于把它们串起来。我的做法是给 Agent 配一个总入口 prompt让它根据用户意图自动路由到对应 Skill。比如你说早上好它触发morning-brief你说记一下今天跑了 5 公里它触发health-track。路由逻辑不用写死靠 Skill 的description字段让模型自己判断就行。日常使用中我把这套系统跑在本地每天早上自动生成简报发到群聊晚上跑一次nightly-analysis汇总当天数据。飞书 CLI 负责取数和写回TaoToken 负责模型调用Agent 负责理解意图。三层各司其职任何一层出问题都能单独替换。如果你要复现建议从daily-schedule和task-assign这两个最简单的开始跑通之后再逐步加。10 个 Skill 的配置片段上面都给了base_url统一填https://taotoken.net/apiKey 在控制台申请。项目地址在 GitHub 上搜lark-workflow-feishu-cli就能找到代码可以直接 clone 下来改。最后给个实用技巧Skill 的prompt字段别写太长把复杂逻辑拆成多个小 Skill让 Agent 去组合。我一开始把查会议 读纪要 提待办 发群全塞一个 Skill 里结果模型经常漏步骤。拆成三个之后稳定性明显上来了。