8.2 Skill 沉淀的正确姿势
概念
前一个知识点讲的是「为什么要蒸馏、蒸馏到哪去」。这个知识点讲的是「蒸馏出来的通用方法,应该长什么样、怎么封装」。
在 AI Agent 体系里,我们把封装好的、可复用的方法叫 Skill。你可以把 Skill 理解为「Agent 能调用的一招」:它有明确的触发条件、明确的步骤、明确的输入输出,任何 Agent 只要装备了这个 Skill,就能照着做。
但要封装好一个 Skill,最大的坑是「把不该写死的东西写死了」。你在客户 A 那里摸索出的解法,往往既包含「对所有类似场景都适用的通用方法」,也包含「只是因为客户 A 恰好如此才这么配置的客户特化」。如果不做分层,把两者搅在一起塞进 Skill,结果就是:这个 Skill 只能用在客户 A,换个客户就不灵。
正确的封装姿势是拆成两层:
🖼 图:skill two layers
用法
封装一个 Skill 的标准动作,可以拆成四步:
| 步骤 | 动作 | 检验问题 |
|---|---|---|
| ① 识别 | 在交付中遇到一个值得沉淀的解法 | 「这个解法里,哪些是换一个客户仍然适用的?」 |
| ② 剥离 | 把通用步骤从客户特化里剥出来 | 「剩下的客户特例,有没有写成参数或配置项,而不是写死在逻辑里?」 |
| ③ 封装 | 把通用步骤写成 Skill 雏形,标注触发条件和输入输出 | 「一个没参与过这个项目的同事,能看懂这个 Skill 在什么时候用、需要什么输入吗?」 |
| ④ 验证 | 在第二个类似场景上跑一遍这个 Skill | 「这个 Skill 在新客户上,不修改核心逻辑就能用吗?需要改的是什么?」 |
示例
我们接着上一节「表格切片自检」的例子往下走,完整演示一遍封装。
第①步识别: 你在客户 A 发现「表格被切片器切断导致问答效果差」,解决方法是「检测到表格被切断就调整切片配置」。
问自己:「这个解法里,哪些是换一个客户仍然适用的?」
答:「检测表格被切断→调整切片配置→回归测试」这个流程是通用的。但「表格占比 30%」、「阈值 600 token」这些是客户 A 的具体情况。
第②步剥离:
通用步骤写成 Skill 雏形:
Skill 名称:知识库切片质量自检
触发条件:知识库接入完成、问答效果测试前
输入:知识库切片列表(可抽样)
输出:质量自检报告 + 是否需要调整切片配置的判断
步骤:
1. 从切片列表中随机抽取 20 条
2. 逐条检查是否存在表格被切断的情况(判断标准:切片首尾出现未闭合的表格行标记)
3. 统计被切断的切片比例
4. 若比例 > 10%,将切片器配置中的"保留结构"参数设为 true,并根据被切断表格的平均长度调整 max_chunk_size
5. 重新切片并运行回归测试
客户特化层还是放在客户 A 的资料库,就是上一节那段备注,这次验证后多补了一条:
客户A资料库备注(新增):
- "保留结构"参数原为 false,验证后调整为 true
第③步封装: 把上面这个 Skill 雏形写进团队 Skill 库,标注触发条件是「知识库接入后、问答测试前」,输入是「切片列表」,输出是「自检报告」。一个没参与过客户 A 的同事拿到这个 Skill,知道什么时候用、怎么用、要看什么输出。
第④步验证: 两周后,客户 B 也要做知识库问答。你把这个 Skill 拿出来用。
-
你发现:Skill 的五步流程,不修改核心逻辑就能跑通。验证通过。
-
你还发现:客户 B 的知识库用的是 Markdown 格式,不是客户 A 的纯文本。所以「判断标准」里要加一条「检查 Markdown 表格语法」。这不是推翻 Skill,是补充 Skill 的判断条件。
-
客户 B 的表格占比是 10%,不到 10% 阈值,Skill 判断「不需要调整」。但客户 B 的表格里信息密度极高,切断了直接影响问答准确性。所以你把阈值从「比例 > 10%」改成「比例 > 10% 或切断的表格包含关键信息」。
经过这一轮验证和修正,这个 Skill 才算「沉淀完成」。它经历了两个客户的真实场景检验,既有通用性、又能适应客户差异。
注意事项
-
Skill 沉淀的完成标准是「在第二个场景上验证过」 :只有一个客户验证过的 Skill,本质还是「那个客户的经验记录」。在第二个类似但不同的场景上跑一遍、修正过、确认核心逻辑不需要大改就能用,才算沉淀完成。没有验证过的 Skill 只能叫「草稿」。
-
不要把客户特化写进 Skill 核心逻辑 :一个反面例子是,你在 Skill 的核心步骤里写「如果知识库表格占比 30% 就…」。这个 30% 是客户 A 的数据,换到客户 B 根本不适用。客户特化的参数(占比阈值、切片大小、数据源类型)应该是 Skill 的 输入参数或配置项 ,由调用方根据客户情况填入,而不是写死在步骤里。
-
Skill 要边做边沉淀,不要等交付完才回头写 :交付中你刚刚解决一个棘手问题,这时候你对解法的理解最清晰、最完整。等交付完一周后再回头写,你会发现很多关键细节已经记不清了,只能写个大概,这个大概的 Skill 对复用帮助不大。
-
Skill 不是越细越好 :有些工程师一上手就把 Skill 写得极其详尽,每一步都展开成几十个子步骤,结果换一个客户发现整套流程都要改。Skill 的颗粒度应该是「一个可独立调用、可独立验证的方法单元」,太细了等于把某个客户的流程照搬,太粗了等于没有方法。判断颗粒度是否合适的标准是:换一个类似场景,这个 Skill 的步骤列表要不要大改?要大改,说明太粗或太特化了;不用改但细节不够,说明太细了,把客户特化混进来了。
随堂测
逐题作答,即时反馈
1. 本课指出封装 Skill 时「最大的坑」是什么?由此得出的正确封装姿势又是怎样的?
2. 封装一个 Skill 的标准动作可以拆成四步,下列哪个顺序是本课给出的正确顺序?
3. 在「知识库切片质量自检」这个 Skill 雏形的步骤里,触发「调整切片配置」的判断条件是什么?