讲真,我忍这个话题很久了。
最近朋友圈又被“Skill”刷屏了。打开一看,好家伙,一群人把Skill捧成“prompt的进化版”、“AI编程的终极答案”。不是我说,你们是不是对“进化”这个词有什么误解?把一段话用YAML包装一下就叫进化了?那我给泡面加个荷包蛋是不是就叫分子料理了?
我花了一晚上把Codex Skills那套设计逻辑啃完了,越看越上头——Skill根本不是prompt的升级版,它是写给AI的岗位SOP,是工作流工程,是特么的工程化思维。不是你们想的那种“写好prompt就完事”的偷懒玩意儿。
先说说很多人踩的坑——把SKILL.md当成“大而全”的百科全书往里塞东西。
有人说得特别狠:“SKILL.md更像目录,不像百科全书”。长文档、架构规范、接口契约,该拆到references/里就拆进去,别堆在主文件里。道理很简单:你堆得越多,AI加载时吞的token越多,成本越高,效率越低。就像你让实习生看一本《从入门到精通》才能学会写个Hello World,这不是教学,是折磨。
而且你以为写得长就叫“专业”?我告诉你,这叫“对自己理解能力的不自信”。
有一个设计特别骚,叫做渐进式披露(progressive disclosure)。系统平时只记录Skill的name和description,只有当你显式点名或任务高度匹配时,才会加载完整内容。这招真的绝。干净上下文、稳定输出、还能把技能库做得更细。省token只是副产品,真正的价值是稳定性——在企业环境里,稳定比偶尔惊艳值钱一万倍。
不是我说,很多团队现在被AI搞崩,不是模型不行,是工作流还停留在临场发挥。每次写prompt都像开盲盒,手气好就出好代码,手气差就得重来。而Skill把这种“随机性”变成了“规程性”——你定义好边界条件、执行步骤、完成标准,AI照着走,不跑偏。Dev.to上有个老哥更离谱,他复制粘贴同一个review prompt 47次才发现Claude Code早就有Skills功能,直到队友问他“你的custom commands和Skills到底什么区别?”他才意识到自己一直在手动拷贝同一个检查清单,真是写实又不忍直视。[^1]
Skill跟prompt最大的区别就一句话:“Prompt更像临时交代,Skill更像写给AI的岗位SOP。”
这话说得我当场拍大腿,差点把键盘拍碎了。太对了。
还有个很多人搞混的——Skill和MCP。
道理很清楚:MCP是能力接口,负责把AI连到GitHub、数据库、外部系统;Skill是执行层,决定什么时候调这些能力、按什么步骤调、失败了怎么收口。简单粗暴理解:MCP决定“能不能连上工具”,Skill决定“连上之后该怎么干”。
你能接100个工具,但没方法论组织它们,那不就是有枪但不会瞄吗?
再说一个让人血压飙升的误解——Skill、Agent、Sub-agent三个概念搅成一锅粥。
我给你们一个三层区分:
- Skill是静态资产,躺在磁盘里的工作流定义文件
- Agent是运行时主体,真正干活的实体
- Sub-agent是被主Agent分出去的子执行单元,生命周期短、目标明确
我翻译成大白话:Skill就像剧本,Agent是演员,Sub-agent是临时拉来的配角。你不可能让剧本自己去演,也不可能让演员一边背台词一边调度舞台。各司其职才是正经事。
最妙的是那句:“Skill本身不会执行任何事,它只是定义规则;Agent才是真正会读代码、调工具、改文件、总结结果的那个运行实体。”
听到没?Skill不是魔法,是说明书。
而且这玩意儿根本不是什么Claude Code的专利。Anthropic自己都说了,Agent Skills是个开放标准,同一个Skill能在VS Code、GitHub Copilot、OpenAI Codex之间横跳——编辑器换一遍,流程不变。[^2] 这你受得了吗?
我在调研时还看到有平台直接出了支付Skill,号称三端打通、三步接入、自动联调。说真的,把支付这种脏活累活标准化的思路,才是Skill真正该干的事。具体是哪家的我就不点名了,省得有人说我带货。但思路摆在这里:不是教AI“怎么更好写诗”,而是教AI“怎么稳定处理业务流程”。
那问题来了:踩了这么多雷,怎么写出好的Skill?
三个误区:
1. 你以为写清楚了,对AI来说就是一团浆糊——模型不会自动脑补你的隐含约束
2. 越长越好?拉倒吧——保留模型已知的知识完全是浪费token
3. “能跑”不等于“好”——稳定复现、可维护才是及格线
我的建议很简单:先把边界画清楚,再把步骤列明白,最后加上明确的完成标准(Done criteria)。别让AI自己猜“做到啥程度才算完”。
哦对,还有一个很容易被忽略的——安全检查。
特别要盯住两个边界:文件系统边界(sandbox_mode)和执行审批边界(approval_policy)。别因为用了Skill就放松警惕,尤其是那些让你觉得“它自动帮我干了啥”的Skill。如果它能自动部署、自动发消息、自动退款,那请你一定加上disable-model-invocation: true,强制手动触发。不然翻车了别怪我没提醒你。
最后说点建设性的。
我承认,Skill这个概念让我一度想骂娘——又一个新词,又要学,又特么是割韭菜吧?但真正看懂后我服了。它不是花活儿,是把AI从工具变成方法论的落地方式。你把写prompt的经验、团队的规范、重复执行的关键步骤,都固化成一个可版本化、可复用的单元——这才是工程化。
所以别再说“我prompt写得不错”就等于会写Skill了。你写的那叫“临时话术”,搞不好复制47次都不带改的。而Skill,是让你不用每次都复制粘贴。
不服?那你告诉我,你仓库里的skills目录现在有几个文件?都能稳定复用吗?做不到就闭嘴去学。
哈哈哈哈哈,我去写自己的SKILL.md了。
[^1]: 参见 [I Copy-Pasted the Same Prompt 47 Times Before Noticing Claude Code Has Skills](https://dev.to/kenimo49/i-copy-pasted-the-same-prompt-47-times-before-noticing-claude-code-has-skills-1mb1),作者记录了自己因不了解Skills而重复粘贴同一条review prompt多达47次的经历。
[^2]: 根据 [Claude Skills and SKILL.md for Developers: VS Code, JetBrains, Cursor](https://dev.to/rosgluk/claude-skills-and-skillmd-for-developers-vs-code-jetbrains-cursor-17f6) 一文介绍,Agent Skills作为开放标准正在被多个平台采用,包括GitHub Copilot和OpenAI Codex。