
Claude Skills
构建完全指南
从基础概念到高级模式,掌握为 Claude 构建高效 Skills 的完整知识体系。 涵盖规划设计、测试迭代、分发共享和故障排除。
引言
了解 Skills 的价值与本指南的使用方式
什么是 Skill?
Skill(技能)是一组指令——打包为一个简单的文件夹——用于教会 Claude 如何处理特定任务或工作流程。Skills 是自定义 Claude 最强大的方式之一。无需在每次对话中重复解释你的偏好、流程和领域专业知识,Skills 让你只需教 Claude 一次,便可永久受益。
当你有可重复的工作流程时,Skills 尤为强大:从规格说明生成前端设计、使用一致的方法论进行研究、创建遵循团队风格指南的文档,或编排多步骤流程。它们与 Claude 的内置能力(如代码执行和文档创建)配合良好。对于构建 MCP 集成的开发者,Skills 增加了另一个强大的层次,帮助将原始工具访问转化为可靠、优化的工作流程。
你将学到什么
- Skill 结构的技术要求和最佳实践
- 独立 Skills 和 MCP 增强工作流程的模式
- 在不同用例中效果良好的模式
- 如何测试、迭代和分发你的 Skills
适用人群
- 开发者——希望 Claude 始终遵循特定工作流程
- 高级用户——希望 Claude 遵循特定工作流程
- 团队——希望标准化 Claude 在组织中的工作方式
本指南的两条路径
构建独立 Skills?关注基础知识、规划与设计,以及类别 1-2。增强 MCP 集成?"Skills + MCP"部分和类别 3 适合你。两条路径共享相同的技术要求,但你可以选择与你的用例相关的内容。
你将获得什么:到最后,你将能够在一次会话中构建一个功能性 Skill。预计使用 skill-creator 构建和测试你的第一个工作 Skill 大约需要 15-30 分钟。

基础知识
理解 Skill 的核心概念与设计原则
Skill 的组成
一个 Skill 是一个包含以下内容的文件夹:
- SKILL.md(必需):使用 YAML frontmatter 的 Markdown 指令文件
- scripts/(可选):可执行代码(Python、Bash 等)
- references/(可选):按需加载的文档
- assets/(可选):模板、字体、图标等输出资源
your-skill-name/
├── SKILL.md # 必需 - 主技能文件
├── scripts/ # 可选 - 可执行代码
│ ├── process_data.py
│ └── validate.sh
├── references/ # 可选 - 文档资料
│ ├── api-guide.md
│ └── examples/
└── assets/ # 可选 - 模板等
└── report-template.md渐进式披露
Skills 使用三级系统:
始终加载在 Claude 的系统提示中。提供足够的信息让 Claude 知道何时使用每个 Skill,而无需将所有内容加载到上下文中。
当 Claude 认为该 Skill 与当前任务相关时加载。包含完整的指令和指导。
打包在 Skill 目录中的附加文件,Claude 可以选择按需导航和发现。
这种渐进式披露在保持专业知识的同时最小化 token 使用。
可组合性与可移植性
可组合性:Claude 可以同时加载多个 Skills。你的 Skill 应该能与其他 Skills 良好协作,不要假设它是唯一可用的能力。
可移植性:Skills 在 Claude.ai、Claude Code 和 API 中的工作方式完全相同。创建一次 Skill,它就能在所有平台上无需修改地工作,前提是环境支持 Skill 所需的依赖。
Skills + MCP 连接器
MCP 提供专业厨房:访问工具、食材和设备。
Skills 提供菜谱:关于如何创造有价值成果的分步指令。
两者结合,使用户能够完成复杂任务,而无需自己弄清每一步。
| MCP(连接性) | Skills(知识) |
|---|---|
| 将 Claude 连接到你的服务 | 教会 Claude 如何有效使用你的服务 |
| 提供实时数据访问和工具调用 | 捕获工作流程和最佳实践 |
| Claude 能做什么 | Claude 应该怎么做 |
为什么 Skills 对 MCP 用户重要
❌ 没有 Skills
- 用户连接了 MCP 但不知道下一步该做什么
- 支持工单询问"如何用你的集成做 X"
- 每次对话都从零开始
- 结果不一致,因为用户的提示方式不同
✅ 有 Skills
- 预构建的工作流程在需要时自动激活
- 一致、可靠的工具使用
- 最佳实践嵌入每次交互中
- 降低集成的学习曲线

规划与设计
从用例出发,设计高效的 Skill 结构
从用例开始
在编写任何代码之前,确定你的 Skill 应该支持的 2-3 个具体用例。
用例:项目 Sprint 规划
触发:用户说"帮我规划这个 sprint"或"创建 sprint 任务"
步骤:
1. 从 Linear 获取当前项目状态(通过 MCP)
2. 分析团队速度和容量
3. 建议任务优先级
4. 在 Linear 中创建带有适当标签和估算的任务
结果:完整规划的 sprint,任务已创建问自己这些问题:
- 用户想要完成什么?
- 这需要什么多步骤工作流程?
- 需要哪些工具(内置或 MCP)?
- 应该嵌入哪些领域知识或最佳实践?
常见 Skill 用例类别
类别 1:文档与资产创建
用途:创建一致、高质量的输出,包括文档、演示文稿、应用、设计、代码等。
关键技术:嵌入式风格指南和品牌标准 · 模板结构 · 质量检查清单 · 无需外部工具
类别 2:工作流程自动化
用途:受益于一致方法论的多步骤流程,包括跨多个 MCP 服务器的协调。
关键技术:带验证门的分步工作流 · 通用结构模板 · 内置审查和改进建议 · 迭代优化循环
类别 3:MCP 增强
用途:增强 MCP 服务器提供的工具访问的工作流程指导。
关键技术:按序协调多个 MCP 调用 · 嵌入领域专业知识 · 提供用户本需指定的上下文 · 常见 MCP 问题的错误处理
定义成功标准
这些是理想目标——粗略基准而非精确阈值。
定量指标
- Skill 在 90% 的相关查询中触发
运行 10-20 个应触发 Skill 的测试查询 - 在 X 次工具调用内完成工作流
比较启用和未启用 Skill 时的相同任务 - 每个工作流 0 次失败的 API 调用
在测试运行期间监控 MCP 服务器日志
定性指标
- 用户无需提示 Claude 下一步
在测试中记录需要重定向或澄清的频率 - 工作流无需用户纠正即可完成
运行相同请求 3-5 次,比较输出一致性 - 跨会话结果一致
新用户能否在首次尝试时完成任务
技术要求
- SKILL.md 命名:必须严格为
SKILL.md(区分大小写),不接受任何变体 - 文件夹命名:使用 kebab-case:
notion-project-setup✅ | 不用空格 ❌ | 不用下划线 ❌ | 不用大写 ❌ - 无 README.md:不要在 Skill 文件夹内包含 README.md,所有文档放在 SKILL.md 或 references/ 中
YAML Frontmatter:最重要的部分
YAML frontmatter 是 Claude 决定是否加载你的 Skill 的方式。必须写对。
---
name: your-skill-name
description: 它做什么。当用户要求 [特定短语] 时使用。
---字段要求
name(必需):
- 仅使用 kebab-case
- 无空格或大写字母
- 应与文件夹名称匹配
description(必需):
- 必须同时包含:Skill 做什么 + 何时使用它(触发条件)
- 1024 字符以内
- 不含 XML 标签(< 或 >)
- 包含用户可能说的特定任务
- 如相关,提及文件类型
可选字段:license、compatibility(1-500 字符)、metadata(自定义键值对)
Frontmatter 中禁止使用 XML 尖括号(< >)和以 "claude" 或 "anthropic" 命名的 Skills(保留名称)。因为 frontmatter 出现在 Claude 的系统提示中,恶意内容可能注入指令。
编写有效的描述
描述字段的结构:[它做什么] + [何时使用] + [关键能力]
✅ 好的描述示例
# 具体且可操作
description: 分析 Figma 设计文件并生成开发交接文档。
当用户上传 .fig 文件、要求"设计规格"、"组件文档"
或"设计到代码交接"时使用。
# 包含触发短语
description: 管理 Linear 项目工作流,包括 sprint 规划、
任务创建和状态跟踪。当用户提到"sprint"、"Linear 任务"、
"项目规划"或要求"创建工单"时使用。
# 清晰的价值主张
description: PayFlow 的端到端客户入职工作流。
处理账户创建、支付设置和订阅管理。当用户说
"入职新客户"、"设置订阅"或"创建 PayFlow 账户"时使用。❌ 差的描述示例
# 太模糊
description: 帮助处理项目。
# 缺少触发条件
description: 创建复杂的多页文档系统。
# 太技术化,没有用户触发词
description: 实现具有层次关系的 Project 实体模型。编写主要指令
在 frontmatter 之后,用 Markdown 编写实际指令。推荐结构:
---
name: your-skill
description: [描述...]
---
# 你的 Skill 名称
## 指令
### 步骤 1:[第一个主要步骤]
清晰解释发生什么。
```bash
python scripts/fetch_data.py --project-id PROJECT_ID
预期输出:[描述成功的样子]
```
(根据需要添加更多步骤)
## 示例
### 示例 1:[常见场景]
用户说:"设置一个新的营销活动"
操作:
1. 通过 MCP 获取现有活动
2. 使用提供的参数创建新活动
结果:活动已创建,附带确认链接
## 故障排除
错误:[常见错误消息]
原因:[为什么会发生]
解决方案:[如何修复]指令编写最佳实践
具体且可操作
✅ 好
运行 `python scripts/validate.py --input {filename}`
检查数据格式。
如果验证失败,常见问题包括:
- 缺少必填字段(添加到 CSV)
- 无效日期格式(使用 YYYY-MM-DD)❌ 差
在继续之前验证数据。其他最佳实践
- 清晰引用打包资源:在编写查询前,参考
references/api-patterns.md - 使用渐进式披露:保持 SKILL.md 专注于核心指令,将详细文档移至
references/ - 包含错误处理:为常见错误提供具体的解决步骤
测试与迭代
验证 Skill 的触发、功能和性能
测试方法
Skills 可以根据你的需求在不同严格程度下进行测试:
- 在 Claude.ai 中手动测试——直接运行查询并观察行为。快速迭代,无需设置。
- 在 Claude Code 中脚本测试——自动化测试用例,以便在更改时进行可重复验证。
- 通过 Skills API 编程测试——构建针对定义测试集系统运行的评估套件。
最有效的 Skill 创建者会在单个具有挑战性的任务上迭代,直到 Claude 成功,然后将成功的方法提取到 Skill 中。这利用了 Claude 的上下文学习能力,比广泛测试提供更快的信号。
1. 触发测试
目标:确保你的 Skill 在正确的时间加载。
应该触发:
- "帮我设置一个新的 ProjectHub 工作区"
- "我需要在 ProjectHub 中创建一个项目"
- "为 Q4 规划初始化一个 ProjectHub 项目"
不应该触发:
- "旧金山的天气怎么样?"
- "帮我写 Python 代码"
- "创建一个电子表格"(除非 ProjectHub Skill 处理表格)2. 功能测试
目标:验证 Skill 产生正确的输出。
测试:创建包含 5 个任务的项目
给定:项目名称 "Q4 Planning",5 个任务描述
当:Skill 执行工作流
则:
- 项目在 ProjectHub 中创建
- 5 个任务以正确属性创建
- 所有任务链接到项目
- 无 API 错误测试用例应覆盖:
- 有效输出生成
- API 调用成功
- 错误处理工作正常
- 边缘情况覆盖
3. 性能比较
目标:证明 Skill 相比基线改善了结果。
没有 Skill
- 用户每次提供指令
- 15 次来回消息
- 3 次失败的 API 调用需要重试
- 12,000 tokens 消耗
有 Skill
- 自动工作流执行
- 仅 2 个澄清问题
- 0 次失败的 API 调用
- 6,000 tokens 消耗
使用 skill-creator
skill-creator 可以帮助你构建和迭代 Skills。如果你有 MCP 服务器并知道你的前 2-3 个工作流程,你可以在一次会话中构建和测试一个功能性 Skill——通常在 15-30 分钟内。
- 创建 Skills:从自然语言描述生成 Skills,产生格式正确的 SKILL.md
- 审查 Skills:标记常见问题,识别潜在的过度/不足触发风险
- 迭代改进:遇到边缘情况后,将示例带回 skill-creator 改进
"使用 skill-creator 帮我构建一个用于 [你的用例] 的 Skill"基于反馈的迭代
Skills 是活文档。计划基于以下信号进行迭代:
触发不足信号
- Skill 在应该加载时没有加载
- 用户手动启用它
- 关于何时使用的支持问题
解决方案:在描述中添加更多细节和关键词
触发过度信号
- Skill 为不相关的查询加载
- 用户禁用它
- 关于用途的困惑
解决方案:添加否定触发词,更具体
分发与共享
将你的 Skill 推向用户和社区
当前分发模式
个人用户获取 Skills 的方式
- 下载 Skill 文件夹
- 如需要,压缩文件夹
- 通过 设置 > 功能 > Skills 上传到 Claude.ai
- 或放置在 Claude Code 的 Skills 目录中
组织级 Skills
- 管理员可以在整个工作区部署 Skills(2025年12月18日发布)
- 自动更新
- 集中管理
Anthropic 已将 Agent Skills 发布为开放标准。与 MCP 一样,Skills 应该在工具和平台之间可移植——无论你使用 Claude 还是其他 AI 平台,相同的 Skill 都应该工作。
通过 API 使用 Skills
对于编程用例——如构建应用、代理或利用 Skills 的自动化工作流——API 提供对 Skill 管理和执行的直接控制。
| 使用场景 | 最佳平台 |
|---|---|
| 终端用户直接与 Skills 交互 | Claude.ai / Claude Code |
| 开发期间的手动测试和迭代 | Claude.ai / Claude Code |
| 应用程序编程使用 Skills | API |
| 大规模生产部署 | API |
| 自动化管道和代理系统 | API |
推荐的分发方法
- 托管在 GitHub——公开仓库,清晰的 README,示例用法和截图
- 在 MCP 文档中记录——从 MCP 文档链接到 Skills,解释两者结合的价值
- 创建安装指南——提供分步安装说明
# 安装 [你的服务] Skill
1. 下载 Skill:
- 克隆仓库:git clone https://github.com/yourcompany/skills
- 或从 Releases 下载 ZIP
2. 安装到 Claude:
- 打开 Claude.ai > 设置 > Skills
- 点击"上传 Skill"
- 选择 Skill 文件夹(已压缩)
3. 启用 Skill:
- 开启 [你的服务] Skill
- 确保你的 MCP 服务器已连接
4. 测试:
- 问 Claude:"在 [你的服务] 中设置一个新项目"定位你的 Skill
你如何描述你的 Skill 决定了用户是否理解其价值并实际尝试。
✅ 关注结果
"ProjectHub Skill 使团队能够在几秒内设置完整的项目工作区——包括页面、数据库和模板——而不是花 30 分钟手动设置。"
❌ 关注功能
"ProjectHub Skill 是一个包含 YAML frontmatter 和 Markdown 指令的文件夹,调用我们的 MCP 服务器工具。"

模式与故障排除
实用模式和常见问题解决方案
选择你的方法
问题优先:"我需要设置一个项目工作区" → 你的 Skill 按正确顺序编排合适的 MCP 调用。用户描述结果;Skill 处理工具。
工具优先:"我已连接 Notion MCP" → 你的 Skill 教会 Claude 最佳工作流程和实践。用户有访问权限;Skill 提供专业知识。
模式 1:顺序工作流编排
使用场景:用户需要按特定顺序执行多步骤流程。
# 工作流:入职新客户
## 步骤 1:创建账户
调用 MCP 工具:create_customer
参数:name, email, company
## 步骤 2:设置支付
调用 MCP 工具:setup_payment_method
等待:支付方式验证
## 步骤 3:创建订阅
调用 MCP 工具:create_subscription
参数:plan_id, customer_id(来自步骤 1)
## 步骤 4:发送欢迎邮件
调用 MCP 工具:send_email
模板:welcome_email_template关键技术:明确的步骤排序 · 步骤间的依赖关系 · 每阶段验证 · 失败时的回滚指令
模式 2:多 MCP 协调
使用场景:工作流跨越多个服务。
# 设计到开发交接
## 阶段 1:设计导出(Figma MCP)
1. 从 Figma 导出设计资产
2. 生成设计规格
3. 创建资产清单
## 阶段 2:资产存储(Drive MCP)
1. 在 Drive 中创建项目文件夹
2. 上传所有资产
3. 生成可共享链接
## 阶段 3:任务创建(Linear MCP)
1. 创建开发任务
2. 将资产链接附加到任务
3. 分配给工程团队
## 阶段 4:通知(Slack MCP)
1. 在 #engineering 发布交接摘要
2. 包含资产链接和任务引用关键技术:清晰的阶段分离 · MCP 之间的数据传递 · 进入下一阶段前的验证 · 集中错误处理
模式 3:迭代优化
使用场景:输出质量通过迭代改善。
# 迭代报告创建
## 初始草稿
1. 通过 MCP 获取数据
2. 生成第一版报告草稿
3. 保存到临时文件
## 质量检查
1. 运行验证脚本:scripts/check_report.py
2. 识别问题:
- 缺少章节
- 格式不一致
- 数据验证错误
## 优化循环
1. 解决每个已识别的问题
2. 重新生成受影响的部分
3. 重新验证
4. 重复直到达到质量阈值
## 最终化
1. 应用最终格式
2. 生成摘要
3. 保存最终版本关键技术:明确的质量标准 · 迭代改进 · 验证脚本 · 知道何时停止迭代
模式 4:上下文感知工具选择
使用场景:相同结果,根据上下文使用不同工具。
# 智能文件存储
## 决策树
1. 检查文件类型和大小
2. 确定最佳存储位置:
- 大文件(>10MB):使用云存储 MCP
- 协作文档:使用 Notion/Docs MCP
- 代码文件:使用 GitHub MCP
- 临时文件:使用本地存储
## 执行存储
基于决策:
- 调用适当的 MCP 工具
- 应用服务特定的元数据
- 生成访问链接
## 向用户提供上下文
解释为什么选择了该存储方式模式 5:领域特定智能
使用场景:你的 Skill 添加超越工具访问的专业知识。
# 带合规性的支付处理
## 处理前(合规检查)
1. 通过 MCP 获取交易详情
2. 应用合规规则:
- 检查制裁名单
- 验证管辖权许可
- 评估风险级别
3. 记录合规决定
## 处理
如果合规通过:
- 调用支付处理 MCP 工具
- 应用适当的欺诈检查
- 处理交易
否则:
- 标记待审查
- 创建合规案例
## 审计跟踪
- 记录所有合规检查
- 记录处理决定
- 生成审计报告关键技术:领域专业知识嵌入逻辑 · 行动前合规 · 全面文档 · 清晰治理
故障排除
Skill 无法上传
错误:"Could not find SKILL.md in uploaded folder"
解决:重命名为 SKILL.md(区分大小写),用 ls -la 验证
错误:"Invalid frontmatter"
解决:确保有 --- 分隔符,引号正确关闭
Skill 不触发
症状:Skill 从不自动加载
快速检查:描述是否太笼统?是否包含触发短语?是否提及相关文件类型?
调试:问 Claude "你什么时候会使用 [skill name] Skill?"
Skill 触发过于频繁
解决方案:
- 添加否定触发词:
不要用于简单数据探索(使用 data-viz Skill) - 更具体:将"处理文档"改为"处理 PDF 法律文档用于合同审查"
- 明确范围:
专门用于在线支付工作流,不用于一般财务查询
指令未被遵循
常见原因及解决方案:
- 指令太冗长:保持简洁,使用列表和编号
- 指令被埋没:关键指令放在顶部,使用 ## Important 标题
- 语言模糊:用
CRITICAL: 在调用 create_project 前验证...替代确保正确验证
大上下文问题
症状:Skill 似乎很慢或响应质量下降
解决方案:
- 优化 SKILL.md 大小——将详细文档移至 references/,保持 SKILL.md 在 5,000 字以内
- 减少启用的 Skills 数量——评估是否同时启用了超过 20-50 个 Skills
资源与参考
官方文档、工具和完整示例
官方文档
Anthropic 资源
- 最佳实践指南
- Skills 文档
- API 参考
- MCP 文档
博客文章
- Introducing Agent Skills
- Engineering Blog: Equipping Agents for the Real World
- Skills Explained
- How to Create Skills for Claude
- Building Skills for Claude Code
- Improving Frontend Design through Skills
工具与实用程序
skill-creator
- 内置于 Claude.ai,也可用于 Claude Code
- 可以从描述生成 Skills
- 审查并提供改进建议
- 使用方式:
"帮我使用 skill-creator 构建一个 Skill"
验证
- skill-creator 可以评估你的 Skills
- 使用方式:
"审查这个 Skill 并建议改进"
示例 Skills
- 公开 Skills 仓库:GitHub: anthropics/skills
- 包含 Anthropic 创建的可自定义 Skills
- 文档 Skills——PDF、DOCX、PPTX、XLSX 创建
- 示例 Skills——各种工作流模式
- 合作伙伴 Skills 目录——来自 Asana、Atlassian、Canva、Figma、Sentry、Zapier 等
快速检查清单
使用此清单在上传前后验证你的 Skill。如果想快速开始,可以使用 skill-creator 生成初稿,然后对照此清单确保没有遗漏。
开始前
- ☐ 确定 2-3 个具体用例
- ☐ 识别所需工具(内置或 MCP)
- ☐ 审查本指南和示例
- ☐ 规划文件夹结构
开发中
- ☐ 文件夹使用 kebab-case 命名
- ☐ SKILL.md 文件存在(精确拼写)
- ☐ YAML frontmatter 有 --- 分隔符
- ☐ name 字段:kebab-case
- ☐ description 包含"做什么"和"何时用"
- ☐ 无 XML 标签
- ☐ 指令清晰可操作
- ☐ 包含错误处理
- ☐ 提供示例
- ☐ 引用清晰链接
上传前
- ☐ 测试明显任务的触发
- ☐ 测试改述请求的触发
- ☐ 验证不会在无关话题上触发
- ☐ 功能测试通过
- ☐ 工具集成正常(如适用)
- ☐ 压缩为 .zip 文件
上传后
- ☐ 在真实对话中测试
- ☐ 监控触发不足/过度
- ☐ 收集用户反馈
- ☐ 迭代描述和指令
- ☐ 更新 metadata 中的版本
完整 Skill 示例
以下是展示本指南中各种模式的完整、可用于生产环境的 Skills:
PDF、DOCX、PPTX、XLSX 文档创建
各种工作流模式示例
来自 Asana、Atlassian、Canva、Figma、Sentry、Zapier 等合作伙伴的 Skills
这些仓库持续更新,包含本指南之外的更多示例。你可以克隆它们,根据你的用例修改,并将其作为模板使用。
获取支持
技术问题
- 一般问题:Claude Developers Discord 社区论坛
Bug 报告
- GitHub Issues:
anthropics/skills/issues - 请包含:Skill 名称、错误信息、复现步骤
YAML Frontmatter 完整参考
---
name: skill-name-in-kebab-case
description: 它做什么以及何时使用。包含特定触发短语。
license: MIT # 可选:开源许可证
allowed-tools: "Bash(python:*) Bash(npm:*) WebFetch" # 可选
metadata: # 可选:自定义字段
author: Company Name
version: 1.0.0
mcp-server: server-name
category: productivity
tags: [project-management, automation]
documentation: https://example.com/docs
support: [email protected]
---- 允许:任何标准 YAML 类型、自定义 metadata 字段、长描述(最多 1024 字符)
- 禁止:XML 尖括号(< >)、YAML 中的代码执行、以 "claude" 或 "anthropic" 为前缀的 Skills 名称