Skills驱动的AI工作流设计 摘要
文档概览
这篇来源页的核心判断很鲜明:很多 AI 工作流之所以“第一次跑得很好,第二次就失稳”,不是因为提示词还不够长、不够细,而是因为流程知识仍然依附在一次性对话里,没有被沉淀为可复用、可组合、可按需加载的能力组织系统。
作者把问题拆成两部分:
- 第一部分是 一次性提示词不稳定。用户即使花半小时打磨出“完美提示词”,第二次复用时仍可能出现格式变化、风格变化、关键步骤被跳过等偏差。
- 第二部分是 人工逐环节审查太慢。当模型产出速度和数量都上升后,“每一步都等人看”的流程会成为整个系统里最慢、最贵的环节。
在此基础上,原文提出一套升级方向:
- 用 Anthropic Skills 方式把工作流固化成能力单元,而不是每次重新解释。
- 用 渐进式披露式能力组织 控制信息加载层级,而不是一次把所有背景、规则、模板都塞进主提示。
- 用 自检驱动的AI工作流 替代“AI 生成—人工审查—AI 修改—人工再审查”的循环。
- 用规则文件和目录式主控文件组织能力,形成接近 Harness Engineering 的文件驱动工作流。
关键事实
1. 原文把“跑一次就失效”的根因指向一次性提示词结构
文中给出的典型场景是:
- 第一天用精心打磨的提示词生成出一篇很满意的文章;
- 第二天使用同样提示词时,输出却出现格式变化、风格变化、关键环节缺失;
- 用户容易怀疑是模型更新或自己记错了提示词,但作者认为真正缺失的是“能让 AI 记住工作流的系统”。
这一定义非常重要,因为它把问题从“如何写出更完美的 prompt”转向“如何把流程外置为稳定能力”。也就是说,原文主张工作流稳定性的主要来源不应是单轮提示工程,而应是可复用的能力封装与规则沉淀。
2. Anthropic Skills 的核心被概括为三级渐进式披露
原文认为 Anthropic 教程最值得学习的,不只是 Skill 文件格式,而是其背后的信息组织哲学:渐进式披露(Progressive Disclosure)。
文中给出了非常具体的三级加载机制:
| 级别 | 加载时机 | 包含内容 | 目的 |
|---|---|---|---|
| 第一级:YAML 头部 | 始终加载 | Skill 名称、简短描述、触发条件 | 让 AI 先判断“要不要用这个能力” |
| 第二级:SKILL.md 正文 | 当 AI 判断相关时才加载 | 完整指令、工作流步骤、最佳实践 | 提供执行细节 |
| 第三级:关联文件 | 按需查阅 | 参考文档、模板、示例 | 提供深度上下文 |
原文强调,这种三级结构不是排版技巧,而是工作流稳定性的关键:
- 省 token:不会每次无差别加载全部细节;
- 省时间:无需每轮都重新解释一次流程;
- 更稳定:步骤、规范和补充材料被固定在文件体系中,不再依赖临时对话记忆。
这实际上对应了 渐进式披露式能力组织 的典型实现方式:先用最小元信息做路由,再按任务相关性展开规则,最后在必要时进入示例与参考层。
3. YAML 头部不仅要写“做什么”,还必须写“什么时候用”
原文把这一点列为第一个最实用的设计原则,并给出正反示例。
错误写法只写能力用途:
description: 生成新闻文章
正确写法则同时给出触发条件:
description: 根据新闻素材生成深度解读文章。当用户说“写稿”“二创”、提供新闻链接或上传 markdown 文件时使用。
文中解释其必要性在于:AI 需要靠这一层来判断是否应该加载该能力。若没有触发条件,可能出现两个极端问题:
- 每次都加载,导致 token 浪费和上下文噪声增加;
- 永远不加载,能力文件形同虚设。
因此,这里的描述字段不是普通简介,而是“用途 + 调用条件”的路由元信息。这一点与 可组合能力单元设计 高度相关,因为能力只有在边界明确、触发条件明确时,才容易被系统正确调度与组合。
4. 原文明确强调:用自检替代逐环节人工审查
这是该来源最核心的工程观点之一。文中引用 OpenAI 最近博客中的判断:随着模型能力提升,Agent 的产出持续增加,人类审查反而成了系统中最慢的环节。
原文据此给出的方向非常直接:
- 移除 human-in-the-loop,不再要求每个环节都等待人工审查;
- 改用“渐进式披露的文件系统”,由一个约 100 行 的 AGENTS.md 作为目录入口,指向结构化设计文档、架构规范和执行计划;
- 让 AI 自己持续运行:失败了就读日志、修改后再跑,单次任务可以执行很久。
作者把这一思路迁移到内容生产工作流,给出的结论是:如果流程仍然是“AI 生成 → 人审查 → AI 修改 → 人再审查”,那么真正的瓶颈不是模型,而是流程设计本身。
与之相对,原文建议把审核要求写入规则文件,让 AI 执行:
- 按规范生成;
- 按规范自检;
- 自检不通过时自行修正;
- 人只在最终发布前做一次“发 / 不发”的决策。
这与已有条目 HITL Agent双反馈闭环 的语境不同:本文并不是强调把人工反馈纳入双闭环演进,而是强调在低风险、可规则化环节里,尽量不要把人工放在每一步中间做同步审查。
5. 自检清单是原文给出的具体替代机制
原文没有停留在“减少人工审核”的抽象层面,而是给出可以直接写进能力文件的自检清单示例:
## 自检清单(生成完成后自动执行)
- [ ] 标题是否在 30 字以内?
- [ ] 导语是否在 100 字以内?
- [ ] 是否包含 3-5 个小节?
- [ ] 每个小节是否有小标题?
- [ ] 结尾是否有行动建议?
**如果有任何一项不符合,自动修正后再输出。不要询问用户,直接改。**
这里有几个关键约束不能忽略:
- 这是“生成完成后自动执行”的检查,而不是额外等待用户触发;
- 自检项都是可操作、可判定的具体规则,不是模糊要求;
- 如果不符合,默认动作是“自动修正后再输出”;
- 明确要求“不要询问用户,直接改”,即把修正规则前置授权给系统。
原文甚至给出一个效果判断:采用这种方式后,效率可提升 至少 3 倍。这一数字出自作者总结性表述,虽然不是实验报告中的严格统计,但在文章内部属于明确的性能主张。
6. 能力单元必须支持独立运行与组合运行
原文把“可组合”列为第三个设计原则,并强调一个 Skill 不应假设自己是系统中唯一可用的能力。
文中给出了一组典型能力:
- news-fetcher:抓取新闻;
- news-writer:写稿。
然后指出两种不同的调用路径都必须被支持:
- 用户直接说“帮我写今天的新闻稿”,此时需要同时调用抓取与写作两类能力;
- 用户已经手动准备好新闻素材,再说“根据这个写稿”,此时只需调用写作能力。
因此,好的能力设计必须同时满足:
- 独立运行:用户直接提供输入时,该能力可单独完成任务;
- 组合运行:该能力可以作为链路中的一环,与其他能力配合使用。
这正是 可组合能力单元设计 的典型边界定义方式:能力不依附于某一条固定链路,而是围绕输入、输出、触发条件与约束形成模块化接口。
重要细节
新闻写作 Skill 的三级拆分示例
原文通过“新闻写作”能力示例,具体展示了三级渐进式披露如何落地:
第一层 YAML 头部写成:
---
name: news-writing
description: 根据新闻素材生成深度解读文章。当用户说“写稿”、“二创”或提供新闻链接时使用。
---
第二层正文则包含:
- 完整写作流程:提炼观点 → 构建结构 → 撰写正文 → 自检;
- 风格指南:语气、长度、段落要求;
- 自检清单。
第三层关联文件进一步放入:
- 优质案例示例文件;
- 段落结构模板文件。
这个案例说明,Skill 不是一句 prompt,也不是一份冗长总说明,而是一个带目录、带触发条件、带执行正文、带补充引用的层级化能力包。