Chapter 01

什么是 Skill:能力与 Prompt 的分界

"我写了一个超级长的 System Prompt,但 Claude 总忘事。" 换成 Skill 之后,同样的知识量只在需要时才加载——本章讲清楚 Skill 到底是什么,为什么它不是 prompt 也不是 tool。

一句话定义

Skill 是装进 Claude 的能力包:一个目录,里面放一份 SKILL.md 说明书、若干辅助脚本(scripts/)、大量参考资料(references/),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 倍的压缩

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 把它产品化:

为什么现在学 Skills?
这是 Anthropic 为"Agent 时代"设计的能力复用协议。当你团队有 5 个 AI 项目时,与其写 5 份重复的长 prompt,不如把核心能力抽成 Skill,一次写成,多处调用。

本章小结