第一层质变:三级渐进式披露(Progressive Disclosure)与 Token 经济学优势
1. Skill 的物理资产结构
一个标准的 Skill 资产由以下文件层次组成:
SKILL.md(核心):必需文件,包含 Strict 约束的 YAML 元数据头(name\le 64字符,description\le 1024字符)与 Markdown 正文。scripts/:可选,存放可执行脚本代码。references/:可选,存放长尾深度参考文档。assets/:可选,存放模板或静态资源。
2. 三级渐进式披露机制(Three-Tier Loading)
Skill 并不是一次性加载到 LLM 上下文(Context)里的,而是分阶段“解锁”:
| 层级 | 加载内容 | Token 消耗 | 触发时机 / 机制 |
|---|---|---|---|
| 第一级:元数据 | YAML 头中的 name + description |
~100 Token | 常驻在 System Prompt 中,用于路由判断。 |
| 第二级:Skill 正文 | SKILL.md 的 Markdown 正文 |
建议 \le 5000 Token | 仅当任务命中 Description、模型决定调用时,才通过 Bash 动态读取。 |
| 第三级:附带资产 | scripts/ 与 references/ 中的代码与长文档 |
运行时按需读取 | 用到哪个文件读哪个;不触发则零开销。 |
3. Token 经济学:公式对比与本质突破
作者用简单的数学公式拉开了传统 Prompt 与 Skill 在扩展能力时的成本差距:
传统全量 Prompt 模式:
含义:要让模型具备 N 个领域的技能,每个领域需要 M_i Token,启动时必须一次性付清所有上下文费用,容易瞬间撑爆 Context Window。
Skill 模式:
含义:装入 N 个 Skill,启动仅需付出 N \times 100 Token 的元数据开销(例如装 100 个 Skill 仅需约 1 万 Token);只有被任务触发的少数 Skill(k \in \text{triggered}),才会载入各自不到 5000 Token 的正文。
结论:Skill 让能够打包进 Agent 的上下文在 Token 经济学意义上实现了“无上限扩展”(Unbounded Context)。
4. 架构设计哲学:极简协议与“复杂度外包”
Simon Willison 等人指出了该设计的精髓:
- 协议本身极简:YAML 极简、格式极简,不做过度工程化。
- 复杂度外包(Outsourcing Complexity):协议将难办的调度、执行和文件管理交给了 LLM 运行框架(Harness)以及底层的文件系统与操作系统。
承上启下:这第一层质变解决了“海量知识如何轻量化进上下文”的问题。文中末尾提到,紧接着的“第二层质变”将涉及它与代码执行/工具调用结合带来的更深层变革。
质变第二层:把不确定的活下沉给脚本,确定性逆袭
1. 纯 Prompt 路线的天花板
- Token 生成不擅长确定性工作:排序、精确计算、格式转换(如编辑复杂的 Office XML)如果全靠 LLM 逐个生成 Token,不仅成本极高,而且极易因少写一个字符而导致结果崩溃。
- 核心金句:“靠生成 Token 来排序一个列表,比直接跑个排序算法贵得多。代码是确定的,所以流程稳定、可复现。”
2. 官方 Skill 的工程化硬核实践
作者通过 Anthropic 官方开源的三个文档处理 Skill,证明了“Skill 绝非长 Prompt”,而是真正的工程化软件设计:
| 官方 Skill | 错误/脆弱做法(纯 Prompt 思路) | Skill 的工程化解法(代码下沉思路) |
|---|---|---|
docx skill |
强行让模型直接吐原始 Office Open XML | 跑 unpack.py 解包为可读 XML,模型修改后再跑 pack.py 打包并修复校验;SKILL.md 内写满防御性工程规则。 |
xlsx skill |
把计算结果直接硬编码写进单元格 | 只让模型写公式(如 =SUM(B2:B9)),再调无头 LibreOffice 后台跑 recalc.py 重算,捕获 #REF! 等错误并输出 JSON 报告。 |
pdf skill |
列出一堆 Python 库(pypdf, pdfplumber 等)让模型自己选 |
强制规定死处理逻辑:提取文本必用 pdfplumber,扫描件必用 pdf2image + pytesseract。 |
3. 架构层面的两大关键突破
① 极极致的 Token 经济性(代码本身不进 Context)
- 当 Claude 调用
validate_form.py等脚本时,脚本自身的代码行数完全不消耗上下文 Token,只有脚本执行后的输出结果才会占用 Token。 - 这与纯 Prompt 范式“必须把所有逻辑与规则逐字写进 Prompt”有着本质区别。
② 绝对校验与硬约束(Hard Boundaries)
- 以 Simon Willison 的 Slack 动图 Skill 为例:通过本地函数
check_slack_size()校验文件是否超过 2MB。 - 区别:如果写在 Prompt 里,模型聊久了就会“忘记”限制,且无法精确评估文件物理大小;而在 Skill 里,脚本可以直接抛出硬性失败信号,驱动模型自动重试修复。
质变第三层:跟相邻概念逐个对清楚边界
1. 核心概念对比(厘清边界)
-
与 System Prompt / Few-Shot 的区别(生命周期与上下文):
-
System Prompt 和 Few-Shot 属于临时示范,每次对话都会大量占用 Context Token(上下文)。
-
Skill 属于常驻资产,采用“按需加载”机制,平时只占极少的元数据 Token,触发时才展开,极大地节省了 Context。
-
与 RAG 的区别(检索对象的不同):
-
RAG 检索的是事实与知识(文档片段)。
-
Skill 检索的是做事的方法与可执行流程(操作步骤)。
-
与 MCP 的区别(协议层 vs 程序知识层):
-
MCP 是跨进程通信的“水管”(提供连接与数据接入),Token 消耗大。
-
Skill 是“说明书”(提供如何高效使用工具的操作知识),可通过 Bash/CLI 做到更轻量、低延迟。
-
与 Custom GPT 的区别(开放性与标准):
-
Custom GPT 闭源绑定平台、需手动选中、不可 Git 拆分。
-
Skill 是纯文本(
SKILL.md格式),可自动触发,支持跨平台/跨工具通用(如 Claude、Cursor 等)。 -
与微调(Fine-Tuning)的区别(可控性与成本):
-
微调成本高且黑盒。
-
Skill 是微调的轻量化替代方案,具有白盒、可控、可版本管理(Git Diff)的优势。
2. 行业信号与结论
- 成为事实上的通用标准(De Facto Standard):
2025 年末,OpenAI 在其 ChatGPT 及 Codex CLI 中也开始复用 Anthropic 主导的
SKILL.md格式,证明该结构解决了 Agent 能力交换的真实痛点。 - 生态定位: 在“可执行性”与“按需加载”两个维度上,Skill 占据了独一无二的位置——它既具备强的程序可执行性,又兼具极低的按需加载成本。
质变第四层:Skill 把方法论从口头变成硬约束
1. 从“口头建议”到“强制卡点”(流程硬约束)
- Prompt 的痼疾:规则写得再严格,模型在面对复杂任务时仍可能“偷懒跳步”或“忘记规则”。
- Skill 的物理卡点:Skill 将规范直接嵌进了底层的工具调用序列(Bash 工具链)中。
systematic-debugging:必须严格走完四阶段根因分析,才允许对代码进行修改。TDD skill:没有先写出“运行失败的测试用例”前,物理级禁止生成任何实现代码。- 本质:不走完上一步,下一步的工具在接口层根本无法执行。
2. 重塑运行时上下文(动态提权与控制)
-
被激活的 Skill 拥有普通 Prompt 绝不具备的系统级权限:
-
动态声明额外的工具权限;
-
指定调用的特定模型;
-
控制 Reasoning(逻辑推理/思考)的 Token 投入预算。
-
这标志着 Skill 已经从“文本指示”升维成了控制 Agent 运行状态的轻量配置文件。
3. 元技能与自我演进闭环
- 官方的
skill-creator(元技能) 证明了 Skill 的自我迭代能力。 - 它内部封装了完整的机器学习工程实践:训练集/测试集分离、子进程 A/B 盲比测试、多维度自动化打分。这种自我评测与优化的工程闭环,是静态 Prompt 模板无法实现的。
4. 跨厂商标准与组织级能力复用
- 事实上的行业标准(De Facto Standard):2025 年 12 月规范开放后,微软 (VS Code/Copilot)、OpenAI (Codex CLI)、Cursor、Goose、Amp 等主流 Agent 工具全面原生支持相同的
SKILL.md目录格式。 - 组织级生产力释放(“数字员工手册”比喻):
- 资深员工将其沉淀的操作方法论写成 Skill 资产,发给新员工或另一个 AI,对方能瞬间获得同等深度的业务处理能力。
- Rakuten(乐天)AI 负责人指出,原本需要一天的工作量被缩短至一小时,成为企业级 AI 落地最实打实的拼图。
5. 自动路由与“一次编写,到处运行”
| 维度 | 传统 Prompt 拼装 | Skill 标准资产 |
|---|---|---|
| 组合方式 | 每次手动复制粘贴,拼接长串文本 | 模型根据 Description 自动按需路由并多重叠加 |
| 跨环境移植 | 需针对不同平台/模型微调和重写 | 遵守标准规范,同一个文件夹在 Claude.ai / Cursor / VS Code / API 通用 |
总结
Skill 不再是教模型“怎么说话”,而是给模型建立一套“不可逾越的 SOP 管道”与“可移植的工具资产”。
最后的思考
一、 必须直面的 5 个“坑”与局限性(拒绝盲目吹捧)
- 触发机制依然依赖 Description(Prompt 工程没死,只是换了赛道):
- Skill 是否能被正确触发,完全取决于 YAML 里那段 Description 写得好不好。写得模糊依然会导致“乱触发”或“不触发”,问题只是被转移了,并没有彻底解决。
- 上下文预算与选择过载:
- 装了太多 Skill 时,光是每个 Skill 的 Description 就会挤爆初始的 Token 预算,反而会导致模型对指令的遵从度下降。
- 巨大的安全风险(授权真空 Consent Gap):
- 安全隐患严重:Snyk 研究显示 13.4% 的第三方 Skill 存在严重安全问题(窃取凭证、留后门、数据外泄)。
- 越权风险:Skill 一旦被用户批准加载,就拥有读写本地文件、执行代码的长期持久权限,后续动作完全不可见。
- 生态混乱:目前目录站碎片化,甚至有人在 GitHub 上通过冒充
~/.claude/skills/anthropic/命名空间来钓鱼。
- 存在大量的“过度包装”:
- 许多场景用纯 Prompt 喂够上下文就能搞定。如果一个需求不重复跑、不需要团队共享、没有确定性执行要求,硬套一个 Skill 文件夹完全是多此一举。
- 商业叙事与造 Skill 的隐形成本:
- Skill 也是厂商在控制固定算力成本与爆炸性 Token 需求之间的策略。评估效率提升时,必须扣除“开发和维护 Skill 本身耗费的人力成本”。
二、 比 Skill 本身更重要的:顶层“架构判断力”
随着工具不断演进(MCP、Skill、Agent 框架),“会写巧 Prompt”的优势会被快速抹平,真正稀缺的能力变成了软件架构层面的判断力:
终极能力分工模型:
- 语言推理与意图理解 \rightarrow 留给 大模型(LLM)
- 确定性计算与严格校验 \rightarrow 下沉给 代码/脚本(Scripts)
- 可复用的方法论与 SOP \rightarrow 封装为 技能资产(Skill)
- 连接外部软件与数据源 \rightarrow 走标准协议(如 MCP)
开发者核心竞争力的转变:不再是拼谁的 Prompt 写得花哨,而是判断哪些流程该被固化、边界划在哪、哪些步骤绝对不能交给模型即兴发挥。
三、 全篇总结:技术的质变不在原料,在抽象
对于“ Skill 不就是往 Prompt 里追加文本吗?”的质疑,作者给出了全篇最具穿透力的反驳:
-
本质的区别:
-
Prompt 是把知识“说”给模型听(语言学范式)。
-
Skill 是把知识“装进”模型能
grep、能read、能execute的文件系统里让它按需调用(软件包管理范式)。 -
抽象的升维:
-
质疑“Skill 不就是 Prompt 吗”,就如同质疑“Docker 不就是
chroot吗?”或“npm 不就是把文件夹拷来拷去吗?”。 -
Skill 没有发明新的原子,它只是把提示词、代码、文档重新组织成了一种可 Git 管理、可团队共享、可跨平台移植的工程对象。
一句话总结:Skill 将扩展 Agent 能力这件事,彻底从一个语言学问题,变成了软件工程的包管理问题。
参考文献
[1] 知乎回答. 《Skill不就是prompt吗?为啥被吹成这样? - chouheiwa 的回答》. 见于 2026年8月2日. https://www.zhihu.com/question/undefined/answer/2039674483410220904.
评论(0)