← 回到学习笔记
· 3321 字

图解Skill读书笔记(三):任务拆解、功能实现与安全边界

以整理读书笔记为例,学习怎样拆解任务、判断哪些步骤适合制作成Skill,并处理模型、脚本、工具与安全边界之间的关系。

本文为原创学习笔记,记录本人阅读、思考和实际操作后的理解。不同平台和模型的实现方式可能不同,文中的方法需要结合实际环境测试。

转载请注明作者及原文链接;未经许可,请勿用于商业转载。

学习目标

前两篇笔记分别练习了创建日总结 Skill,并了解了智能体组成和 Skill 的触发机制。这一篇开始思考更实际的问题:一个任务应该怎样拆解,哪些步骤值得制作成 Skill,以及模型、脚本和工具应该怎样分工。

书中写到不是所有任务都适合做成 Skill,Skill 也不是功能越多越好。动手前,至少要想清楚五件事:

  1. 这个任务可以怎样拆解;
  2. 哪些步骤值得转化成 Skill;
  3. 大模型和脚本怎样分工;
  4. 需要调用哪些现有工具;
  5. 执行过程中有哪些安全风险。

一、先把任务拆开

书中把任务中的能力大致分成三类,我按照自己的理解整理如下:

  • 执行规则类:明确应该怎样做,以及哪些事情不能做;
  • 分析判断类:根据输入进行归纳、比较、纠错或选择;
  • 工具调用类:调用脚本、软件、API 或其他外部能力完成具体操作。

这三类并不是互相隔离的。一个完整任务往往需要先由模型分析,再按规则组织内容,最后调用工具生成文件。

我结合整理读书笔记的过程为例:

边读书边记录
-> AI提取要点
-> 检查明显错误和不准确表述
-> 按个人笔记风格重新组织语言
-> 生成Markdown草稿
-> 人工审核
-> 构建并发布到网站

拆开后,每一步由谁负责就清楚多了:

步骤 更适合的执行方式 原因
提取要点 大模型 需要理解上下文并归纳内容
检查表述 大模型配合资料核验 需要判断,但不能只依赖模型记忆
组织语言 Skill中的写作规则与大模型 既需要统一风格,也需要自然表达
生成Markdown 模板或脚本 格式相对固定,适合确定性处理
审核文章 人工 事实、观点和发布决定需要本人确认
构建与发布 脚本或部署工具 步骤固定,但必须在审核通过后执行

这让我意识到,“发布文章”不能和“润色文章”混成一个无人值守的步骤。即使部署可以自动化,也必须设置审核关口,只有收到明确发布指令后才能继续。

二、一个Skill不要承担所有事情

刚开始设计 Skill 时,很容易想把所有功能都放进去:既提取内容,又纠错、排版、生成文件,最后直接上传网站。

这样做看起来省事,实际使用时却容易遇到问题:

  • 说明太长,模型不容易抓住重点;
  • 不同功能的输入和输出混在一起;
  • 执行失败后,很难判断是哪一步出了问题;
  • 修改一个规则,可能影响其他功能;
  • 高风险操作与普通操作共用相同权限。

更稳妥的方式是按照职责拆分,但也不必机械地做到“一个动作一个 Skill”。几个步骤如果总是一起出现、输入输出紧密相连,也可以放在同一个 Skill 中。判断标准是职责是否清楚、能否单独测试,以及失败时能否快速定位。

针对读书笔记,我准备先拆成三个部分:

内容整理Skill
负责:提取要点、发现疑问、标记需要核验的内容

文章润色Skill
负责:调整结构、统一语言、生成Markdown草稿

发布流程
负责:等待人工审核、检查重复标题、构建网站、上线验证

第三部分虽然可以借助脚本执行,但它涉及网站和 GitHub 写入权限,必须保留人工确认,不能仅凭模型判断直接发布。

三、哪些任务值得制作成Skill

在准备创建 Skill 前,我会先问三个问题:

  1. 这个任务以后是否会重复进行;
  2. 是否希望每次结果遵循相同规则;
  3. 当前流程是否已经基本跑通。

如果任务只做一次,直接使用提示词可能更快;如果流程还在频繁变化,也可以先通过多次对话和手动操作验证,不必急着固化。

以这一系列读书笔记为例:

  • 后续还会继续整理,因此会重复进行;
  • 标题、原创声明、Markdown 格式和审核流程需要保持一致;
  • 前两篇已经走通过“原稿、润色、审核、上传”的完整流程。

所以,这项任务已经具备制作 Skill 的基础。不过,Skill 中固化的应该是成熟规则,而不是把一次任务中的临时内容也写进去。

四、模型、脚本和工具怎样分工

书中给我们总结了一条简单原则:

需要理解和判断的内容交给大模型;
需要精确、重复和可验证的操作交给脚本;
已有可靠工具能够完成的功能,优先调用现有工具。

例如,调整文章语气需要理解上下文,适合交给大模型;检查文件是否存在、验证标题重复、构建网站和同步文件,则更适合脚本。

这条原则也不能理解得太绝对。脚本同样可以根据明确条件作出判断,例如发现重复标题就停止构建;大模型也可以生成结构化结果,但结果仍需程序校验。

在工具选择上,没有必要为了展示 Skill 而重复开发已有功能。生成 Word 可以使用成熟的文档库或受信任工具,生成 Markdown 可以使用模板,浏览器操作也可以采用经过验证的自动化方案。是否使用某个插件,要看它的来源、权限和稳定性,不能因为“现成”就直接安装。

五、我对Skill局限性的理解

书中提到了 Skill 的几个限制:

  1. 结果不一定完全确定;
  2. 通用性和稳定性之间需要取舍;
  3. 自动触发可能出现误判;
  4. 同一个 Skill 在不同模型上的表现可能不同。

一开始我对这几点不太理解。经过实际操作后,我发现 Skill 更像是给模型一份相对固定的工作说明,而不是把模型变成完全按照程序运行的软件。

它的执行效果仍会受到很多因素影响:

  • 当前模型的理解和工具调用能力;
  • 对话中已有的上下文;
  • Skill 描述是否准确;
  • 输入材料是否完整;
  • 外部工具是否可用;
  • 规则之间是否存在冲突。

因此,Skill 不能同时承诺“面对所有情况都能处理”和“每次结果完全一致”。范围越宽,遇到意外情况的可能性通常越高。对于关键步骤,要通过脚本校验、人工复核和失败停止机制来补足。

六、提示词、脚本和Skill不是互相替代

我原来把三者理解为:提示词不能重复,脚本不会判断,Skill 正好弥补两者的缺点。仔细想想,这种说法并不准确。

提示词当然可以保存并重复使用,只是每次使用时通常需要手动提供,规则和资料也不一定集中管理。脚本也可以按照预先写好的条件判断,只是它不会像大模型一样灵活理解自然语言和陌生表达。

更准确的关系是:

提示词:表达当前任务和临时要求
脚本:执行明确、可验证的操作
Skill:组织可复用的规则、步骤和配套资源

一个实用的 Skill 往往同时包含提示词式说明和脚本工具。它的价值不在于取代另外两者,而在于把它们组织成一套更容易重复使用的流程。

对于还没有把握的任务,可以先让模型在人工监督下尝试,记录成功与失败的情况。等流程稳定后,再把已经验证的部分整理成 Skill。这里的“边跑边改”必须发生在隔离、可控的环境中,不能让模型拿真实业务数据或重要系统随意试错。

七、给Skill加上安全边界

Skill 不只是“能不能完成任务”,还要考虑“允许做到什么程度”。风险分成两类:

  • 外部风险:下载的 Skill、脚本或插件可能包含危险操作;
  • 自身风险:自己编写的规则不完善,可能误删文件、覆盖数据或泄露信息。

三道安全闸

第一道:最小权限。 能只读就不开写权限,能访问单个工作目录就不开放整个硬盘,能使用测试账号就不直接使用生产账号。

第二道:高风险操作二次确认。 删除或覆盖文件、执行未知代码、上传公开网站、提交 GitHub、发送邮件和产生费用前,都应暂停并让用户确认。

第三道:操作可追溯。 记录输入、输出、调用的工具和执行结果。修改重要文件前做好版本控制或备份,出现问题时才能定位原因并恢复。

四个使用习惯

  1. 下载外部 Skill 后,先检查 SKILL.md、脚本和权限要求;
  2. 首次测试使用虚构或脱敏数据,不直接放入真实敏感信息;
  3. 每个任务使用独立工作目录,限制文件读写范围;
  4. 认真阅读授权和确认窗口,不习惯性点击“允许”。

还要注意,阅读代码只能帮助发现风险,不能保证代码绝对安全。来源不明、经过混淆或需要过高权限的 Skill,宁可不用。

八、本篇小结

这次学习让我明白,制作 Skill 的第一步不是写说明文件,而是拆解任务。通过“是否重复、是否要求一致、流程是否成熟”三个问题,可以判断任务值不值得固化。

确定要做之后,再划分模型、脚本和工具的职责:模型负责理解和归纳,脚本负责精确执行,Skill 负责组织规则与资源。对于尚未验证的流程,先在可控环境中尝试,稳定后再逐步固化。

最后,任何自动化都不能忽略安全边界。最小权限、人工确认和操作留痕不仅适用于 Skill,也适用于日常脚本和网站发布流程。能稳定完成任务很重要,知道什么时候必须停下来确认同样重要。