每个人都在用 AI,但大多数人每天都在「重新教」AI 做同样的事。Skills 的出现,正在改变这个局面。
一个你肯定经历过的场景
你打开 Claude Code,想做一件已经做过很多次的事——比如,把两个 PDF 合并成一个:
"帮我把 report-a.pdf 和 report-b.pdf 合并,用 pypdf 库,注意保持页面方向,如果有加密要先解密..."
你很熟练,一气呵成。但你有没有发现一个问题:这件事你每次都要重新说一遍。就像每次吃饭都要重新告诉厨师"炒菜记得放盐"一样荒谬。
这不是你表达能力的问题,而是传统 Prompt 机制的固有缺陷。
传统 Prompt 的三大致命伤
| 问题 | 表现 |
|---|---|
| 不可复用 | 每次处理同类任务都要重新描述需求,经验无法沉淀 |
| 不稳定 | AI 这次用了 pypdf,下次可能用 reportlab,结果忽好忽坏 |
| 无法规模化 | 你踩过的坑、摸索出的最佳实践,无法分享给团队成员 |
你积累了使用 AI 的经验,但 AI 却像一个永远失忆的助手——每次都从零开始。
这就是 Skills 要解决的问题。
Skills 是什么:把经验"安装"进 AI
一句话定义:
Skills = 可复用的 AI 专业能力包 = 指令(Instructions)+ 脚本(Scripts)+ 资源(Resources)
如果 Prompt 是一次性筷子,那 Skill 就是你厨房里那套经过无数次使用打磨出来的专业刀具——拿起来就用,刀工稳定,还能传给团队。
用一个生活类比:
你想让 AI 帮你做一份数据分析报告
没有 Skill:
你:"用 matplotlib 画柱状图,蓝色背景,白色文字,标题用 14 号字..."
AI:"好的"(下次你又要重新描述一遍)
结果:每次风格不一样,有时对有时错
有 Skill (dataviz):
你:"把这份数据可视化一下"
AI:(自动加载 dataviz Skill)→ 按专业规范生成图表
结果:风格统一,质量稳定,团队其他人用也是一样
Skill 不会取代你的判断,但它把你已经验证过的好做法固化下来,让 AI 每次执行时都有一个"共识底线"。
Skill 和 MCP,到底什么关系?
这是被问到最多的问题。两者的区别,用一句话就能说清:
MCP 解决的是「能做什么」 —— 让 AI 连接数据库、调 API、读文件
Skills 解决的是「怎么做更好」—— 让 AI 知道怎么连接、连完干什么
再用一个更具体的类比:
| Skill | MCP | |
|---|---|---|
| 角色 | 菜谱 | 燃气管道 |
| 本质 | 指令模板 + 工作流 | 外部服务连接协议 |
| 技术门槛 | 会写 Markdown 就能写 | 需要开发一个 Server 进程 |
| 类比 | 告诉厨师这道菜该怎么做 | 确保厨房有火、有水、有电 |
一个没有 Skill 的 MCP 就像燃气通了但没人会做菜——你能烧水,但做不出一桌好菜。
一个没有 MCP 的 Skill 就像一个厨神被困在没有炉灶的房间里——脑子里有菜谱,但什么都做不了。
两者合在一起,才构成真正能打的 AI Agent。
一张图看清全貌
┌────────────────────────────┐
│ AI Agent 智能体 │
│ │
│ Skills + MCP = 完整 Agent │
└──────────┬─────────────────┘
│
┌───────────────────────┴───────────────────┐
│ │
┌─────────▼─────────┐ ┌─────────▼─────────┐
│ Skills │ │ MCP │
│ (怎么做更好) │◄──── 协作互补 ─────► │ (能做什么) │
│ │ │ │
│ 纯 Markdown │ │ 标准协议 Server │
│ 无服务器成本 │ │ 需开发能力 │
│ 一次写好持续增值 │ │ 连接外部系统 │
└───────────────────┘ └───────────────────┘
真实案例:一个 PDF Skill 长什么样
以 Anthropic 官方的 pdf Skill 为例,它的目录结构是这样的:
pdf/
├── SKILL.md ← 核心:我的"菜谱"(AI 最先读这个)
├── reference.md ← 进阶用法(AI 遇到复杂场景才读)
├── forms.md ← 表单填充专项指南(按需加载)
└── scripts/ ← 确定性工具(执行时调用,保证不出错)
├── convert_pdf_to_images.py
├── extract_form_field_info.py
├── fill_pdf_form_with_annotations.py
└── check_bounding_boxes.py
注意一个关键设计:渐进式加载。
SKILL.md 只有约 300 行,覆盖了 80% 的日常场景。AI 不会一开始就把 reference.md 和 forms.md 全部加载进来——那样太浪费 Token。只有当任务涉及"填充 PDF 表单"时,才会按 SKILL.md 末尾的指引,去读 forms.md。
这就是好设计的体现:入口轻,需要时才加载细节。
SKILL.md 的核心
打开 SKILL.md,最前面是一段 YAML 元数据:
---
name: pdf
description: Use this skill whenever the user wants to do anything
with PDF files — reading, extracting text/tables, merging, splitting,
rotating, adding watermarks, creating new PDFs, filling forms,
encrypting/decrypting, extracting images, and OCR on scanned PDFs.
---
description 是这里最重要的字段——AI 用它来判断「这个 Skill 适不适合当前任务」。写得好,AI 自动激活;写得模糊,该触发时不触发。
然后是 Quick Start、按场景分类的操作指南、常见陷阱、速查表——完全是一份给 AI 看的「标准操作手册」。
回到开头那个场景
有了 PDF Skill 之后,你和 AI 的对话变成了这样:
你:"把这两个 PDF 合并"
AI:(自动加载 pdf Skill,知道用 pypdf 的 PdfWriter,知道怎么处理页面旋转、加密、元数据...)
"好的,合并完成:merged.pdf,共 12 页。"
不用解释,不用提醒,不用祈祷这次 AI 能蒙对。
这就是 Skills 的魔力:把你的经验,变成 AI 的默认行为。
这篇文章的核心
- 传统 Prompt 不可复用、不稳定、无法共享——你每次都在重新教 AI
- Skills 是可复用的 AI 经验包——用 Markdown 就能写,零服务器成本
- MCP 管"能不能做",Skills 管"做得好不好"——两者协作才是完整 Agent
- 渐进式加载是好设计的标志——入口轻量,按需深入
下一篇文章,我会手把手带你从零写一个 Skill——包括怎么写 description 让 AI 精准触发、怎么把踩过的坑变成"常见陷阱"章节、以及一个拿来即用的 SKILL.md 模板。