8.2 Skill 沉淀的正确姿势

约 15 分钟L2L3D4S3

课程来源

[来源] 腾讯云培训认证《腾讯云人工智能前沿部署工程师(FDE)》第 8 章 ·〈8.2 Skill 沉淀的正确姿势〉

原文:https://cloud.tencent.com/edu/learning/course-4767-84813-84825(腾讯云在线学习中心)

[收录说明] 企业内部培训用途蒸馏收录:保留原课章节结构与要点,截图以图注转写、互动组件转写为要点清单;概念与事实以原课为准。

本课目录(4 节)

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 的步骤列表要不要大改?要大改,说明太粗或太特化了;不用改但细节不够,说明太细了,把客户特化混进来了。

随堂测

逐题作答,即时反馈

0 / 3 已作答
  1. 1. 本课指出封装 Skill 时「最大的坑」是什么?由此得出的正确封装姿势又是怎样的?

  2. 2. 封装一个 Skill 的标准动作可以拆成四步,下列哪个顺序是本课给出的正确顺序?

  3. 3. 在「知识库切片质量自检」这个 Skill 雏形的步骤里,触发「调整切片配置」的判断条件是什么?