《黑客帝国》里尼奥学功夫那段,默尔菲斯把训练程序直接灌进他脑子,醒来就会了。 Claude Skills就是这个意思。你教一次AI怎么干活,它就永远记住了。不用每次都重复指令。

Skills到底是个啥

简单说,Skills就是一个包含指令的文件夹。你把怎么做某件事写在里面,Claude需要的时候自己去读。

最基本的结构长这样:

my-skill/
└── SKILL.md

SKILL.md里分两部分:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
---
name: explain-code
description: 用图示和比喻解释代码。当用户问"这代码怎么work的"或者要教别人代码时用。
---

解释代码时必须包含:
1. 先打个比方,用日常生活的东西类比
2. 画个图(ASCII艺术那种)
3. 一步步讲清楚发生了啥
4. 指出一个常见误区

语气要像聊天。

上面那几行用三个横杠包起来的叫YAML frontmatter,告诉Claude这skill叫啥、干啥用。下面是具体指令。

为啥要用Skills

你可能想说:“我用Projects不就行了吗?”

确实,Projects也能记住你的指令和上传的文档。但区别在于:

Projects = 一个固定工作区

  • 指令和文档永远在context里
  • 只在这个project生效
  • 适合长期项目

Skills = 可复用工具包

  • 只在需要时才加载
  • 全局可用,任何对话都行
  • 可以组合多个skills

举个例子:

你有个写博客的Project,里面定义了写作风格。某天写完文章,想提取SEO元数据,这时用个skill就行。写完还想转成推文,再用另一个skill。最后想发到Wordpress,配个MCP。

Projects + Skills + MCP,三个东西配合使用。

跟MCP的区别

MCP是让Claude能连外部系统(数据库、API啥的)。Skills是教Claude怎么干活。

MCP解决"能干啥",Skills解决"怎么干"。

跟Slash Commands的区别(Claude Code用户)

如果你用Claude Code,可能知道自定义slash命令。比如/review跑代码审查。

Slash commands是你手动触发,Skills是Claude自己判断要不要用。而且Skills能包含更复杂的逻辑和代码。

核心机制:Progressive Disclosure

这是官方文档里的说法,其实就是"渐进式加载"。

Claude启动时,扫一遍所有skills的namedescription,只是知道有这么个东西存在。比如"哦,有个PDF skill能提取文本"。

你跟Claude说"分析这个PDF",它意识到需要PDF skill,这时候才去读SKILL.md的正文。如果skill文件夹里还有参考文档或脚本,Claude判断需要哪些,再去读。

这样做的好处是省context。不会一上来就把所有skills的详细内容都塞进去。

你已经在用Skills了

Anthropic做了4个核心skills,自动启用:

  • DOCX: Word文档(格式、批注、修订)
  • PPTX: PPT(布局、模板、图表)
  • XLSX: Excel(公式、数据分析)
  • PDF: PDF操作(文本提取、表单填充)

所以你让Claude生成个50页的PPT,它不会被context撑爆,因为PPTX skill里的大部分代码和参考文档都在context外面跑。

Settings > Capabilities里还有更多example skills可以开。

自己动手写一个

假设你每周要写团队周报,格式都差不多。创建个文件夹team-report,里面写个SKILL.md:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
---
name: team-report
description: 生成标准化周报。用户想要团队状态报告或周更新时用。
---

# 周报生成Skill

## 格式

1. **本周成果**: 3-5条具体成果
2. **遇到的问题**: 2-3个当前障碍
3. **下周重点**: 3个关键优先级
4. **需要支持**: 团队需要什么帮助

## 语气

- 专业但别太正式
- 有数据就带数据
- 问题要往解决方案的方向说

## 输出示例

**本周成果:**
- 完成登录重构(登录速度快了40%)
- 新人顺利onboard了2个
- 清了15个积压的critical bug

**遇到的问题:**
- 数据库迁移比预期慢
- 项目X的spec还不够清楚

**下周重点:**
- 搞定迁移
- 启动项目Y开发
- Q4规划

**需要支持:**
- 周三前需要项目Y的设计评审
- 需要批测试工具预算

打包成zip,上传到Claude (Settings > Capabilities > Upload Skill)。搞定。

以后你只要说"写本周周报",Claude自动用这个格式。

进阶:加入可执行代码

skills可以包含脚本。比如你要验证数据:

data-validator/
├── SKILL.md
├── schemas/
│   └── customer-schema.json
└── scripts/
    └── validate.py

SKILL.md里引用validate.py。Claude需要验证数据时,在沙箱里跑这个脚本。脚本的输出(比如"验证通过"或"发现3个错误")才会占用context。

代码本身不占context,只有结果占。

实战案例:ML团队日跑1000+实验

HuggingFace上有个团队分享了他们的用法。他们做机器学习实验,每天上千次。

关键操作是/retrospective:

实验结束后,你输入这个命令。Claude把整个对话过程梳理一遍,提取关键发现,写成skill文件,然后开个PR提交到团队的skills registry。

有人review合并后,这个知识就成了团队共享的。

他们发现最有价值的不是成功案例,是失败记录。“我试了X结果因为Y崩了"这种记录,能让后来的人直接跳过这个坑。

成功故事告诉你一条能走的路,失败故事告诉你一堆不用走的路。

下次有人要做类似实验,用/advise问一下,Claude会搜索skills registry,把相关经验拉出来。

比如你要训练个transformer学加法,用Base-100 tokenization,参数预算0.5M到4M。Claude会找到之前ColBERT参数搜索的记录,告诉你哪些参数范围是坑。

写好Skills的4个技巧

1. Description是关键

差的description:

"处理文档"

好的description:

"从PDF文件里提取文本和表格。处理PDF、表单、文档提取时用。"

Claude靠description判断要不要触发这个skill。写得越具体,触发越准。

2. 给例子

别光说怎么做,给个具体输出:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
## 输入示例
"创建Q3业务回顾PPT"

## 输出示例
15页PPT:
- 执行摘要(1-2页)
- 关键指标dashboard(第3页)
- 各业务线表现(4-7页)
- 挑战与机会(8-10页)
- Q4路线图(11-13页)
- 详细数据附录(14-15页)

例子比说明管用。

3. 太长就拆

SKILL.md写得太长,就拆出去:

financial-modeling/
├── SKILL.md              # 核心指令
├── DCF-MODELS.md         # DCF方法论
├── VALIDATION-RULES.md   # 验证框架
└── examples/
    └── sample-model.xlsx

4. 多测几种问法

别只测一次。试试:

  • 不同的问法
  • 边界情况
  • 跟其他skills一起用
  • 明确提skill名 vs 让它自己判断

我的经验是自动触发还不太靠谱。保险起见,用@skill-name手动调用更稳。

安全问题(别跳过)

Skills能执行代码。所以乱装skills跟乱装浏览器插件一样危险。

恶意skill可以:

  • 执行有害命令
  • 偷你的数据
  • 滥用文件操作
  • 未授权API调用

Anthropic的规则很明确:只用可信来源的skills

啥叫可信:

  • 你自己写的
  • Anthropic官方的
  • 你逐行审查过的

网上那些"评论’Skill’获取600+技能包"的,离远点。

至少要做到:

  • 读完整个SKILL.md
  • 检查所有脚本,看有没有可疑操作
  • 留意是否fetch外部URL(大红旗)
  • 确认请求的工具权限
  • 检查网络调用

实际应用场景

最好的skills是解决你重复做的事。

会议笔记转提案

AI会议记录工具一堆,但生成的摘要我基本不看。我需要的是从对话里提取客户需求,直接转成项目提案。

以前得把transcript上传给Claude,每次手动说一遍怎么提取痛点、怎么写提案。

现在有个"会议分析"skill,我只要说"分析这个会议”,它自动按我要的格式做。

数据报告生成

有客户说他们每周要从好几个数据源拉数据,整合成统一格式的报告,带图表带摘要。

用skills能把这整个流程自动化。丢给Claude原始数据,它调用skill生成完整报告,包括图表和PPT。

代码审查

如果你用Claude Code,自定义code review skill比slash command强很多。可以跑脚本检查代码,还能执行lint工具。

几个坑

自动触发不靠谱

官方说Claude会根据对话自动判断用哪个skill,实际上miss的概率挺高。

我一般是在Claude.md全局配置里列一遍我的skills清单,稍微提升点准确率。但说实话这是个hack。

更保险的做法是手动指定:

@explain-code 这段时序约束是干啥的

description别写太泛

写"处理数据"这种,啥时候都可能触发。写成"从CSV提取指定列,计算统计指标,用于财务月报生成"就清楚了。

别贪多

一个skill干一件事。别想着"万能分析skill"。拆成"数据清洗skill"、“图表生成skill”、“报告撰写skill"更好用。

实际怎么开始

  1. Settings > Capabilities > Skills,把example skills开几个玩玩
  2. 试试让Claude生成个Excel或者PPT
  3. 想想你最常重复的指令是什么
  4. 照着team-report那个例子改一个
  5. 测5次,根据结果调整

别一开始就想做很复杂的。从简单的开始,有效果了再加功能。

最后说一句

MCP刚出来的时候我觉得挺大,但Skills可能更重要。

原因是MCP解决的是"连接外部系统”,这事本来API就能做,只是标准化了而已。

但Skills解决的是"如何高效复用知识和流程",这是团队协作的核心问题。以前知识管理最难的从来不是存储,是让人愿意写下来。

做完一个实验session,谁还有精力开文档总结?Context还热乎着,人已经累瘫了。

/retrospective这个思路很聪明:趁热打铁,让Claude帮你总结。成本低,门槛低,记录自然就多了。

当一个团队的隐性知识能快速显性化,并且复用成本极低时,整个团队的能力会质变。

这才是Skills真正的价值。


参考资料


本文写于2026年2月,Skills功能还在快速迭代,部分细节可能会变。