Skill意义探讨

第一层质变:三级渐进式披露(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 模式:

C_{\text{prompt}} = \sum_{i=1}^{N} M_i

含义:要让模型具备 N 个领域的技能,每个领域需要 M_i Token,启动时必须一次性付清所有上下文费用,容易瞬间撑爆 Context Window。

Skill 模式:

C_{\text{skill}} = N \times 100 + \sum_{k \in \text{triggered}} L_k

含义:装入 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 个“坑”与局限性(拒绝盲目吹捧)

  1. 触发机制依然依赖 Description(Prompt 工程没死,只是换了赛道):
  • Skill 是否能被正确触发,完全取决于 YAML 里那段 Description 写得好不好。写得模糊依然会导致“乱触发”或“不触发”,问题只是被转移了,并没有彻底解决。
  1. 上下文预算与选择过载:
  • 装了太多 Skill 时,光是每个 Skill 的 Description 就会挤爆初始的 Token 预算,反而会导致模型对指令的遵从度下降。
  1. 巨大的安全风险(授权真空 Consent Gap):
  • 安全隐患严重:Snyk 研究显示 13.4% 的第三方 Skill 存在严重安全问题(窃取凭证、留后门、数据外泄)。
  • 越权风险:Skill 一旦被用户批准加载,就拥有读写本地文件、执行代码的长期持久权限,后续动作完全不可见。
  • 生态混乱:目前目录站碎片化,甚至有人在 GitHub 上通过冒充 ~/.claude/skills/anthropic/ 命名空间来钓鱼。
  1. 存在大量的“过度包装”:
  • 许多场景用纯 Prompt 喂够上下文就能搞定。如果一个需求不重复跑、不需要团队共享、没有确定性执行要求,硬套一个 Skill 文件夹完全是多此一举。
  1. 商业叙事与造 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)

评论加载中…