每天一睁眼打开飞书就是满屏的文档、表格、群消息、会议纪要几年下来这些内容早就变成一座“数据矿山”。但真到要用的时候要么记不清文件在哪要么找到了也没法直接复用。我最近折腾出一条免费路子用本地AI工作台WorkBuddy配合一个叫仓颉.Skill 2.5的技能包把飞书里的任何内容成体系地“蒸馏”出来变成能直接调用的技能。这里的蒸馏不是模型训练里那个知识蒸馏而是把散落的业务内容提炼、清洗、重组封装成可复用的Skill。这篇文章是我自己的实操记录包括怎么绕过飞书官方那个动不动就收费的CLI权限纯免费把整条链路跑通。1. 为什么要“蒸馏”飞书先搞懂这套组合要解决什么问题1.1 飞书内容管理的三个痛点第一个痛点是内容形态太割裂。飞书里的知识不是一个整体而是散落在云文档、电子表格、多维表格、群聊消息、日程纪要里。文档里写的是逻辑表格里存的是数字群里聊的是过程和结论它们互相引用却又互相孤立。真要把一个项目的完整上下文捞出来你得同时打开五六个文件脑内手动拼图。第二个痛点是检索只能靠模糊记忆。飞书自带的搜索足够找文件名但不够找“内容背后的含义”。如果你只记得“上个月讨论过一个关于权限设计的方案但不知道放在哪个文档”你只能在搜索框里反复试关键词。而且就算找到了你拿到的是一堆原始材料不是可以直接用的结论。第三个痛点是跨项目复用几乎没有。同一个活动策划流程这个项目做完下个项目又要重写一遍同一个数据口径市场部和运营部各有一套说法。知识沉淀在飞书里但知识没有“长腿”不会自己跑到新项目里去帮忙。1.2 “蒸馏”在本文里的真实含义“蒸馏”这个词最早让我想到的是酿酒和炼油把混合物加热让有用的成分蒸发再冷凝回收。放到AI领域知识蒸馏是指用大模型教小模型把能力压缩传递。但仓颉.Skill 2.5里的蒸馏走的其实是另一条路它不压缩模型它提炼内容。通俗地讲蒸馏就是把飞书里的原始内容当成原料经过“采集 - 清洗 - 结构化 - 封装”四步输出一份可以直接交给AI工作台使用的Skill包。Skill包里通常包含三样东西一是行为指令告诉AI面对什么输入时应该怎么处理二是参考语料把飞书原始内容里最有价值的部分摘选出来三是数据资产比如多维表格里的结构化记录转成JSON或CSV后随技能一起交付。这样做的好处非常明显以后你再遇到类似任务不用去飞书里大海捞针直接唤起对应的SkillAI就会按照蒸馏时沉淀的规则和资料帮你处理。等于把飞书从“档案室”变成“生产线上的老师傅”。1.3 为什么选WorkBuddy加仓颉.Skill这套组合市面上能连飞书的AI工具不少但大多数都绑定了云端服务、按调用次数收费或者要求企业管理员开通付费权限。WorkBuddy的定位是本地化AI工作台资料默认不出本地跑起来成本极低。仓颉.Skill 2.5是适用于WorkBuddy平台的一个技能开发插件它把“从飞书拉内容、清洗内容、生成Skill”这件事做成了向导式的流程不需要你懂复杂的API编程。我见过很多人卡在第一道门槛上飞书开放平台的CLI权限是要单独申请的而且通常只对企业版开放。仓颉.Skill 2.5的聪明之处是它不走CLI只走飞书自建应用的云文档API和机器人API这两类接口在免费额度内就能覆盖绝大多数“蒸馏内容”的需求。所以整套方案可以被“免费”两个字概括工具免费、API免费、跑在本地不花token费用。这套组合适合谁适合每天被飞书绑架的运营、产品、项目经理、知识管理负责人也适合想在本地搭一套个人AI知识库但不希望掏钱开会员的人。哪怕你完全不懂编程只要会点鼠标、能看懂中文就能照着下面的步骤把第一个Skill蒸馏出来。2. 准备阶段免费路径需要哪些组件2.1 WorkBuddy的安装与基础配置WorkBuddy官方提供了Windows、Linux、macOS三种安装包我实测用的是Windows版但原理都一样。下载安装包后一路下一步即可唯一要注意的是安装路径不要带空格和中文否则后面仓颉.Skill的Python环节容易出幺蛾子。装完首次启动它会问你工作目录放在哪。这里有个热词经常被搜到“WorkBuddy系统缓存目录能改到D盘吗”。答案是可以而且我强烈建议你改。以Windows为例打开设置面板找到“存储与缓存”把缓存目录从C盘默认路径改到D盘某个专门目录。原因很简单蒸馏过程中需要暂存飞书下载下来的原始文档和多维表格快照这些内容动辄几百MB如果一直堆在C盘用不了几次就会把系统盘塞满。改完之后重启WorkBuddy让配置生效。接下来建议安装Python运行时。仓颉.Skill 2.5内部依赖Python执行清洗脚本特别是处理表格和文本去重的时候。WorkBuddy自带了一个Python解释器但我踩过坑自带的版本可能偏老导致某些依赖装不上。我后来直接用系统Python 3.10以上版本然后在WorkBuddy里指定解释器路径一路顺畅。2.2 仓颉.Skill 2.5的获取和加载仓颉.Skill 2.5本身是一个技能开发包不是独立的软件。你可以从它的官方渠道下载zip包解压之后会得到一个命名为cangjie_skill_2.5的文件夹。把整个文件夹放进WorkBuddy的skills目录然后在WorkBuddy的技能管理界面点“扫描本地技能”操作完成后左侧技能列表里就会出现“仓颉.Skill 2.5”。加载完成以后建议先跑一下自带的“自检任务”来验证环境。自检会做三件事检查能否访问common Gateway接口、检查Python清洗模块是否可用、检查本地磁盘写入权限。我遇到过一个情况电脑上装了安全软件把WorkBuddy对本地文件夹的写入给拦截了导致自检一直报错。把WorkBuddy加入安全软件白名单或者以管理员身份运行一次问题就消失了。在正式用之前还要理解仓颉.Skill 2.5里的三个核心模块内容采集器负责连接飞书并拉取数据内容清洗器负责把文档里的噪声去掉比如页眉页脚、重复段落、无意义的表情符号技能装配器负责把清洗后的内容封装成Skill并生成一个小规模测试集。后面的蒸馏流程实际上就是按顺序操作这三个模块。2.3 飞书自建应用的免费接入绕开CLI权限很多人在折腾飞书API时第一反应是去开通飞书开放平台的CLI权限。但CLI权限通常要企业管理员操作还要审核、签协议个人开发者很难拿到。仓颉.Skill 2.5通过飞书自建应用来绕过这个限制而且全程免费。操作路径登录飞书开放平台后台选择“企业自建应用”创建一个应用。创建之后你就能拿到App ID和App Secret这两个凭证是后面所有接口调用的敲门砖。然后进入“权限管理”按需开通以下权限读取云文档包括文档内容和表格内容、读取多维表格记录、读取群消息仅限应用所在群的聊天记录、发送消息用于把蒸馏结果发回飞书。这些都是基础权限免费版就能开通不需要额外付费。开通权限之后把应用发布到你的测试企业里。如果你的账号没有企业可以创建一个人数少于100人的测试企业飞书允许免费创建审批也非常快。发布成功之后在WorkBuddy的仓颉.Skill配置界面里填入App ID、App Secret以及你的飞书User ID或部门ID它会自动去换取访问令牌。这里分享一个关键避坑经验飞书的access_token分tenant_access_token和user_access_token仓颉.Skill默认用的是tenant_access_token也就是以应用身份读取不需要用户扫码授权。这种方式覆盖了绝大多数文档读取场景。但如果你要读取“我收到的私聊消息”这类数据必须走user_access_token需要在飞书里完成一次用户授权。仓颉.Skill 2.5支持这个流程在配置里切换认证方式为“用户身份”然后它会弹出一个授权链接用飞书扫码即可。免费额度足够你做日常蒸馏。3. 核心实操把飞书内容蒸馏成一个Skill的完整流程3.1 在WorkBuddy中新建蒸馏任务打开WorkBuddy在仓颉.Skill 2.5面板里点击“新建蒸馏任务”。此时会出现一个任务向导第一步是给任务起名字。我建议按“项目名内容类型用途”的格式来起比如“官网改版需求文档蒸馏官网上线检查技能”这样以后找起来一目了然。第二步是配置数据源类型。仓颉.Skill 2.5支持四种数据源云文档、电子表格、多维表格、消息记录。选错类型会导致后续解析失败所以这里要特别留意。比如你目标是飞书“文档”里的正文内容那就选云文档如果是想要多维表格里的结构化数据选多维表格如果想分析群里大家讨论的过程和结论选消息记录。第三步是连接数据源。可以直接粘贴飞书链接也可以在输入框里填入文档token。实际上飞书链接里通常就带着token形如docs.feishu.cn/docx/xxxxxxxx复制后面那段字符串即可。连接成功后采集器会先拉取元数据比如文档标题、目录、最近修改时间先给你预览确认避免拉错文件。3.2 设置蒸馏参数深度、格式、语言和去重这一环节是整个蒸馏过程的核心参数设置直接影响输出Skill的质量。仓颉.Skill 2.5提供四类关键参数。深度分为浅层、中层、深层三档。浅层蒸馏只对原文做自动摘要保留每个章节的关键句适合会议纪要这类内容中层蒸馏会提取关键概念、结论和行动项并保留原文中的重要数字和引文适合需求文档和方案类内容深层蒸馏会把原文拆成知识条目结合上下文重新组织语言做到“读一份文档等于读十份整理后的笔记”适合用来搭建知识库问答技能。参数选择逻辑很简单内容越散、越需要逻辑重组就选越深的档位内容本身已经足够结构化比如一份清单浅层反而更保真。格式选择决定蒸馏产物的存储结构。Markdown格式可读性最好适合观感和后续人工编辑JSON格式适合程序调用CSV格式最适配表格型数据。如果你想做一个既能查数据又能解释规则的混合型Skill我建议选Markdown加配套JSON双输出。语言设置指的是“蒸馏时以什么语言输出”。如果你的飞书文档是中英混杂可以选择“中文优先”清洗器会把英文术语保留但用中文解释一遍或者直接保留原始语言。一般场景下选“跟随原文”最省事。去重开关默认开启强烈建议保持开启。飞书同一个内容往往会在多个文档里重复出现比如同一个会议结论被写了三次。去重会基于语义相似度剔除重复段落但要注意它会保留第一次出现的内容如果最早的版本已经被后来修改可能会造成信息滞后。所以我在做重复内容比较时需要人工确认一次不过大部分场景下默认策略够用。3.3 运行蒸馏并预览中间产物确认参数后点击“开始蒸馏”。此时仓颉.Skill 2.5会先在本地把飞书内容拉取下来然后进入清洗阶段。这个过程不需要联网调用云端大模型所以不产生API费用。你可以在界面上看到实时日志包括“解析文档结构”“移除页眉”“合并重复段落”“提取表格数据”等步骤。清洗完成之后会进入“预览中间语料”页面。中间语料就是完成清洗但还没封装成Skill的半成品你应该花几分钟扫一遍。重点检查有没有重要段落被误删表格里的数据有没有错位原文档中的图片是否已经被替换成占位说明仓颉.Skill对图片的处理默认是提取图片下方的标题和上下文文字并不会保存图片本身这会导致一些以图为主的解说文档变得残缺。我的经验是在蒸馏前先对源文档做一次人工整理把重要的图和表补充说明文字这样蒸馏出的结果更完整。如果发现清洗结果不理想可以直接在预览页面对中间语料微调比如手动拖回被删除的段落或者重新划分章节。然后再进入下一步。3.4 生成Skill包schema、指令集、测试集中间语料确认后点击“生成技能包”。仓颉.Skill 2.5会自动完成三件事第一生成技能描述文件schema给Skill起名、写简介、定义输入输出参数第二生成行为指令集prompt告诉WorkBuddy当前技能应该在什么时机被调用、按什么规则回答第三生成一个微型测试集包含5到10条典型问题和预期答案用于验证技能效果。生成之后WorkBuddy会要求你选择技能保存位置。我建议统一放到D:\WorkBuddy\skills\my_skills下和仓颉.Skill分开存方便备份和分享。保存完成后这个Skill会立即出现在WorkBuddy的技能列表里你可以直接对话测试。举个例子刚才蒸馏官网改版需求文档时生成的技能叫“官网改版上线检查”。我测试时输入“我需要一份上线前的检查清单”技能立刻调出了蒸馏时沉淀的checklist和验收标准而不是泛泛地给我百度式的回答。这种“回答有出处、有依据”的感觉就是蒸馏带来的最大价值。注如果你后续希望把Skill分享给同事直接把整个文件夹压缩发过去即可。对方只需要在WorkBuddy里导入不需要重新连接飞书。这也意味着授权账号一旦过期蒸馏好的Skill仍可长期使用这也是本地蒸馏的核心优势之一。4. 三个真实场景的蒸馏实验4.1 实验一产品需求文档蒸馏为需求分析技能第一个实验我用了一份20页的产品需求文档。这份文档包含背景、用户故事、功能清单、交互说明、埋点需求、排期计划。放在飞书里就是一篇很长的云文档真要写一个新功能时关联人员往往要重新翻一遍。参数设置数据源选云文档蒸馏深度选“深层”输出格式选“Markdown JSON”语言跟随原文去重开启。整个蒸馏过程大约耗时40秒中间清洗阶段把文档里大量重复的“用户点击后跳转”这类交互描述合并成了统一的规则表述这个细节我很满意。生成出的Skill被命名为“需求分析助手”。我试了几个问题帮我把埋点需求按页面维度整理成表格这个功能的核心用户流程是什么和上一个版本相比有哪些改动点。Skill都能从蒸馏语料中定位到对应章节并给出带原文引用的回答。相比让大模型直接读整篇PDF这个Skill的回答更快、更聚焦因为它已经把指标定义、涉众边界、历史变更都提炼好了。4.2 实验二多维表格蒸馏为数据查询技能飞书多维表格是一个很神奇的存在既能存数据又能做视图但数据分析能力有限。我有一个小组长期用多维表格维护客户信息里面包含客户名称、行业、阶段、最近联系时间、备注大约几百条记录。我的蒸馏目标是做一个“客户数据问答”技能。数据源选“多维表格”蒸馏深度选“浅层”输出格式选“CSV Markdown”。因为多维表格本身已经是结构化的不需要深层重写浅层蒸馏保留原始记录即可怕的是把结构化数据搞乱。执行后仓颉.Skill 2.5把多维表格导出成CSV同时根据字段名和样例记录自动生成了字段说明Markdown比如“阶段字段包含A/B/C三类分别代表初步接洽、方案确认、签约完成”。最终生成的Skill可以这样用输入“帮我筛选出这个季度新增的A阶段客户”它会先调用CSV数据资产做筛选再用字段说明解释结果。整个过程不需要写SQL也不需要把数据导出去其他地方。这里有个需要注意的地方多维表格的数据量如果超过几千行免费API拉取会有分页限制仓颉.Skill 2.5默认一次最多拉取1000行超过部分需要开启“分批拉取”开关。这个开关在数据源配置页的最底部默认关闭我一开始没注意导致只拿到第一页数据后来打开开关才补齐。所以在蒸馏之前先去多维表格右下角看看总行数超过印象值就记得开启分批拉取。4.3 实验三项目群消息蒸馏为周报生成技能第三个实验是很多人问到的能不能把群聊记录蒸馏成周报生成工具。我把一个项目群最近一个月的消息作为数据源深度选“中层”格式选“Markdown”目的不是逐句保留对话而是把讨论中冒出来的决定、问题、下一步行动提取出来。仓颉.Skill 2.5对消息记录的处理比较特殊它不是按时间顺序输出全文而是先做聚类把同一主题的消息归到一起再从每个主题里提取结论和待办。清洗阶段会把大量“收到”“1”“表情回复”这类水消息自动过滤掉。最终生成的Skill内置了周报模板会自动按项目进展、风险、资源协调、下周计划四个板块组织内容。我测试的时候输入“帮我生成这周的周报”它先读取本周新增的消息集蒸馏之后按模板输出了一版草稿。草稿里居然能准确写出“周三确认了官网文案最终版”这种关键节点因为消息聚类已经把散落在不同时间线的相关消息串起来了。这个效果是我预期之外的也是我认为最有惊喜的一个场景。5. 常见问题与排查技巧实录以下问题都是我在实操中真实遇到过的整理成速查表遇到同样报错可以直接照着查。现象原因解决办法蒸馏时报“权限不足”飞书应用未开通对应权限或版本不支持回到飞书开放平台在权限管理里逐项加上“读取云文档”“读取多维表格记录”发布新版本应用后刷新重试多维表格数据为空未开启分批拉取或表格锁定了视图权限数据源配置里打开“分批拉取”另外确认应用账号对该表格有至少“可阅读”权限文档里的图片全部丢失仓颉.Skill默认不提取图片二进制在文档里给图片增加说明文字后重新蒸馏或使用“保存原图”选项需要额外磁盘空间蒸馏出的内容太碎、不成体系深层蒸馏参数被设置成了浅层调整蒸馏深度为“深层”并开启“自动章节合并”让清洗器按文档目录重组内容生成的Skill回答不着边际测试集覆盖不足在技能包生成时增加5条以上与业务强相关的问题能让后续调用更稳定WorkBuddy缓存目录无法修改权限不足或没有重启用管理员身份运行WorkBuddy在设置里改路径后必须重启进程Linux下安装后Python模块找不到系统Python与WorkBuddy自带解释器冲突在WorkBuddy设置里手动指定Python解释器并以绝对路径安装requirements依赖这里再补充两个细节。第一个是飞书“没有CLI权限”并不可怕因为仓颉.Skill自带的常用接口不需要CLI但是如果报错信息明确提示“接口调用需要应用具备更高版本能力”那大概率是权限枚举里有些选项只针对特定api版本此时可以把读取方式从“以应用身份”切换成“以用户身份”往往能绕过版本限制。第二个细节是关于token过期。tenant_access_token的有效期一般是两小时WorkBuddy会在后台自动刷新但如果你手工改过系统时间会导致刷新触发失败报出“token expired”。遇到这种情况点一次“重新连接飞书”即可。关于蒸馏任务重复运行的问题如果源文档发生了小改动你不需要重新创建任务直接在技能列表里右键对应Skill选择“增量更新”仓颉.Skill会对比上次语料和当前内容的差异只清洗新增部分。我通常每周对重要项目做一次增量更新既保证技能不过时又避免浪费时间处理同样的全文。6. 蒸馏过程中必须守住的三条红线6.1 只蒸馏你本人有权访问的内容飞书开放平台应用一旦获得权限理论上可以读取应用可见范围内的大量文档。但权限大不等于可以乱用。我给自己定下的规则是只蒸馏本人创建、本人参与或应用所在团队明确授权的内容。特别是群消息我只会去蒸馏自己作为成员或管理员的群绝不尝试通过admin权限去拉取其他私密群的消息。这里不仅是合规问题也是职业道德问题。6.2 涉密和非公开数据不要进本地技能包虽然WorkBuddy是本地运行但蒸馏后的Skill文件夹如果被分享出去里面的数据资产也会跟着走。我建议在分享Skill之前用仓颉.Skill的“脱敏清洗”功能把手机号、身份证、银行卡、内部系统链接通通替换成占位符。这个功能在生成技能包之前有一个“敏感信息过滤”开关默认是开启的但默认规则比较简单建议自己再加几条正则规则。尤其是飞书多维表格里的客户数据脱敏清洗之后再生成CSV不然一个不小心散出去就是事故。6.3 不要完全依赖蒸馏结果做重大决策蒸馏出的Skill本质上是对原始内容的提炼加工加工过程可能出现信息损耗。我见过有人拿着蒸馏后的技能包直接去做报价决策结果因为源文档中一个关键前提被清洗器误删导致报价基准完全错误。所以我的习惯是重大决策前重要数据一定回源文档二次核对。蒸馏是为了加速信息获取不是为了替代原始事实。7. 最后一公里WorkBuddy 仓颉.Skill后续还能怎么玩跑通基础蒸馏流程之后我开始琢磨几个进阶玩法。第一个是“层级蒸馏”先蒸馏出项目核心文档生成一个“项目概述技能”再蒸馏多个子文档生成“技术方案技能”“排期管理技能”等最后用一个汇总Skill把这些子技能全部挂载进去。这样WorkBuddy就能根据用户问题自动路由到对应子技能而不是把所有语料都塞进一个大而全的Skill里。第二个玩法是把蒸馏和飞书机器人打通。仓颉.Skill 2.5支持生成“机器人消息卡片”你可以让蒸馏后的Skill在WorkBuddy里跑出一个结果再通过飞书机器人发送到群里。比如每周五上午我配置了一个定时任务自动蒸馏本周新增群消息生成周报草稿然后通过飞书机器人把周报推送到项目群。群里同事看到的是一张结构清晰的卡片完全不知道它背后走了一条“飞书 - 本地蒸馏 - 飞书”的循环链路。第三个玩法是跨团队分发技能包。我们把“活动复盘模板”和“发布会准备清单”蒸馏成Skill包以后直接用企业内网盘发给其他小组他们导入WorkBuddy就能用不需要再共享飞书文档权限。这样既减少了跨团队的沟通成本也让那些经验真正沉淀成了可复制的资产。说到这我必须再夸一下免费这件事。整套流程里我没有开通任何飞书付费项目没有使用云端大模型计费接口WorkBuddy和仓颉.Skill 2.5都是免费下载使用。唯一的硬性成本是一台能运行WorkBuddy的电脑以及偶尔手动维护数据源的时间。当然免费也意味着自定义能力有限如果你想在蒸馏规则上做深度定制还是得自己改一点Python代码不过这是后话了。最后分享一个我非常受用的小技巧每次蒸馏完一个Skill我都会在旁边放一个README.md里面记录这次蒸馏的时间、源文档链接、蒸馏参数和我手动修正过的内容。这个习惯看起来有点“笨”但当半年后回来看某个技能包时你还能清楚地知道它的“原料”是谁、加工深度是多少、哪些地方被人工干预过。这种可追溯性在知识越多越杂的时候越显得珍贵。希望这套免费蒸馏的玩法能帮你把飞书里的内容真正盘活。