Anthropic 官方指南

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 分钟

1
第 1 章

基础知识

理解 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 使用三级系统

第一级(YAML frontmatter)

始终加载在 Claude 的系统提示中。提供足够的信息让 Claude 知道何时使用每个 Skill,而无需将所有内容加载到上下文中。

第二级(SKILL.md 正文)

当 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

  • 预构建的工作流程在需要时自动激活
  • 一致、可靠的工具使用
  • 最佳实践嵌入每次交互中
  • 降低集成的学习曲线
2
第 2 章

规划与设计

从用例出发,设计高效的 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 标签(< 或 >)
  • 包含用户可能说的特定任务
  • 如相关,提及文件类型

可选字段:licensecompatibility(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/
  • 包含错误处理:为常见错误提供具体的解决步骤
3
第 3 章

测试与迭代

验证 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 为不相关的查询加载
  • 用户禁用它
  • 关于用途的困惑

解决方案:添加否定触发词,更具体

4
第 4 章

分发与共享

将你的 Skill 推向用户和社区

当前分发模式

个人用户获取 Skills 的方式

  1. 下载 Skill 文件夹
  2. 如需要,压缩文件夹
  3. 通过 设置 > 功能 > Skills 上传到 Claude.ai
  4. 或放置在 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

定位你的 Skill

你如何描述你的 Skill 决定了用户是否理解其价值并实际尝试。

✅ 关注结果

"ProjectHub Skill 使团队能够在几秒内设置完整的项目工作区——包括页面、数据库和模板——而不是花 30 分钟手动设置。"

❌ 关注功能

"ProjectHub Skill 是一个包含 YAML frontmatter 和 Markdown 指令的文件夹,调用我们的 MCP 服务器工具。"

5
第 5 章

模式与故障排除

实用模式和常见问题解决方案

选择你的方法

💡 问题优先 vs 工具优先

问题优先:"我需要设置一个项目工作区" → 你的 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 触发过于频繁

解决方案:

  1. 添加否定触发词:不要用于简单数据探索(使用 data-viz Skill)
  2. 更具体:将"处理文档"改为"处理 PDF 法律文档用于合同审查"
  3. 明确范围:专门用于在线支付工作流,不用于一般财务查询

指令未被遵循

常见原因及解决方案:

  1. 指令太冗长:保持简洁,使用列表和编号
  2. 指令被埋没:关键指令放在顶部,使用 ## Important 标题
  3. 语言模糊:用 CRITICAL: 在调用 create_project 前验证... 替代 确保正确验证

大上下文问题

症状:Skill 似乎很慢或响应质量下降

解决方案:

  • 优化 SKILL.md 大小——将详细文档移至 references/,保持 SKILL.md 在 5,000 字以内
  • 减少启用的 Skills 数量——评估是否同时启用了超过 20-50 个 Skills
6
第 6 章

资源与参考

官方文档、工具和完整示例

官方文档

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:

📄
Document Skills

PDF、DOCX、PPTX、XLSX 文档创建

Example Skills

各种工作流模式示例

🤝
Partner Skills Directory

来自 Asana、Atlassian、Canva、Figma、Sentry、Zapier 等合作伙伴的 Skills

这些仓库持续更新,包含本指南之外的更多示例。你可以克隆它们,根据你的用例修改,并将其作为模板使用。

获取支持

技术问题

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 名称

基于 Anthropic 官方文档 "The Complete Guide to Building Skills for Claude" 翻译整理

访问 Claude.ai
Claude Skills Guide