--- title: Claude Skills 完整构建指南 description: 从基础到高级,全面介绍如何为 Claude 构建自定义 Skills,包括设计模式、测试方法和分发策略 date: 2026-01-15 author: Anthropic source: https://docs.anthropic.com/en/docs/build-with-claude/skills category: 03-toolchain-frameworks tags: Claude Skills AI ???
title: Claude Skills 完整构建指南 description: 从基础到高级,全面介绍如何为 Claude 构建自定义 Skills,包括设计模式、测试方法和分发策略 date: 2026-01-15 author: Anthropic source: https://docs.anthropic.com/en/docs/build-with-claude/skills category: 03-toolchain-frameworks tags: - Claude - Skills - AI ??? - MCP - 工作流
作者:Anthropic
原文:查看原文
Skill 是一组指令 ?? 打包为一个简单的文件夹 ?? 教会 Claude 如何处理特定任务或工作流。Skills 是定制 Claude 以满足特定需求的最强大方式之一。无需在每次对话中重新解释你的偏好、流程和领域专业知识,skills 让你只需教一次 Claude,就能每次受益。
当你有可重复的工作流时,Skills 非常强大:从规格生成前端设计、使用一致的方法进行研究、创建遵循团队风格指南的文档,或编排多步骤流程。它们与 Claude 的内置功能(如代码执行和文档创建)配合良好。对于那些构建 MCP 集成的人来说,skills 增加了另一个强大的层,帮助将原始工具访问转化为可靠、优化的工作流。
本指南涵盖了构建有效 skills 所需了解的一切 ?? 从规划和结构到测试和分发。无论你是为自己、团队还是社区构建 skill,你都会在整个过程中找到实用的模式和真实世界的示例。
构建独立 skills?专注于基础知识、规划与设计以及类别 1-2。增强 MCP 集成?"Skills + MCP" 部分和类别 3 适合你。两条路径共享相同的技术要求,但你可以选择与你的用例相关的内容。
你将从本指南中获得什么:到最后,你将能够在一次会议中构建一个功能性 skill。使用 skill-creator 构建和测试你的第一个工作 skill 预计需要约 15-30 分钟。
让我们开始吧。
一个 skill 是一个包含以下内容的文件夹:
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 所需的任何依赖项。
构建不带 MCP 的独立 skills?跳到规划与设计 ?? 你以后可以随时回到这里。
如果你已经有一个工作的 MCP 服务器,你已经完成了困难的部分。Skills 是顶层的知识层 ?? 捕获你已经知道的工作流和最佳实践,以便 Claude 可以一致地应用它们。
它们一起使用户能够完成复杂的任务,而无需自己弄清楚每一步。
| MCP(连接性) | Skills(知识) |
|---|---|
| 将 Claude 连接到你的服务(Notion、Asana、Linear 等) | 教 Claude 如何有效使用你的服务 |
| 提供实时数据访问和工具调用 | 捕获工作流和最佳实践 |
| Claude 能做什么 | Claude 应该如何做 |
没有 skills:
有了 skills:
在编写任何代码之前,确定你的 skill 应该启用的 2-3 个具体用例。
用例:项目冲刺规划
在 Anthropic,我们观察到三种常见用例:
用途:创建一致、高质量的输出,包括文档、演示文稿、应用、设计、代码等。
真实示例:frontend-design skill(另见 docx、pptx、xlsx 和 ppt 的 skills)
"创建具有高设计质量的独特、生产级前端界面。在构建 Web 组件、页面、工件、海报或应用时使用。"
关键技术:
用途:受益于一致方法的多步骤流程,包括跨多个 MCP 服务器的协调。
真实示例:skill-creator skill
"创建新 skills 的交互式指南。引导用户完成用例定义、frontmatter 生成、指令编写和验证。"
关键技术:
用途:工作流指导,以增强 MCP 服务器提供的工具访问。
真实示例:sentry-code-review skill(来自 Sentry)
"使用 Sentry 的错误监控数据通过其 MCP 服务器自动分析和修复 GitHub Pull Requests 中检测到的错误。"
关键技术:
这些是理想目标 ?? 粗略的基准而不是精确的阈值。追求严谨但接受会有基于感觉的评估元素。我们正在积极开发更强大的测量指导和工具。
Skill 在 90% 的相关查询上触发
在 X 次工具调用中完成工作流
每个工作流 0 次失败的 API 调用
用户无需提示 Claude 下一步
工作流无需用户更正即可完成
跨会话的一致结果
your-skill-name/ ├── SKILL.md # 必需 - 主 skill 文件 ├── scripts/ # 可选 - 可执行代码 │ ├── process_data.py # 示例 │ └── validate.sh # 示例 ├── references/ # 可选 - 文档 │ ├── api-guide.md # 示例 │ └── examples/ # 示例 └── assets/ # 可选 - 模板等 └── report-template.md # 示例
SKILL.md 命名:
Skill 文件夹命名:
notion-project-setup ✅Notion Project Setup ❌notion_project_setup ❌NotionProjectSetup ❌无 README.md:
YAML frontmatter 是 Claude 决定是否加载你的 skill 的方式。把这个做对。
--- name: your-skill-name description: ?? skill ???????????????????? ---
这就是你开始所需的全部。
name(必需):
description(必需):
license(可选):
compatibility(可选):
metadata(可选):
metadata: author: ProjectHub version: 1.0.0 mcp-server: projecthub
Frontmatter 中禁止:
为什么:Frontmatter 出现在 Claude 的系统提示中。恶意内容可能注入指令。
根据 Anthropic 的工程博客:"这些元数据...提供足够的信息让 Claude 知道何时应该使用每个 skill,而无需将所有内容加载到上下文中。" 这是渐进式披露的第一级。
结构:
[它做什么] + [何时使用它] + [关键功能]
良好描述的示例:
✅ 好 ?? 具体且可操作
description: 分析 Figma 设计文件并生成开发者交接文档。当用户上传 .fig 文件、询问"设计规格"、"组件文档"或"设计到代码交接"时使用。
✅ 好 ?? 包含触发短语
description: 管理 Linear 项目工作流,包括冲刺规划、任务创建和状态跟踪。当用户提到"冲刺"、"Linear 任务"、"项目规划"或要求"创建工单"时使用。
✅ 好 ?? 清晰的价值主张
description: PayFlow 的端到端客户入职工作流。处理账户创建、支付设置和订阅管理。当用户说"入职新客户"、"设置订阅"或"创建 PayFlow 账户"时使用。
不良描述的示例:
❌ 太模糊
description: 帮助处理项目。
❌ 缺少触发器
description: 创建复杂的多页文档系统。
❌ 太技术化,没有用户触发器
description: 实现具有层次关系的 Project 实体模型。
在 frontmatter 之后,用 Markdown 编写实际指令。
推荐结构:
为你的 skill 调整此模板。用你的特定内容替换括号部分。
--- name: your-skill description: [???????????] --- # Your Skill Name ## 指令 ### 步骤 1:[第一个主要步骤] 清楚解释发生了什么。 示例: ```bash python scripts/fetch_data.py --project-id PROJECT_ID ```
预期输出:[描述成功是什么样子]
(根据需要添加更多步骤)
用户说:"设置新的营销活动"
操作:
结果:活动已创建,带有确认链接
(根据需要添加更多示例)
原因:[为什么会发生]
解决方案:[如何修复]
(根据需要添加更多错误案例)
#### 指令的最佳实践 **具体且可操作** ✅ **好**: ```markdown 运行 `python scripts/validate.py --input {filename}` 检查数据格式。 如果验证失败,常见问题包括: - 缺少必需字段(将它们添加到 CSV) - 无效的日期格式(使用 YYYY-MM-DD)
❌ 不好:
在继续之前验证数据。
包含错误处理
## 常见问题 ### MCP 连接失败 如果你看到"连接被拒绝": 1. 验证 MCP 服务器正在运行:检查设置 > 扩展 2. 确认 API 密钥有效 3. 尝试重新连接:设置 > 扩展 > [你的服务] > 重新连接
清楚地引用捆绑资源
在编写查询之前,请查阅 `references/api-patterns.md` 以获取: - 速率限制指导 - 分页模式 - 错误代码和处理
使用渐进式披露
保持 SKILL.md 专注于核心指令。将详细文档移至 references/ 并链接到它。(有关三级系统如何工作,请参阅核心设计原则。)
Skills 可以根据你的需求在不同的严格程度上进行测试:
选择与你的质量要求和 skill 可见性相匹配的方法。小团队内部使用的 skill 与部署给数千企业用户的 skill 有不同的测试需求。
专业提示:在扩展之前迭代单个任务
我们发现最有效的 skill 创建者会迭代单个具有挑战性的任务,直到 Claude 成功,然后将获胜的方法提取到 skill 中。这利用了 Claude 的上下文学习,并提供比广泛测试更快的信号。一旦你有了一个工作基础,就扩展到多个测试用例以获得覆盖率。
基于早期经验,有效的 skills 测试通常涵盖三个领域:
目标:确保你的 skill 在正确的时间加载。
测试用例:
示例测试套件:
应该触发:
不应该触发:
目标:验证 skill 产生正确的输出。
测试用例:
示例:
测试:创建包含 5 个任务的项目 给定:项目名称"Q4 规划",5 个任务描述 当:Skill 执行工作流 那么: - 在 ProjectHub 中创建项目 - 创建 5 个具有正确属性的任务 - 所有任务链接到项目 - 无 API 错误
目标:证明 skill 相对于基线改进了结果。
使用定义成功标准中的指标。以下是比较可能的样子。
基线比较:
没有 skill: - 用户每次都提供指令 - 15 次来回消息 - 3 次失败的 API 调用需要重试 - 消耗 12?000 tokens
有 skill: - 自动工作流执行 - 仅 2 个澄清问题 - 0 次失败的 API 调用 - 消耗 6?000 tokens
skill-creator skill - 可通过 Claude.ai 的插件目录获得或下载用于 Claude Code - 可以帮助你构建和迭代 skills。如果你有一个 MCP 服务器并知道你的前 2-3 个工作流,你可以在一次会议中构建和测试一个功能性 skill - 通常在 15-30 分钟内。
创建 skills:
审查 skills:
迭代改进:
使用方法:
"使用 skill-creator skill 帮我为 [你的用例] 构建一个 skill"
注意:skill-creator 帮助你设计和完善 skills,但不执行自动化测试套件或产生定量评估结果。
Skills 是活文档。计划根据以下内容进行迭代:
触发不足的信号:
解决方案:向描述添加更多细节和细微差别 - 这可能包括关键字,特别是技术术语
过度触发的信号:
解决方案:添加负面触发器,更具体
执行问题:
解决方案:改进指令,添加错误处理
解决方案:改进指令,添加错误处理
Skills 使你的 MCP 集成更加完整。当用户比较连接器时,那些带有 skills 的连接器提供了更快的价值路径,使你比仅 MCP 的替代方案更具优势。
我们已将 Agent Skills 发布为开放标准。像 MCP 一样,我们相信 skills 应该可以跨工具和平台移植 - 无论你使用 Claude 还是其他 AI 平台,相同的 skill 都应该有效。也就是说,某些 skills 旨在充分利用特定平台的功能;作者可以在 skill 的兼容性字段中注明这一点。我们一直在与生态系统成员就该标准进行合作,我们对早期采用感到兴奋。
对于程序化用例 - 例如构建利用 skills 的应用、代理或自动化工作流 - API 提供对 skill 管理和执行的直接控制。
关键功能:
/v1/skills 端点用于列出和管理 skillscontainer.skills 参数将 skills 添加到 Messages API 请求何时通过 API 使用 skills 与 Claude.ai:
| 用例 | 最佳平台 |
|---|---|
| 最终用户直接与 skills 交互 | Claude.ai / Claude Code |
| 开发期间的手动测试和迭代 | Claude.ai / Claude Code |
| 个人、临时工作流 | Claude.ai / Claude Code |
| 以编程方式使用 skills 的应用 | API |
| 大规模生产部署 | API |
| 自动化管道和代理系统 | API |
注意:API 中的 Skills 需要代码执行工具 beta,它提供 skills 运行所需的安全环境。
有关实现详细信息,请参阅:
首先在 GitHub 上托管你的 skill,使用公共仓库、清晰的 README(供人类访问者使用 - 这与你的 skill 文件夹分开,不应包含 README.md)和带有屏幕截图的示例用法。然后在你的 MCP 文档中添加一个部分,链接到 skill,解释为什么一起使用两者有价值,并提供快速入门指南。
## 安装 [你的服务] 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 的内容时 - 在你的 README、文档或营销中 - 请记住这些原则。
✅ 好:
"ProjectHub skill 使团队能够在几秒钟内设置完整的项目工作区 ?? 包括页面、数据库和模板 ?? 而不是花 30 分钟进行手动设置。"
❌ 不好:
"ProjectHub skill 是一个包含 YAML frontmatter 和 Markdown 指令的文件夹,它调用我们的 MCP 服务器工具。"
"我们的 MCP 服务器让 Claude 访问你的 Linear 项目。我们的 skills 教 Claude 你团队的冲刺规划工作流。它们一起实现 AI 驱动的项目管理。"
这些模式来自早期采用者和内部团队创建的 skills。它们代表我们看到的有效的常见方法,而不是规定性模板。
把它想象成家得宝。你可能带着一个问题走进去 -"我需要修理厨房橱柜"- 员工会为你指出正确的工具。或者你可能挑选一个新钻头并询问如何将其用于你的特定工作。
Skills 以同样的方式工作:
问题优先:"我需要设置一个项目工作区" 你的 skill 以正确的顺序编排正确的 MCP 调用。用户描述结果;skill 处理工具。
工具优先:"我已连接 Notion MCP" 你的 skill 教 Claude 最佳工作流和最佳实践。用户有访问权限;skill 提供专业知识。
大多数 skills 倾向于一个方向。知道哪种框架适合你的用例有助于你选择下面的正确模式。
使用时机:你的用户需要按特定顺序执行多步骤流程。
示例结构:
## 工作流:入职新客户 ### 步骤 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
关键技术:
使用时机:工作流跨越多个服务。
示例:设计到开发交接
## 阶段 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. 包括资产链接和任务引用
关键技术:
使用时机:输出质量通过迭代改进。
示例:报告生成
## 迭代报告创建 ### 初始草稿 1. 通过 MCP 获取数据 2. 生成第一份草稿报告 3. 保存到临时文件 ### 质量检查 1. 运行验证脚本:`scripts/check_report.py` 2. 识别问题: - 缺少部分 - 格式不一致 - 数据验证错误 ### 改进循环 1. 解决每个识别的问题 2. 重新生成受影响的部分 3. 重新验证 4. 重复直到达到质量阈值 ### 最终确定 1. 应用最终格式 2. 生成摘要 3. 保存最终版本
关键技术:
使用时机:相同结果,根据上下文使用不同工具。
示例:文件存储
## 智能文件存储 ### 决策树 1. 检查文件类型和大小 2. 确定最佳存储位置: - 大文件(>10MB):使用云存储 MCP - 协作文档:使用 Notion/Docs MCP - 代码文件:使用 GitHub MCP - 临时文件:使用本地存储 ### 执行存储 基于决策: - 调用适当的 MCP 工具 - 应用特定于服务的元数据 - 生成访问链接 ### 向用户提供上下文 解释为什么选择该存储
关键技术:
使用时机:你的 skill 添加超越工具访问的专业知识。
示例:金融合规
## 符合合规的支付处理 ### 处理前(合规检查) 1. 通过 MCP 获取交易详情 2. 应用合规规则: - 检查制裁名单 - 验证管辖区许可 - 评估风险级别 3. 记录合规决策 ### 处理 如果合规通过: - 调用支付处理 MCP 工具 - 应用适当的欺诈检查 - 处理交易 否则: - 标记以供审查 - 创建合规案例 ### 审计跟踪 - 记录所有合规检查 - 记录处理决策 - 生成审计报告
关键技术:
错误:"在上传的文件夹中找不到 SKILL.md"
原因:文件名不完全是 SKILL.md
解决方案:
ls -la 应显示 SKILL.md错误:"无效的 frontmatter"
原因:YAML 格式问题
常见错误:
# 错误 ?? 缺少分隔符 name: my-skill description: ???? skill ????? # 错误 ?? 未闭合引号 name: my-skill description: "???? skill ????? # 正确 --- name: my-skill description: ???? skill ????? ---
错误:"无效的 skill 名称"
原因:名称有空格或大写
# 错误 name: My Cool Skill # 正确 name: my-cool-skill
症状:Skill 从不自动加载
修复:修改你的 description 字段。有关好/坏示例,请参阅 Description 字段。
快速检查清单:
调试方法:
询问 Claude:"你什么时候会使用 [skill 名称] skill?" Claude 会引用描述。根据缺少的内容进行调整。
症状:Skill 为不相关的查询加载
解决方案:
description: CSV 文件的高级数据分析。用于统计建模、回归、聚类。不要用于简单的数据探索(改用 data-viz skill)。
# 太宽泛 description: 处理文档 # 更具体 description: 处理 PDF 法律文档以进行合同审查
description: 电子商务的 PayFlow 支付处理。专门用于在线支付工作流,而不是一般财务查询。
症状:Skill 加载但 MCP 调用失败
检查清单:
验证 MCP 服务器已连接
检查身份验证
独立测试 MCP
验证工具名称
症状:Skill 加载但 Claude 不遵循指令
常见原因:
指令过于冗长
指令被埋没
模糊的语言
❌ 不好
确保正确验证事物
✅ 好
关键:在调用 create_project 之前,验证: - 项目名称非空 - 至少分配一名团队成员 - 开始日期不在过去
高级技术:对于关键验证,考虑捆绑一个以编程方式执行检查的脚本,而不是依赖语言指令。代码是确定性的;语言解释不是。有关此模式的示例,请参阅 Office skills。
## 性能说明 - 花时间彻底完成此操作 - 质量比速度更重要 - 不要跳过验证步骤
注意:将此添加到用户提示比在 SKILL.md 中更有效
症状:Skill 似乎很慢或响应降级
原因:
解决方案:
优化 SKILL.md 大小
减少启用的 skills
如果你正在构建你的第一个 skill,请从最佳实践指南开始,然后根据需要参考 API 文档。
Anthropic 资源:
博客文章:
公共 skills 仓库:
skill-creator skill:
验证:
技术问题:
错误报告:
在上传之前和之后使用此检查清单验证你的 skill。如果你想更快开始,请使用 skill-creator skill 生成你的第一个草稿,然后运行此列表以确保你没有遗漏任何内容。
开始之前
开发期间
上传前
上传后
必需字段
--- name: skill-name-in-kebab-case description: ?????????????????????? ---
所有可选字段
--- name: skill-name 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: support@example.com ---
安全说明
允许:
禁止:
有关演示本指南中模式的完整、生产就绪的 skills:
这些仓库保持最新,并包含本文涵盖之外的其他示例。克隆它们,为你的用例修改它们,并将它们用作模板。
原文链接:The Complete Guide to Building Skills for Claude
发布日期:2026 年 1 月
标签:#Claude #Skills #AI智能体 #MCP #工作流自动化