最近 Claude 推出了 Skills 功能。很多同学刚了解完 MCP,又看到 Skills 上线,难免会疑惑:Skills 到底是什么?和 MCP 有什么区别?下面从“能落地、能复用”的角度把这两者讲清楚,并给一套可直接上手的 Skills 使用流程。
一、Skills:把 AI 能力做成可复用模块
简单来说,Claude Skills 是一种模块化的 AI 能力封装。你可以把它理解成给 Claude 安装“技能包”:每个 Skill 通常是一个文件夹,其中包含:
SKILL.md:技能说明书(定义用途、操作流程、触发方式等)
- 脚本/模板:用于自动化执行某些逻辑
- 资源文件:依赖的代码片段、样式、流程图等
一个直观的场景
以前你想让 Claude 输出“符合团队模板的技术方案”,往往需要写很长的提示词,比如:技术栈、数据库、代码风格、接口规范、输出结构……每次都要重复描述。
有了 Skills 之后,你只要说一句“请把我这个需求实现对应的技术方案”,Claude 会自动加载你提前封装好的「技术方案 Skill」,直接按你的标准输出结果。这本质上是把“提示词工程 + SOP”沉淀为可复用模块。
Skills 的核心设计:渐进式披露机制
这套机制是 Skills 高效的关键:
- 初始加载:Claude 只记住每个 Skill 的元数据(名称 + 描述),通常只占几十个 token
- 按需触发:当你的请求匹配某个 Skill 的描述时,才加载完整指令和脚本
- 分模块读取:复杂 Skill 可以拆成多个文件,Claude 只读取当前任务需要的部分
这样你就可以维护几十甚至上百个 Skills,而不会明显挤占上下文或拖慢交互性能。

二、Skills vs MCP:不是替代关系,而是不同维度
不少人会把 Skills 和 MCP 的概念混在一起,但它们其实是两个维度的 AI 扩展方式:
- Skills:偏“内部能力封装”,把固定流程、规范、模板、脚本沉淀成模块化 SOP
- MCP(Model Context Protocol):偏“外部系统连接”,让 AI 能访问外部资源(文档、工单、知识库、图片等)
下面这张对比表能快速定位它们的差别:
| 维度 |
Claude Skills |
MCP(Model Context Protocol) |
| 核心定位 |
内部能力封装:模块化 AI 如何完成具体任务 |
外部系统连接:让 AI 能访问外部资源 |
| 主要功能 |
标准化流程、重复任务自动化、专业提示词复用 |
连接飞书、Jira 等外部系统与数据源 |
| Token 效率 |
相对更高:按需加载 Skill |
可能更高:需要加载 API 文档等上下文 |
| 技术本质 |
提示词集 + 预写脚本/模板 |
协议 + 外部系统桥接 |
最佳实践:Skills + MCP = 个人/团队 AI 工作流
单独使用各自都能解决一部分问题,但组合起来更接近“可持续复用”的工作流。以“技术方案撰写”为例:
- 用 Skills 生成符合模板的技术方案骨架
- 用 MCP 读取飞书产品文档、设计稿、相关图片
- 再用 Skills 输出完整方案细节(结构化、可执行、可评审)
如果你的团队做的是“工程化交付”,往往会同时需要流程规范(Skills)和外部上下文(MCP)。
三、快速上手 Skills:从官方示例到自建 Skill
1)安装官方示例
Claude 官方开源了一批 Skills 示例,覆盖文档处理、代码生成、创意设计等常见场景。可以用下面的命令安装体验:
/plugin marketplace add anthropics/skills
2)官方示例:加载 PDF 处理 Skill 的过程
下面用“PDF 处理技能”说明 Claude 是怎么按需加载 Skill 的:
- 启动:系统提示里包含技能描述,例如:
PDF Processing - Extract text and tables from PDF files, fill forms, merge documents
- 用户请求:“从该 PDF 文件中提取文本并进行总结”
- Claude 调用:读取
pdf-skill/SKILL.md
例如:bash: read pdf-skill/SKILL.md(指令加载进上下文)
- Claude 判断:如果无需填写表单,就不会读取
FORMS.md
- Claude 执行:按
SKILL.md 的指令完成任务

3)创建属于自己的 Skill(推荐)
相比直接用示例,我更推荐围绕你的业务与团队规范,自建 Skill(更贴合场景、复用价值更高)。
你只需要:
- 创建 skill 目录
- 创建
SKILL.md
- 用 YAML Frontmatter 写元数据 + 详细使用说明
创建 skill 目录
mkdir -p ~/.claude/skills/my-skill-name
创建 SKILL.md(基础模板)
---
name: your-skill-name
description: Brief description of what this Skill does and when to use it
---
# Your Skill Name
## Instructions
Provide clear, step-by-step guidance for Claude.
## Examples
Show concrete examples of using this Skill.

辅助文件(渐进式披露机制)
你可以把大块“参考资料/示例/脚本/模板”拆出去,按需加载:
my-skill/
├── SKILL.md (required)
├── reference.md (optional documentation)
├── examples.md (optional examples)
├── scripts/
│ └── helper.py (optional utility)
└── templates/
└── template.txt (optional template)

四、实战案例:用 Skill 生成 Java Diff Code Review 报告
下面是一个我自己在用的 Skill:只审查当前分支相对基线(master/main)的 Java 改动,但结合完整文件上下文输出结构化建议,最后生成 Markdown 报告。
这个场景非常适合团队在做 Java 研发时的 CR 流程:既聚焦 diff,又不丢失上下文。
---
name: java-diff-review
description: 仅审查当前分支相对基线(master/main)的 Java 代码改动,但结合完整文件上下文给出结构化建议与改进方案,生成 Markdown 报告并可打包输出。
allowed_tools:
- Read
- Grep
- Glob
- RunCommand
entry: scripts/java_diff_review.py
outputs:
- reviews/java/java_diff_review.md
---
# 目标
在工作区内对 Java 文件进行差异化代码审查:只聚焦改动的 diff,但结合文件整体情况输出可读、可执行的建议,最终产出 `reviews/java/java_diff_review.md`。
# 使用说明
1. 工作目录需为 Git 仓库,并存在基线分支 `master` 或 `main`。
2. 运行入口脚本:
- Python: `python3 .claude/skills/java-diff-review/scripts/java_diff_review.py`
3. 报告生成位置:`reviews/java/java_diff_review.md`。
# 审查范围与原则
- 只审查 Java 文件的差异(当前分支 vs 基线分支),但建议基于完整文件上下文。
- 输出包括:结构组织、可读性、可维护性、反设计模式/坏味道识别、性能与安全提示、具体修改建议。
- 建议以最小影响面优先,遵循优雅代码风格。
# 审查清单(参考)
1. 代码组织与命名:包结构、类/方法命名、单一职责。
2. 错误处理:异常类型、异常传播与日志、资源释放。
3. 可读性与复杂度:方法长度、嵌套深度、条件分支复杂度。
4. API 设计:参数数量、返回契约、空值处理与 Optional 使用。
5. 日志与监控:`System.out` 替换为日志框架;敏感信息不落盘。
6. 性能与资源:集合选择、流处理、I/O、数据库/网络调用。
7. 安全与稳健:输入校验、SQL/命令注入、线程安全、不可变性。
8. 测试与覆盖率:新增逻辑的单元与边界测试。
9. 编码风格:确保优雅且代码容易维护。
10. 代码行数:God class(文件超过 800 行)。
11. 代码行数:Long method(方法超过 80 行)。
12. Feature envy & data clumps(参数间重复组合)。
# 运行策略
- 自动探测基线分支(优先 `master`,否则 `main`)。
- 仅当 diff 存在 Java 文件时生成逐文件审查段落;否则输出结构化空报告与指引。
- 对每个改动文件:
- 概览:新增/删除行数与变更块。
- 重点问题:坏味道列表(例如广义异常捕获、`System.out.println`、长参数列表、魔法数、空值判定等)。
- 建议与示例:给出修改方向与简要示例。
# 集成建议
- 在 Claude Code 中启用 Agent Skills 后,工作区将自动发现此 Skill
- 如需只允许本 Skill 运行特定工具,可在运行时限制为 `Read/Grep/Glob/RunCommand`
实际使用时,你会明显感觉到:它不只是“看 git diff 挑毛病”,而是能结合业务上下文与代码组织给出更可执行的建议,输出的报告也更适合在团队里复用沉淀。

五、使用 Skills 的风险与边界(务必重视)
因为 Skills 可以执行脚本、运行命令,所以必须把它当成“可执行资产”来管理,而不是普通提示词:
- 只使用自己编写或来自可信来源的 Skills
- 上线/引入第三方 Skill 前,完整审查其目录下所有文件
- 不要在 Skill 中写入敏感信息(Token、密钥、账号等),也不要包含高危命令
如果你在公司环境落地,建议把 Skills 纳入类似代码的管理方式(评审、版本、变更记录)。
六、Skills 能解决哪些真实问题(适合什么人)
Skills 的核心价值在于:标准化、自动化、提示词复用。它特别适合“流程固定但又需要人参与判断”的工作。
这里的“AI”更准确说是 LLM 驱动的协作能力:把团队经验固化成 SOP,然后稳定执行。
1)研发效率
- 代码 Review:做成“代码规范 Skill”,批量检查命名、注释格式、安全隐患、坏味道等
- 技术方案生成:根据 PRD/需求描述,结合现有项目代码,按团队模板输出可评审方案
2)团队协作
- 新人上手:把新人指南、系统操作手册做成 Skill,新人一句话就能按流程完成复杂操作
3)数据自动化
- 报表生成:上传 CSV 自动生成符合业务口径的数据分析结果
- 日志分析:解析服务器日志,汇总异常、给出告警建议(可结合 DevOps 流程落地)
一些来自官方的使用数据(原文口径)
- 使用 Skills 后,任务执行效率提升约 40%
- 错误率下降 35% 以上
- 平均交互轮次从 5-8 轮减少到 1-2 轮完成任务
七、思维要转:从“写提示词”到“设计流程模块”
以前我们更依赖精心设计的提示词,但很多沟通是一次性的:结果质量不稳定、知识难沉淀、提示词还要自己维护一大堆版本。
现在 Skills 更像进入了“流程设计”阶段:把重复性任务封装成可复用模块,让每次执行都遵循你定义的最佳实践。长远来看,效率的差距会越来越像“谁的 SOP 更标准、更贴合业务、更能持续迭代”。
参考链接