第三篇介绍了大模型的提示缓存机制,核心结论是:固定的前缀内容能命中缓存,帮你省钱。 但有一个问题没来得及细讲:这个“固定的前缀内容”从哪来?
答案就是本篇要聊的——Skills (技能) 。
一、先回顾一下:大模型为什么需要“背景说明”?
我们之前说过,大模型没有完整的“记忆和存储”功能。每次跟它交互,你都需要把完整的需求发给它,否则它返回的内容很可能达不到你的预期。
这意味着:每次提问,你都要重复发送同样的“背景说明”——你的项目介绍、文件命名风格、组件命名规范、代码风格偏好……
如果你每次都手动输入,既麻烦,又浪费Token(词元)。更重要的是,每次输入的措辞可能略有不同,缓存就无法命中,Skills正是为了解决这个问题。
二、Skills是什么?
Skills本质上是一套预置的、可复用的提示词模板,以Markdown文件的形式存储在特定目录中。
可以把它理解为给AI准备的“岗位说明书” :
- 当AI遇到特定任务时,就加载对应的“说明书”
- 说明书里写明了:该用什么工具、该遵守什么规范、该按什么流程执行
从技术实现上看,Skills的设计非常简单:一个文件夹 + 几个Markdown文件。
.claude/skills/
├── wechat-miniapp.md # 微信小程序开发规范
├── frontend.md # 前端开发规范
└── python.md # Python项目规范
三、为什么Skills能帮你省钱?
第三篇我们讲过:固定内容 = 缓存命中 = 省钱。
Skills的内容是固定的——你写好后就不会变。每次请求,AI编程工具都会自动把这些内容附加到消息前面,形成稳定的“前缀”。
这样一来:
- 第一次请求:写入缓存(付全价)
· 后续所有请求:命中缓存(只需支付约1/10的费用。虽然命中缓存,但是大模型仍然需要读取你的新问题、并结合缓存的上下文返回答案)
如果你不用Skills,每次都在对话里用自然语言描述规范,每次描述的文字可能不一样,大模型的提示缓存永远无法命中,每次都付全价。所以Skills不只是“规范管理工具”,更是“省钱工具”。
四、一个真实的Skills长什么样?
光说概念你可能觉得抽象。我给你看一个真实的Skills文件:
markdown
name: 微信小程序开发
description: 当开发微信小程序时使用此技能
项目规范
-
使用ES6语法,不使用TypeScript
-
页面文件结构:.js / .wxml / .wxss / .json
-
云函数统一放在 cloudfunctions/ 目录
-
网络请求使用 utils/request.js 封装的 wx.request
代码风格
-
组件命名使用 PascalCase(如 UserCard)
-
文件命名使用 kebab-case(如 user-card)
-
注释使用中文
常用命令
-
启动开发者工具:/Applications/wechatwebdevtools.app/Contents/MacOS/cli open --project 项目路径
-
上传代码:使用微信开发者工具的“上传”按钮
以上就是一份很普通的Markdown文档。你只需要把平时反复叮嘱AI的那些话,写进这个文件就行了,AI会按照你的这个Skill发给大模型。需要注意的是,如无必要,不要改动Skills,哪怕是一个空格,大模型都会认为是一个新的需求,导致匹配不上提示缓存。
五、为什么需要Skills?——三个痛点
你可能想问:我直接在对话里说“按我的规范来”不行吗?为什么非要搞个文件?主要有三个痛点:
痛点1:大模型“记不住”
大模型有一个特点:每次对话都是新的开始。它没有长期记忆。
你这次告诉它“用中文注释”,它记住了。但下次开新对话,它又忘了。你又要再说一遍。
Skills把这个规范“固化”下来,每次自动加载,不用你重复说。
痛点2:每次都说,浪费钱
我们第三篇讲过提示缓存——大模型会把重复出现的内容缓存起来,后续请求只需支付约1/10的费用。
如果你每次都在对话里用自然语言描述规范,每次描述的文字都不一样,缓存永远无法命中,每次都付全价。
而Skills的内容是固定的。每次请求都是一模一样的文字,完美命中缓存。省钱,是Skills的隐藏福利。
痛点3:团队协作,各说各话
如果你是团队开发,每个人都用自己的话告诉AI“怎么写代码”。A说“用中文注释”,B说“注释用中文”,C说“代码里写中文说明”……
AI每次都按不同理解执行,出来的代码风格不统一。
有了Skills就不一样了,大模型读到的都是同一份规范,代码风格自动统一。
六、为什么Skills使用Markdown格式?——一个“人机两读”的格式
这是本篇文章的一个核心内容:那么多格式,为什么偏偏选Markdown?
(关于Markdown格式的由来,详细内容可参见我的另一篇文章AI人工智能应用使用的Markdown文件格式是怎么来的?)
原因1:大模型“看”Markdown长大
大模型训练的时候,看的是什么数据?
- GitHub上几亿个README文件——全是Markdown
- 技术博客、Stack Overflow——大量Markdown
- 维基百科——语法类似Markdown
Markdown是大模型最熟悉的“语言”之一。 你用Markdown写Skills,就像用母语跟它说话。它理解最准,执行最稳。
原因2:基准测试证明,Markdown最准
有人做过测试:用11种不同格式给大模型输入同样的信息,看哪种格式准确率最高。结果很有意思:
| 格式 | 准确率 |
|---|---|
| Markdown(键值对) | 60.7% |
| XML | 56.0% |
| YAML | 54.7% |
| JSON | 52.3% |
| CSV | 44.3% |
Markdown排第一,比CSV高出16个百分点。
为什么?因为大模型在训练时“看”过太多Markdown了,对这种格式的结构理解最深。
原因3:人写得爽,机器读得准
一个好的格式,必须同时满足两个条件:
- 人好写:不用背语法、不用数括号
- 机器好读:大模型能准确解析结构
Markdown就是这种平衡。你写起来跟写文档一样,不需要学任何新语法。大模型读起来,标题、列表、代码块,一目了然。
对比一下,用JSON写同样的规范:
json
{
"rules": [
{
"category": "syntax",
"value": "use ES6"
}
]
}
写得累,读得也累。Markdown清爽多了。
原因4:固定格式 = 省钱
第三篇我们讲过:缓存命中的前提是“前缀完全一致” 。
Skills用Markdown写,内容固定,每次请求前缀一模一样,缓存稳稳命中。如果每次用自然语言描述,文字稍有不同,缓存就失效了。
Markdown不仅是“好用的格式”,更是“省钱的格式”。
虽然从技术上讲,Skills可以用纯文本、YAML、JSON等格式写,但Markdown是人机两读的最佳平衡点——大模型训练数据里它最多,人类写起来最舒服,结构也最清晰。这也是为什么Claude Code和Codex的Skills默认推荐使用Markdown格式。
七、Skills和提示缓存是什么关系?
第三篇我们讲了提示缓存,但你可能还有疑问:这跟Skills有什么关系?
关系是这样的:
每次API请求 = 系统提示词 + 工具列表 + Skills内容 + 你的问题 + 历史记录
以上请求中, “系统提示词+ 工具列表 + Skills内容”属于“固定的那部分”,每次请求都相同,是缓存的理想对象。
| 场景 | 缓存命中情况 |
|---|---|
| 用Skills | 固定内容每次相同 → 命中缓存 → 只需支付约1/10的费用 |
| 不用Skills,每次自然语言描述 | 固定内容每次不同 → 缓存失效 → 每次都付全价 |
所以,Skills不只是“规范管理工具”,更是“省钱工具” 。用好了Skills,你每轮交互都能享受缓存红利。
八、Skills还能做什么?——从“说明书”到“可执行程序”
有意思的是,Skills正在变得越来越强大。最新的Skills已经不止是“文本指令集”,而是可以包含可执行脚本:
markdown
name: 部署到测试环境
部署命令
执行以下脚本进行部署:
```bash
./scripts/deploy.sh --env=test
```
部署完成后,将结果返回给用户。
当AI加载这个技能时,它会自动执行 ./scripts/deploy.sh 脚本,而不只是输出提示文字。
这意味着Skills正在从“给AI看的说明书”演变为AI的“函数库” ——就像给AI装上了新的功能模块。 (如感兴趣,这部分的内容后面可补充)
九、小结
| 问题 | 答案 |
|---|---|
| Skills是什么? | 以Markdown文件编写的 “岗位说明书” ,放在 .claude/skills/ 目录,AI自动读取 |
| 为什么需要Skills? | 不用重复教、省钱、团队共享 |
| 为什么是Markdown? | 大模型训练时看过海量Markdown,理解最准;人也好写 |
| 和缓存什么关系? | Skills内容固定,帮助命中缓存,省钱 |
一句话总结:Skills就是给AI看的“员工手册”,用Markdown写,因为它人机两读、精准省钱。用好Skills,你不仅能统一代码规范,还能让每一轮交互都享受缓存红利。
下一篇预告:我们把视野从Claude Code/Codex拉出来,看看国内AI编程工具的现状,以及那些“看得见、够不着”的技术难题。
本文内容基于作者的开发经验和对官方文档的理解,仅供参考。技术工具、模型参数、定价等信息可能随时间变化,请以官方最新发布为准。如有不同见解,欢迎在评论区理性交流。
本文为原创内容,首发于微信公众号[机器人与人工智能爱好者]。未经本人书面授权,禁止任何形式的摘编、复制或用于商业用途,转载须注明出处。