一句话定义
Skill 是装进 Claude 的能力包:一个目录,里面放一份 SKILL.md 说明书、若干辅助脚本(scripts/)、大量参考资料(references/),Claude 根据任务需要按需加载其中的内容。
类比:人类的技能手册
医生的手边有一本《急救手册》。平时手册在书架上,占不了注意力。遇到急救场景,他知道"查第三章"——而不是把整本书全背下来。Skill 就是给 Claude 的手册,知道何时翻开、翻到哪一页。
医生的手边有一本《急救手册》。平时手册在书架上,占不了注意力。遇到急救场景,他知道"查第三章"——而不是把整本书全背下来。Skill 就是给 Claude 的手册,知道何时翻开、翻到哪一页。
Skill vs System Prompt vs Tool
三者都能改变 Claude 的行为,但用途完全不同。
| 机制 | 作用 | 加载时机 | 典型体量 |
|---|---|---|---|
| System Prompt | 设定角色、语气、全局规则 | 每次对话都在上下文里 | < 2K tokens |
| Skill | 可激活的领域能力 | 任务匹配时才加载细节 | SKILL.md < 500 行,整包可 MB 级 |
| Tool | 可执行的原子操作 | 模型主动调用 | Schema + 执行逻辑 |
| MCP Server | 外部动态服务 | 按需 RPC 调用 | 协议 + 服务端实现 |
一个极简判断:知识多、且按需用 → Skill;知识少、每次用 → System Prompt;要执行副作用 → Tool 或 MCP。
Skill 的灵魂:渐进披露
Skill 之所以比"超长 System Prompt"好用,核心是 Progressive Disclosure(渐进披露):
┌────────────────────────────────────────┐
│ Level 1 激活期(默认加载) │
│ SKILL.md 的 frontmatter + 概述(< 200 字) │
│ → Claude 知道"有这个能力" │
├────────────────────────────────────────┤
│ Level 2 执行期(grep / read 触发) │
│ SKILL.md 正文 + references/*.md │
│ → Claude 读取具体步骤、规范 │
├────────────────────────────────────────┤
│ Level 3 运行期(Bash 触发) │
│ scripts/*.py、*.sh、*.ts │
│ → Claude 执行脚本获取结果 │
└────────────────────────────────────────┘
对比:如果把所有细节塞进 System Prompt,哪怕 1% 场景用到的知识,也要 100% 的对话都给它付 token。Skill 把"成本"推迟到真正使用时——平时几乎免费。
数字感知
一个完整的"SEC 财报分析" Skill 包含 12 份 reference 文档共 80 万字、6 个 Python 脚本。激活期只加载约 600 字的 SKILL.md,其余全部懒加载。上下文占用从 200K 降到 600——300 倍的压缩。
一个完整的"SEC 财报分析" Skill 包含 12 份 reference 文档共 80 万字、6 个 Python 脚本。激活期只加载约 600 字的 SKILL.md,其余全部懒加载。上下文占用从 200K 降到 600——300 倍的压缩。
Skill 的目录长什么样
my-skill/
├── SKILL.md ← 入口,必须有 YAML frontmatter
├── scripts/
│ ├── validate.py ← 数据校验
│ └── report.sh ← 生成报告
└── references/
├── api-spec.md ← API 规范
├── glossary.md ← 术语表
└── examples/
├── case1.md
└── case2.md
这是 Anthropic 推荐的最简结构——SKILL.md 是必须的,其余按需。文件名、目录结构都由你定,Skill 系统只规定了"入口文件必须叫 SKILL.md"。
SKILL.md 最小示例
--- name: pdf-form-filler description: 自动读取 PDF 表单字段并填写,支持签字域定位。 适用于:报销单、入职表、合同草签页。 --- # PDF 表单填写 当用户说"填 PDF"、"签这个表"、"把数据写到表单"时激活。 ## 使用步骤 1. 运行 `scripts/detect_fields.py <pdf_path>` 列出所有字段 2. 根据用户提供的数据生成字段 → 值映射 3. 运行 `scripts/fill.py <pdf_path> <data.json> <out.pdf>` 4. 返回填充后的 PDF 路径 ## 注意 - 遇到签字域,用 `references/signature-guide.md` 里的方法定位。 - 金额字段必须校验:见 `references/amount-format.md`。
就这么简单。用户不需要写代码告诉 Claude 怎么激活这个 Skill——Claude 看到 description,根据用户请求自己判断。
什么时候该写 Skill
✅ 适合 Skill
- 领域知识沉淀(API 规范、SQL schema)
- 多步骤工作流(报表生成、合同审核)
- 品牌/风格规范(UI 设计、文案调性)
- 专业工具包(PDF / Excel / 图像处理)
- 团队沉淀的最佳实践
❌ 不适合 Skill
- 单次简单任务(直接 prompt 即可)
- 实时变化的数据(用 MCP 或 Tool)
- 用户基本角色设定(System Prompt)
- 通用能力(Claude 自带的编码、写作)
Skill 的历史:从 Operator Manual 到 Skills
Anthropic 在 2025 年推出 Skills 体系,前身是内部的"Operator Manual"做法——工程师为 Claude 写 markdown 手册,用 <claudemd> 标签注入。Skills 把它产品化:
- 2024:CLAUDE.md 自动加载(项目级规约),但还是 System Prompt 风格
- 2025 H1:Claude Code 引入
~/.claude/skills/概念 - 2025 H2:Claude API 开放 Skills 参数,Claude.ai 支持 Skill 上传
为什么现在学 Skills?
这是 Anthropic 为"Agent 时代"设计的能力复用协议。当你团队有 5 个 AI 项目时,与其写 5 份重复的长 prompt,不如把核心能力抽成 Skill,一次写成,多处调用。
这是 Anthropic 为"Agent 时代"设计的能力复用协议。当你团队有 5 个 AI 项目时,与其写 5 份重复的长 prompt,不如把核心能力抽成 Skill,一次写成,多处调用。
本章小结
- Skill = 目录 + SKILL.md + 脚本/参考资料,装进 Claude 的能力包
- 与 System Prompt(全局规则)、Tool(原子操作)、MCP(外部服务)定位不同
- 核心机制是渐进披露:概述进上下文,细节按需加载,省 token
- 适合沉淀领域知识、多步工作流、团队最佳实践;不适合实时数据或一次性任务
- 下一章动手写第一个 Skill——PDF 表单填写器