Anthropic 于 2025 年 10 月推出的 Claude Skills 功能,正在改变开发者和专业用户使用 AI 的方式。Skills 是一种模块化的能力包,通过简单的文件结构教会 Claude 以可重复的方式完成特定任务。根据官方数据,使用 Skills 可以将重复性任务的执行效率提升 35%-50%,同时显著降低每次交互时需要重复输入的上下文量。本文将系统介绍 Skills 的安装配置、文件结构、自定义创建,以及与 MCP 协议的协作关系。
要点速览
- Skills 是什么:模块化指令集合,包含工作流、脚本和资源,Claude 按需加载
- 三种安装方式:插件市场(新手推荐)、手动目录(进阶控制)、自然语言创建(快速定制)
- 核心文件:SKILL.md 包含 YAML 元数据和 Markdown 指令,是 Skill 的唯一必需文件
- 与 MCP 区别:Skills 教模型"如何做",MCP 让模型"能访问",两者互补
- 订阅要求:需要 Pro、Max、Team 或 Enterprise 订阅,且启用代码执行功能
什么是 Claude Skills
Claude Skills(也称为 Agent Skills)是 Anthropic 为 Claude 打造的模块化能力扩展系统。不同于传统的系统提示或自定义指令,Skills 采用文件系统的方式组织专业知识,让 Claude 能够根据任务需求动态加载相关能力。
从技术实现角度来看,一个 Skill 本质上是一个包含指令、脚本和资源的文件夹,其中 SKILL.md 文件是核心。当你与 Claude 交互时,它会根据对话内容自动判断是否需要调用某个 Skill,整个过程无需人工干预。这种"按需加载"的设计不仅节省了 token 消耗,也避免了上下文窗口的无谓占用。
Skills 与 Claude 生态中其他功能的定位有本质区别。Projects 提供的是静态背景知识,且仅限于 Claude.ai 平台使用;CLAUDE.md 配置文件总是被加载,适合项目范围内的通用规则;而 Skills 则是动态激活的,只在相关时才被调用,且可以跨平台使用——无论是 Claude.ai 网页版、Claude Code 命令行工具,还是通过 API 调用。如果你正在评估不同的 AI 编程工具,可以参考Cursor 和 Claude Code 的详细对比了解各自的优势。
Skills 的设计理念体现了"可组合性"原则。你可以同时激活多个 Skills,Claude 会自动识别并协调它们的使用。比如在处理一个代码审查任务时,Claude 可能同时调用"代码规范检查"和"安全漏洞扫描"两个 Skills,将它们的指令整合后执行。这种组合能力让 Skills 系统具备了极高的灵活性和扩展性。
Skills 的核心优势与适用场景
理解 Skills 能为你带来什么价值,是决定是否投入学习成本的关键。根据 Anthropic 官方案例和社区反馈,Skills 在以下几个维度展现出明显优势。
消除重复性提示输入是 Skills 最直接的价值体现。很多用户在使用 Claude 时会反复输入类似的指令,比如"请按照我司的代码规范审查这段代码"或"生成报告时使用公司的品牌模板"。通过将这些指令封装为 Skill,你只需创建一次,后续的每次调用都会自动应用相同的标准。据用户反馈,这一改变平均可以节省每次交互 30-40% 的输入时间。
工作流程标准化是 Skills 在团队协作中的核心价值。当多人使用 Claude 处理相似任务时,输出质量往往参差不齐,因为每个人的提示方式和要求不同。通过共享 Skills,团队可以确保所有成员使用相同的工作流程和质量标准。这在代码审查、文档生成、测试报告等场景中尤为重要。通过 Git 版本控制,团队还可以追踪 Skills 的更新历史,确保最佳实践的持续迭代。
领域专业知识的封装让非专家也能获得专家级的输出质量。比如一个"安全代码审查"Skill 可以包含 OWASP Top 10 漏洞检查清单、常见安全模式识别规则等专业知识,即使是安全经验较少的开发者,也能借助这个 Skill 进行初步的安全审查。这种知识封装的方式降低了专业门槛,提升了整体产出质量。
Skills 适用的典型场景包括:代码审查和重构建议、技术文档和 API 文档生成、测试用例设计和测试报告、数据分析和可视化、品牌内容创作、客户支持响应模板等。基本上,任何需要遵循特定流程或标准的重复性任务,都可以通过 Skills 来优化。
| 场景类型 | 典型用途 | 预期效率提升 |
|---|---|---|
| 代码开发 | 代码审查、重构建议、单元测试 | 35-40% |
| 文档写作 | 技术文档、API 文档、用户手册 | 40-50% |
| 数据处理 | 数据清洗、报告生成、可视化 | 30-35% |
| 内容创作 | 品牌文案、营销内容、社交媒体 | 25-35% |
三种安装方式详解
Claude Skills 提供了三种不同的安装方式,分别适合不同技术背景和使用需求的用户。下面详细介绍每种方式的操作步骤、优缺点和适用场景。

方式一:通过插件市场安装
这是最简单的安装方式,特别适合刚接触 Skills 的新手用户。插件市场提供了经过审核的官方和社区 Skills,安装过程只需几次按键操作。
操作步骤如下:首先在 Claude Code 中输入 /plugin 命令进入插件管理界面,然后选择 "Select marketplace" 进入技能市场。在市场列表中,使用方向键浏览可用的 Skills,按空格键选中你想安装的技能(可以多选),最后按 i 键执行安装。整个过程通常在 2-3 分钟内完成。
插件市场安装的优势在于零配置成本和官方质量保证,但缺点是可选的 Skills 数量有限,且无法自定义修改已安装的 Skill 内容。如果你只是想快速体验 Skills 功能,或者找到一个完全符合需求的官方 Skill,这是最佳选择。
方式二:手动目录安装
对于需要完全控制 Skill 内容或希望安装非官方 Skill 的用户,手动目录安装提供了最大的灵活性。这种方式需要你了解 Skills 的文件结构,但一旦掌握,就能进行各种自定义。
Skills 的存放位置分为三个层级:个人 Skills 位于 ~/.claude/skills/ 目录,所有项目都可以使用;项目 Skills 位于项目根目录的 .claude/skills/ 文件夹,仅对当前项目生效,便于团队共享;企业级 Skills(Managed Skills)由管理员统一部署,优先级最高。
手动安装的具体步骤:
bashmkdir -p ~/.claude/skills # 进入目录并创建新 Skill cd ~/.claude/skills mkdir my-code-reviewer cd my-code-reviewer # 创建核心文件 SKILL.md touch SKILL.md
创建好目录后,你需要编写 SKILL.md 文件的内容,这将在下一章节详细介绍。完成后重启 Claude Code,新的 Skill 就会被自动识别和加载。
手动安装的优势包括完全控制 Skill 内容、支持 Git 版本控制、方便团队共享。缺点是需要了解文件结构和 YAML 语法,有一定的学习成本。这种方式适合有明确定制需求的进阶用户和开发者。
方式三:自然语言创建
这是最新引入的安装方式,利用 Claude 本身的能力来辅助创建 Skill。你只需用自然语言描述想要的功能,Claude 会自动生成对应的 SKILL.md 文件。
使用方法非常直观:在 Claude Code 对话中描述你的需求,比如"帮我创建一个代码审查的 Skill,要检查代码风格、安全漏洞和性能问题,输出格式要包含问题描述、严重程度和修复建议"。Claude 会根据描述生成完整的 SKILL.md 内容,你确认后将其保存到对应目录即可。
这种方式的优势是无需编程知识、快速原型设计、高度定制化。缺点是生成的 Skill 可能需要多次迭代调整,且对于复杂功能的支持有限。适合希望快速创建简单 Skill 的用户,或作为手动编写的起点。
| 安装方式 | 难度 | 耗时 | 适用人群 | 自定义程度 |
|---|---|---|---|---|
| 插件市场 | 简单 | 2-3 分钟 | 新手小白 | 低 |
| 手动目录 | 中等 | 5-10 分钟 | 开发者 | 高 |
| 自然语言 | 简单 | 1-2 分钟 | 所有人 | 中 |
SKILL.md 文件结构详解
SKILL.md 是每个 Skill 的核心文件,也是唯一必需的文件。理解其结构对于创建和调试 Skills 至关重要。一个标准的 SKILL.md 文件由两部分组成:顶部的 YAML 元数据和下方的 Markdown 内容。
YAML 元数据部分使用三个破折号 --- 作为分隔符,包含 Skill 的基本信息。必需的字段有两个:name 是 Skill 的唯一标识符,只能使用小写字母、数字和连字符,最多 64 个字符;description 是 Skill 的功能描述,最多 1024 个字符,这个描述非常关键,因为 Claude 会根据它来判断何时触发该 Skill。
yaml--- name: code-security-reviewer description: Reviews code for security vulnerabilities including SQL injection, XSS, CSRF, and authentication issues. Use this when reviewing code changes or conducting security audits. ---
一个好的 description 需要回答两个问题:这个 Skill 做什么(具体功能),以及何时使用它(触发条件)。在描述中包含用户可能会说的触发词很重要,比如"security review"、"vulnerability check"等,这能提高 Skill 被正确触发的概率。
YAML 部分还支持多个可选字段来控制 Skill 的行为。allowed-tools 限制 Skill 可以使用的工具,这对于只读 Skills 或需要权限控制的场景很有用:
yaml--- name: code-analyzer description: Analyzes code structure and patterns allowed-tools: - Read - Grep - Glob ---
context 字段控制 Skill 的执行环境,可选值包括 inherit(继承当前上下文,默认)和 fork(在隔离的子代理中运行)。使用 fork 时,Skill 会在独立的上下文中执行,适合需要隔离的场景。
Markdown 内容部分是 Skill 的主体,通常包含以下几个小节:
markdown# Code Security Reviewer ## Purpose This skill helps identify security vulnerabilities in code through systematic review. ## Instructions When reviewing code, follow these steps: 1. Check for SQL injection vulnerabilities in database queries 2. Identify potential XSS vectors in user input handling 3. Verify CSRF protection on state-changing operations 4. Review authentication and authorization logic ## Output Format For each issue found, provide: - **Location**: File path and line number - **Severity**: Critical/High/Medium/Low - **Description**: What the vulnerability is - **Recommendation**: How to fix it ## Examples [Include concrete examples of input and expected output]
为了获得最佳性能,官方建议将 SKILL.md 的内容控制在 500 行以内。如果 Skill 需要更详细的参考资料,可以将它们放在单独的文件中(如 reference.md、examples.md),Claude 会在需要时按需加载这些文件。
完整的 Skill 目录结构通常如下:
my-skill/
├── SKILL.md # 核心指令(必需)
├── reference.md # 详细参考文档(可选)
├── examples.md # 示例集合(可选)
├── templates/ # 模板文件(可选)
│ └── report.md
└── scripts/ # 可执行脚本(可选)
└── helper.py
创建你的第一个自定义 Skill
理论知识已经介绍完毕,现在让我们通过一个实际案例来创建自定义 Skill。假设你需要一个代码提交消息生成器,能够根据 git diff 自动生成规范的 commit message。
第一步:明确需求
在动手编写之前,先明确 Skill 需要完成什么任务。我们的代码提交消息生成器需要:分析 git diff 的变更内容、识别变更类型(feat/fix/refactor/docs 等)、生成符合 Conventional Commits 规范的消息、包含简洁的变更摘要。
第二步:创建目录结构
bash# 创建 Skill 目录 mkdir -p ~/.claude/skills/commit-message-generator cd ~/.claude/skills/commit-message-generator
第三步:编写 SKILL.md
yaml--- name: commit-message-generator description: Generates conventional commit messages from git diffs. Use when user wants to create commit messages, write commits, or needs help with git commit formatting. allowed-tools: - Bash - Read --- # Commit Message Generator ## Purpose Generate clear, conventional commit messages by analyzing code changes from git diff output. ## Commit Types Use these prefixes based on the change type: - `feat`: New feature or functionality - `fix`: Bug fix - `refactor`: Code restructuring without behavior change - `docs`: Documentation changes - `test`: Adding or updating tests - `chore`: Build process or auxiliary tool changes - `style`: Code style changes (formatting, semicolons, etc.) - `perf`: Performance improvements ## Instructions When asked to generate a commit message: 1. **Analyze the diff**: Run `git diff --staged` to see staged changes, or `git diff` for unstaged changes 2. **Identify the scope**: Determine which part of the codebase is affected (e.g., auth, api, ui) 3. **Determine the type**: Based on the changes, select the appropriate commit type 4. **Write the message**: Follow this format:
