乐于分享
好东西不私藏

Skill 才是 AI 落地的正确姿势,可惜大部分人还在写提示词

Skill 才是 AI 落地的正确姿势,可惜大部分人还在写提示词

当我们用AI写一些文章的时候,最烦的不是它写得差,是它记不住。

今天我告诉它"结尾别写点赞再看,跟我调性不搭",它改了,写得挺好。明天开新对话,它又老老实实在文末给我来一句"觉得有用的话点个赞再看"。

于是我开始攒提示词。所有要求写成一大段,每次开头粘贴。粘到第七条我发现,前面几条它开始忽略了。上下文里塞的东西越多,每一条被认真对待的概率越低。

那阵子我还挺认真地研究过怎么把提示词写得更好。结构化、角色设定、思维链、少样本,能试的都试了。有效果,但天花板很低。后来我才想明白,我一直在解一道错的题。

🎯 一句话剧透:提示词是"每次口述一遍菜谱",Skill 是"把菜谱放进厨房"。前者靠你记得说,后者靠模型自己会翻。

一、提示词这条路,本来就不通

问题不在于写得好不好,在于它是一次性的。

这次写得再精妙,关掉对话就归零。你的经验没沉淀在任何地方,只是反复地被口述。

更麻烦的是不可组合。写公众号一套要求,写代码另一套,做图表还有第三套。全塞进一个提示词,互相干扰;分开存,每次得先想清楚该粘哪一段。你会发现自己在给 AI 当人肉调度器。

也不可分享。同事问你怎么让 AI 写得像人话,你只能把那两千字发过去,他粘一次用一次,改进了也传不回来。

二、一个 Skill 长什么样

说穿了没有任何神秘感。这里举一个开源的skill说明,就是一个目录,里面放一个 SKILL.md

~/.claude/skills/└── humanizer-zh/    └── SKILL.md

开头是几行 YAML,必填的只有两个字段:

---name: humanizer-zhdescription: 去除文本中的 AI 生成痕迹。适用于编辑或审阅文本,  使其更像人类书写。检测并修复:夸大的象征意义、宣传性语言、  破折号过度使用、三段式法则、AI 词汇、否定式排比。---# 去除 AI 写作痕迹你是一位文字编辑,专门识别 AI 生成文本的痕迹……(下面是完整规则、判断标准、改写前后对照)

正文该多长多长,想放几千字就放几千字,复杂点的还能带上别的:

dataviz/├── SKILL.md├── references/palette.md      细节文档└── scripts/validate.py        可执行代码

这两个子目录才是真正拉开差距的地方,第五节细说。

三、关键机制:它平时不占地方

看到这你可能会说,这不就是把提示词换个地方存吗。区别在加载方式。

启动的时候,模型不会把你所有 Skill 的正文读进上下文,它只读那几行 description。我这台机器上挂着十几个 Skill,全部简介加起来也就一两百 token 的量级,可以忽略。

等你说一句"帮我把这段改得别那么 AI",它扫一眼这十几行简介,判断出该用哪个,这时候才把整个 SKILL.md 读进来。

启动只读 description判断该用哪个加载 SKILL.md 全文用到细节再读 references/

三层:简介常驻,主体按需,细节再按需。官方管这叫渐进式披露(progressive disclosure)。

💡 这解决的正是开头那个死结。以前是"想让 AI 记住的越多,上下文越挤,效果越差"。现在你塞一百个 Skill,平时成本几乎为零。能力库和上下文,不再是零和的。

四、它和 MCP、RAG 不是一回事

这三个经常被混着讲,我自己也绕了一阵。

给的是什么
扩展的是
MCP
能碰到什么(读 issue、查库)
RAG
记忆
知道什么事实
Skill
章法
这活儿在我们这儿该怎么干

举个具体的。我让 AI 写公众号,它有手(能写文件、能搜索),也有资料(我给了历史文章)。但它不知道我的流程是:先写初稿,作封面,结尾不许放求赞的话。

这三条不是工具,不是知识,是规矩,规矩就该放 Skill 里。

📌 三者不打架,是叠着用的。Skill 里完全可以写"调用某个 MCP 工具拿到数据,再按下面的规则处理"。

五、写一个真会被触发的 Skill

我写废过好几个,教训集中在四点。

⚠️ description 决定生死。这是唯一常驻在模型眼前的东西。写得含糊,你后面几千字的心血就永远躺在硬盘里睡觉。我第一版写的是"文本优化助手",人看得懂,模型完全不知道什么时候该用。判断标准:假设你有一百个 Skill,光看这行简介你自己能不能秒选出来。你选不出来,模型也选不出来。

⚠️ 正文是写给模型看的,不是写给人看的。别搞"概述""背景介绍"。直接上判断标准和操作步骤,带正反例。humanizer-zh 里我写了二十多组"改写前 / 改写后"对照,比任何抽象描述都管用。

⚠️ 确定性的事,交给代码。要检查配色对比度,你可以在 SKILL.md 里写一大段计算方法,然后祈祷模型每次都算对;也可以写十行 Python 扔进 scripts/,正文里只留一句"跑这个脚本检查"。后者不会算错,前者会。凡是有标准答案的环节都该用脚本兜住。

⚠️ 一个 Skill 只干一件事。我一度想做"公众号全能助手",选题、写作、配图、排版全塞进去。结果每次触发都加载一坨不相干的内容,模型还老搞混自己处在哪个环节。拆成三个之后各自都清爽了。

六、真正让我改观的,是它能进 Git

写到这你可能觉得这就是个上下文管理技巧。我一开始也这么想。

改观是在我把这些文件夹丢进 Git 之后。

一个 Skill 就是一个纯文本目录。可以提交,可以看 diff,可以回滚,可以发给同事直接复制到他的 ~/.claude/skills/,五秒生效,效果和我这儿一模一样。他觉得哪条规则该改,提个 PR 回来,我们俩的 AI 同时变聪明。

这是提示词永远做不到的事。

团队里最值钱的从来不是某个人某天想出来的神级提示词,是那些"这类需求要先跟前端确认埋点""这个接口的错误码得这么处理"的隐性经验。以前它们活在几个老员工脑子里,新人靠撞墙学,人一走就没了。现在它可以是一个 PR。

Anthropic 把 Agent Skills 做成了跨产品通用的格式,Claude Code、网页版、API 都认同一套文件。你写的这个文件夹不绑在某个入口上。

我不敢说这个格式一定会成为标准,也不排除半年后又冒出个新东西。但"把经验写成模型能自动加载的结构化文件"这个方向是对的。至少它让我这一年攒的所有零碎要求,第一次有了个正经的存放位置,而不是散落在几百条对话记录里等着被遗忘。

七、一句话收尾

🎯 别再堆提示词了。从你这个月已经重复交代五遍的那件事开始,二十分钟写成一个 SKILL.md,你的经验才算真正存下来了。

我的第一个 Skill 就是这么来的,起因就是受不了它老在文末让我的读者点赞再看,现在它再也不写了。

我是小严,只写我亲手验证过的 AI 实战,我们下篇见。