claude skills 介绍

目录

1. 什么是 Skills? #

1.1 Skills 的工作原理 #

1.2 两种 Skills 类别 #

1.3 主要优势 #

1.4 与其他功能的对比 #

2. 在 Claude 中使用 Skills #

2.1 访问 Skills #

2.2 内置的 Anthropic Skill #

2.3 自定义 Skill 上传流程 #

2.4 Claude 如何使用 Skills #

2.5 安全注意事项 #

2.6 问题排查 #

3. 在 Claude Code 中使用 Skills #

3.1 Skills 的存储位置 #

3.2 SKILL.md 文件要求 #

3.3 支持文件(supporting files) #

3.4 工具访问限制 #

3.5 发现和测试 #

3.6 团队共享方法 #

3.7 最佳实践 #

3.8 问题排查 #

3.9 与 Web 界面的主要区别 #

4. 如何创建自定义 Skill #

4.1 创建 Skill.md 文件 #

4.1.1 必需的元数据字段 #

4.1.2 可选的元数据字段 #

4.1.3 Markdown 正文 #

4.1.4 Skill 结构示例 #

4.2 添加资源 #

4.3 添加脚本 #

4.4 打包 Skill #

4.5 测试 Skill #

4.5.1 上传前 #

4.5.2 上传到 Claude 后 #

4.6 最佳实践 #

4.7 安全注意事项 #

4.8 示例资源 #

5. 使用 Agent Skills 装备真实世界的 Agent #

5.1 核心概念 #

5.2 解剖 Skill 的结构 #

5.2.1 基本结构 #

5.2.2 渐进式披露架构 #

5.2.3 PDF Skill 案例研究 #

5.3 上下文窗口集成 #

5.4 代码执行能力 #

5.5 开发指南 #

5.5.1 从评估开始 #

5.5.2 为规模而构建 #

5.5.3 从 Claude 的角度思考 #

5.5.4 与 Claude 一起迭代 #

5.6 安全考虑 #

5.7 部署状态 #

5.8 未来路线图 #

6. 总结 #


1. 什么是 Skills? #

Skills 是包含指令、脚本和资源的文件夹,Claude 可以动态加载这些内容以提高在特定任务上的表现。 Skills 教会 Claude 如何以可重复的方式完成特定任务,无论是使用公司的品牌指南创建文档、按照组织特定的工作流程分析数据,还是自动化个人任务。

1.1 Skills 的工作原理 #

系统采用渐进式披露(progressive disclosure)机制:

  1. Claude 评估可用的 Skills
  2. 加载相关的 Skills
  3. 当用户请求完成任务时应用相应的指令

这种机制可以防止上下文窗口过载。

1.2 两种 Skills 类别 #

1. Anthropic Skills(官方 Skills)

  • 由 Anthropic 创建
  • 用于文档创建(Excel、Word、PowerPoint、PDF)
  • 在适当的时候自动调用

2. Custom Skills(自定义 Skills)

  • 由用户或组织创建
  • 用于专门的工作流程,包括:
    • 应用品牌指南
    • 生成电子邮件模板
    • 结构化会议笔记
    • 在 JIRA 等工具中创建任务
    • 数据分析工作流
    • 个人自动化任务

1.3 主要优势 #

  • 提高特定任务的性能
  • 捕获和保持组织知识的一致性
  • 使用 Markdown 进行简单定制(定制简单的 Skills 无需编写代码)

1.4 与其他功能的对比 #

Skills vs. Projects(项目)

  • Skills:动态激活
  • Projects:持续加载静态知识

Projects(项目)

Projects 是具有独立聊天历史和知识库的自主工作空间,Claude的付费订阅用户可以使用。用户可以在每个项目中组织文档、提供上下文,并与 Claude 进行专注的对话。

核心特性:

  • 项目知识库:上传文档、文本、代码和文件供 Claude 在对话中引用;可建立项目特定的指令来定制 Claude 的响应风格、正式程度或视角
  • 检索增强生成(RAG):当项目知识接近上下文限制时,自动启用 RAG 模式,将容量扩展最多 10 倍,同时保持响应质量
  • 协作功能(Team 和 Enterprise 计划):三种权限级别("可使用"、"可编辑"、创建者权限);支持单个成员、批量邮件列表、组织范围的共享

Skills vs. MCP

  • MCP:将 Claude 连接到外部服务和数据源
  • Skills:提供程序性知识------关于如何完成特定任务或工作流程的指令
  • 两者可以结合使用:MCP 连接让 Claude 访问工具,而 Skills 教会 Claude 如何有效地使用这些工具

Skills vs. Custom Instructions

  • Custom Instructions:广泛应用
  • Skills:针对特定任务激活

Custom Instructions

"Custom Instructions" 对应于 Claude 的个性化功能,主要包括:

  • Profile Preferences(配置文件偏好)
    • 账户范围的设置,帮助 Claude 理解用户的通用偏好
    • 应用于所有与 Claude 的对话
    • 可以描述:偏好的方法或途径、常用的术语或概念、典型场景、沟通偏好
  • Project Instructions(项目指令)
    • 帮助 Claude 理解特定项目的上下文和要求
    • 仅应用于该项目内的聊天
    • 提供:项目特定的上下文、工作流程指南、任务要求、Claude 应扮演的角色
    • 仅付费计划可用
  • Styles(样式)**
    • 定制 Claude 与用户的沟通方式
    • 专注于 Claude 如何格式化和传递响应
    • 调整语气/格式,在不同沟通风格间切换

与 Skills 的区别:这些个性化功能广泛应用(Profile Preferences 应用于所有对话,Project Instructions 应用于整个项目),而 Skills 是针对特定任务激活,仅在相关时加载。

2. 在 Claude 中使用 Skills #

Skills 通过提供专门知识(knowledge)和工作流程(workflows)扩展 Claude 的能力。当前该功能作为预览版提供给 Pro、Max、Team 和 Enterprise 计划用户,需要启用代码执行工具(code execution tool)。 Skills 也以 beta 形式提供给 Claude Code 用户和所有使用代码执行工具的 API 用户。

2.1 访问 Skills #

Settings > Capabilities 管理 Skills。界面功能包括:

  • 查看所有可用的 Anthropic Skills 和自定义 Skills
  • 开启或关闭单个 Skills
  • 上传新的自定义 Skills(ZIP 文件)
  • 查看每个 Skill 的启用或添加时间

2.2 内置的 Anthropic Skill #

Claude 提供了多个内置的 Skill,包括:

  • 增强的 Excel 电子表格创建和操作
  • 专业的 Word 文档创建
  • PowerPoint 演示文稿生成
  • PDF 创建和处理

这些 Skills 在相关时自动激活,无需明确调用。

2.3 自定义 Skill 上传流程 #

  1. 按照要求的结构创建 Skill
  2. 将 Skill 文件夹打包为 ZIP 文件
  3. 前往 Settings > Capabilities
  4. 点击 "Upload skill" 并选择 ZIP 文件
  5. Skill 出现在列表中,可以开启或关闭

注意 :上传的 Skills 是个人账户私有的,无法直接与组织成员共享。关于如何创建和打包 Skill 的详细说明,请参见 4. 如何创建自定义 Skill

2.4 Claude 如何使用 Skills #

Claude 根据任务需求自动识别和加载相关的 Skills。系统会自动确定何时需要每个 Skill,无需手动选择。

2.5 安全注意事项 #

  • Skills 在沙盒环境中运行,会话之间不保留数据
  • 主要风险包括提示注入和数据泄露
  • 注意只安装来自可信来源的 Skills
  • 使用前审查 Skill 内容,特别注意代码依赖项和外部连接

2.6 问题排查 #

  • Skills 部分不可见:确保在 Settings > Capabilities 中启用了代码执行
  • Claude 未使用 Skill:验证 Skill 已开启、有清晰的描述、使用了结构良好的指令
  • 上传失败:检查 ZIP 文件是否符合大小限制、文件夹名称是否与 Skill 名称匹配、是否存在必需的 Skill.md 文件
  • Skills 显示为灰色:代码执行或 Skills 可能在组织级别被禁用

3. 在 Claude Code 中使用 Skills #

Claude Code 中的 Skills 使用方式与 Web 界面有显著不同。Skills 通过文件系统目录管理,Claude 根据请求上下文自动激活相关 Skills。

3.1 Skills 的存储位置 #

个人 Skills~/.claude/skills/skill-name/

  • 用于个人工作流程
  • 跨所有项目可用

项目 Skills.claude/skills/skill-name/

  • 位于项目目录内
  • 通过 git 同步,团队成员共享

插件 Skills

  • 随安装的插件自动提供

3.2 SKILL.md 文件要求 #

每个 Skill 必须包含一个 SKILL.md 文件,包含 YAML frontmatter:

复制代码
---
name: lowercase-name-with-hyphens
description: 功能说明和激活触发器
---

字段要求

  • name:仅小写字母、数字、连字符
  • description:说明功能和激活条件

关键要点:description 字段对于 Claude 发现何时使用 Skill 至关重要。应同时指定功能和使用场景,包含用户可能提到的关键词。描述模糊会导致发现困难。

3.3 支持文件(supporting files) #

Skills 可以包含可选的参考文档、示例、脚本和模板,组织在子目录中。Claude 在需要时渐进式加载这些内容。

3.4 工具访问限制 #

通过 allowed-tools 字段限制工具访问:

复制代码
---
name: my-skill
description: 描述
allowed-tools:
  - Read
  - Grep
---

当此 Skill 激活时,Claude 只能使用指定的工具,无需请求权限。这可以确保只读操作或限定范围的功能。

3.5 发现和测试 #

发现 Skills

  • Claude 自动从所有三个位置发现 Skills
  • 可以询问:"有哪些 Skills 可用?"来列举所有 Skills

测试 Skills

  • 构造与描述匹配的请求
  • 如果 Claude 未激活 Skill,说明描述可能不够具体

3.6 团队共享方法 #

主要方法:通过包含 Skills 的插件分发

备选方法:将项目 Skills 提交到 git 仓库,团队成员拉取更新后自动可用

3.7 最佳实践 #

  • 保持每个 Skill 专注于单一功能
  • 编写具体的描述,包含触发词
  • 记录版本历史以跟踪变更
  • 使用清晰的分步指令

3.8 问题排查 #

问题:Claude 未使用 Skill

症状:你提出了相关问题,但 Claude 没有使用你的 Skill。

检查项:

  • 描述是否足够具体?

    • 描述模糊会导致发现困难。应包含 Skill 的功能和使用时机,以及用户可能提到的关键词
    • 过于泛泛的示例:description: Helps with data
    • 具体的示例:description: Analyze Excel spreadsheets, generate pivot tables, create charts. Use when working with Excel files, spreadsheets, or .xlsx files.
  • YAML 是否有效?

    • 运行验证检查语法错误:cat .claude/skills/my-skill/SKILL.md | head -n 15
    • 常见问题:缺少开头或结尾的 ---、使用制表符而非空格、包含特殊字符的字符串未加引号
  • Skill 是否在正确位置?

    • 检查命令:

      复制代码
      ls ~/.claude/skills/*/SKILL.md
      ls .claude/skills/*/SKILL.md

问题:Skill 出现错误

症状:Skill 已加载但运行不正常。

检查项:

  • 依赖项是否可用?

    • Claude 会在需要时自动安装所需依赖项(或请求安装权限)
  • 脚本是否有执行权限?

    • 设置权限:chmod +x .claude/skills/my-skill/scripts/*.py
  • 文件路径是否正确?

    • 所有路径使用正斜杠(Unix 风格)
    • 正确格式:scripts/helper.py,而非 Windows 风格路径

问题:多个 Skills 冲突

症状:Claude 使用了错误的 Skill,或在相似的 Skills 之间显得困惑。

解决方法:

  • 在描述中使用具体的触发词来帮助 Claude 区分它们,避免使用泛泛的语言

3.9 与 Web 界面的主要区别 #

特性 Claude Code claude.ai Web
启用方式 自动可用,无需手动启用 Settings > Capabilities 手动开启
安装方式 放入文件系统目录 上传 ZIP 文件
管理方式 文件系统和 git Web 界面开关
共享方式 git 同步或插件分发 个人私有,无法直接共享
激活方式 Claude Code 自动根据描述激活 Claude 自动激活

4. 如何创建自定义 Skill #

自定义 Skill 为 Claude 增强专门的知识(knowledge)和工作流程(workflows),可用于组织或个人使用。最好的 Skill 通过清晰的指令、示例、定义的用例和专注的工作流程来解决特定的、可重复的任务。

4.1 创建 Skill.md 文件 #

每个 Skill 都需要一个目录,其中至少包含一个 Skill.md 文件。这个核心文件必须以包含必需元数据字段的 YAML frontmatter 开头。

4.1.1 必需的元数据字段 #

name:人类友好的标识符(最多 64 个字符)

  • 示例:Brand Guidelines

description:阐明 Skill 的功能和使用时机

  • 对 Claude 的调用决策至关重要
  • 示例:Apply Acme Corp brand guidelines to presentations and documents, including official colors, fonts, and logo usage.
4.1.2 可选的元数据字段 #

version:跟踪迭代(示例:1.0.0)

dependencies:列出所需的软件包(示例:python>=3.8, pandas>=1.5.0)

元数据作为第一个披露级别,允许 Claude 在不加载完整内容的情况下确定何时调用 Skill。

4.1.3 Markdown 正文 #

Markdown 正文构成第二个细节级别。Claude 在查看元数据后访问此内容以适当地执行 Skill。

4.1.4 Skill 结构示例 #

一个品牌指南 Skill 的完整示例:

复制代码
---
name: Brand Guidelines
description: Apply Acme Corp brand guidelines to all presentations and documents
version: 1.0.0
---

## 概述
这个 Skill 提供 Acme Corp 的官方品牌指南,用于创建一致的、专业的材料。在创建演示文稿、文档或营销材料时,应用这些标准以确保所有输出符合 Acme 的视觉标识。Claude 在创建面向外部的材料或代表 Acme Corp 的文档时应参考这些指南。

## 品牌颜色

我们的官方品牌颜色是:
- Primary: #FF6B35 (Coral)
- Secondary: #004E89 (Navy Blue)
- Accent: #F7B801 (Gold)
- Neutral: #2E2E2E (Charcoal)

## 排版

标题:Montserrat Bold
正文:Open Sans Regular
尺寸指南:
- H1: 32pt
- H2: 24pt
- Body: 11pt

## Logo 使用

始终在浅色背景上使用全彩 logo。在深色背景上使用白色 logo。Logo 周围保持至少 0.5 英寸的最小间距。

## 何时应用

在创建以下内容时应用这些指南:
- PowerPoint 演示文稿
- 用于外部共享的 Word 文档
- 营销材料
- 客户报告

## 资源

有关 logo 文件和字体下载,请参阅 resources 文件夹。

4.2 添加资源 #

对于大量信息,可以向 Skill 目录添加补充文件,如 REFERENCE.md。在 Skill.md 中引用这些文件有助于 Claude 确定在执行期间何时访问资源。

4.3 添加脚本 #

高级 Skills 可以附加可执行代码文件,使 Claude 能够运行代码。支持的语言和包:

  • Python(pandas、numpy、matplotlib 等)
  • JavaScript/Node.js
  • 用于文件编辑的软件包(如 openpyxl、python-docx 等)
  • 可视化工具(如 matplotlib、seaborn、plotly、chart.js、d3.js 等)

重要说明:Claude Code 在加载 Skills 时可以从标准存储库(PyPI, npm)安装包。但是,对于 API Skills,"所有依赖项必须预先安装在容器中"。

4.4 打包 Skill #

完成后,确保:

  1. 文件夹名称与 Skill 名称匹配
  2. 创建文件夹的 ZIP 文件
  3. ZIP 应包含 Skill 文件夹作为根目录,而不是作为子文件夹

正确的结构

复制代码
my-Skill.zip
└── my-Skill/
    ├── Skill.md
    └── resources/

错误的结构

复制代码
my-Skill.zip
└── (文件直接在 ZIP 根目录中)

4.5 测试 Skill #

4.5.1 上传前 #
  1. 检查 Skill.md 的清晰度
  2. 验证描述是否准确反映 Claude 的用例
  3. 确认所有引用的文件存在于正确的位置
  4. 使用示例提示进行测试,确保适当的调用
4.5.2 上传到 Claude 后 #
  1. 在 Settings > Capabilities 中启用
  2. 尝试应该触发它的多个提示
  3. 查看 Claude 的思考过程以确认 Skill 加载
  4. 如果 Claude 没有按预期使用它,则迭代描述

4.6 最佳实践 #

  • 保持专注:为不同的工作流程创建单独的 Skill;多个专注的 Skill 比一个大型 Skill 组合得更好
  • 编写清晰的描述:具体说明适用性
  • 从简单开始:在添加复杂脚本之前,从基本的 Markdown 指令开始
  • 使用示例:包括示例输入和输出
  • 版本化 Skill:跟踪迭代以进行故障排除
  • 增量测试:在每次重大更改后进行测试
  • 可组合性:"Skill 不能显式引用其他 Skill,Claude 可以自动一起使用多个 Skill"

有关更深入的指导,请参阅 Claude 文档中的 Skill 创作最佳实践

4.7 安全注意事项 #

  • 添加脚本时要谨慎
  • 永远不要硬编码敏感信息(API 密钥、密码)
  • 在启用之前查看下载的 Skills
  • 使用适当的 MCP 连接来访问外部服务

4.8 示例资源 #

5. 使用 Agent Skills 装备真实世界的 Agent #

这部分内容来自 Anthropic 的工程博客: Equipping agents for the real world with Agent Skills ,深入探讨了 Agent Skills 的架构设计、实践案例和开发指南。

5.1 核心概念 #

Agent Skills 是"包含指令、脚本和资源的组织化文件夹, Agent 可以动态发现和加载",用于增强 Claude 的能力。这种方法通过将领域专业知识打包为可组合、可重用的组件,将通用 Agent 转变为专业化实现。

5.2 解剖 Skill 的结构 #

5.2.1 基本结构 #

一个 Skill 需要一个目录,其中包含以 YAML frontmatter 开头的 SKILL.md 文件,指定两个必需字段:

  • name:标识 Skill
  • description:说明其用途

Skill 目录的组织结构

复制代码
my-skill/
├── SKILL.md           # 核心文件(必需)
├── reference.md       # 参考文档(可选)
├── forms.md           # 特定功能文档(可选)
├── scripts/           # 可执行脚本(可选)
│   └── helper.py
└── resources/         # 其他资源文件(可选)
    └── templates/

SKILL.md 文件结构

SKILL.md 文件必须以 YAML frontmatter 开头,包含元数据。这些元数据在 Agent 启动时被预加载到系统提示中,使其能够在不加载完整上下文的情况下发现能力。

复制代码
---
name: skill-name
description: 简洁描述 Skill 的功能和使用场景
---

# Skill 的详细指令

这里是 Skill 的核心内容,包括:
- 使用说明
- 工作流程步骤
- 示例和最佳实践

# 引用其他文件

可以在这里引用补充文件,如:
- 详细参考信息见 reference.md
- 表单填写流程见 forms.md

补充文件的引用机制

SKILL.md 中,可以通过自然语言引用其他文件。Claude 会根据任务需要,选择性地读取这些补充文件。例如:

  • "For general PDF operations, see reference.md" → Claude 需要时会读取 reference.md
  • "For form-filling procedures, see forms.md" → Claude 只在填写表单时才会加载此文件
5.2.2 渐进式披露架构 #

设计实现了三个披露级别:

级别 1 - 元数据:在启动时加载名称和描述

级别 2 - 核心内容 :当 Claude 确定相关性时加载完整的 SKILL.md 内容

级别 3 - 补充文件 :仅在需要时加载引用的文档,如 reference.mdforms.md

这种模式"就像一本组织良好的手册,从目录开始,然后是特定章节,最后是详细的附录。"

5.2.3 PDF Skill 案例研究 #

博客中展示的案例研究演示了文档操作能力。该 Skill 展示了如何通过分层组织来优化上下文使用。

PDF Skill 的文件组织

复制代码
pdf/
├── SKILL.md           # 核心文件,包含 PDF 操作的基础指导
├── reference.md       # 通用 PDF 操作参考(读取、提取、转换等)
└── forms.md           # 专门针对 PDF 表单填写的详细流程

工作原理

  1. 启动阶段:Agent 加载 PDF Skill 的元数据(name 和 description)
  2. 任务触发 :当用户请求 PDF 相关操作时,Claude 读取 SKILL.md 核心内容
  3. 按需加载
    • 如果任务是一般 PDF 操作(如提取文本),Claude 读取 reference.md
    • 如果任务是填写 PDF 表单,Claude 才会加载 forms.md
  4. 精简上下文 :这种架构允许 Claude "保持 Skill 的核心精简,相信 Claude 只会在填写表单时读取 forms.md"

优势

  • 避免将所有文档内容一次性加载到上下文窗口
  • 根据任务类型动态选择相关信息
  • 减少 token 消耗,提高响应效率
  • 支持复杂功能的模块化组织
Level File Context Window # Tokens
1 SKILL.md Metadata (YAML) Always loaded ~100
2 SKILL.md Body (Markdown) Loaded when Skill triggers <5k
3+ Bundled files (text files, scripts, data) Loaded as-needed by Claude unlimited*

5.3 上下文窗口集成 #

Skills 通过系统提示机制与上下文窗口集成。理解这个过程对于优化 Skill 设计至关重要。

完整的操作序列

  1. 初始状态

    • 上下文窗口包含:核心系统提示 + 所有已安装 Skills 的元数据(name + description) + 用户消息
    • 此时尚未加载任何 Skill 的完整内容
  2. Skill 触发

    • 用户发送请求:"请帮我填写这个 PDF 表单"
    • Claude 根据已加载的 Skills 元数据,识别出 PDF Skill 相关
    • Claude 调用 Bash 工具读取 pdf/SKILL.md 文件内容
  3. 选择性加载补充文件

    • Claude 读取 SKILL.md,发现其中提到 "For form-filling procedures, see forms.md"
    • 因为任务是填写表单,Claude 进一步读取 forms.md 文件
    • 如果任务只是提取文本,Claude 可能只读取 reference.md,不会加载 forms.md
  4. 执行任务

    • Agent 使用已加载的相关 Skill 指令继续执行任务
    • 如果需要,调用 Skill 中的脚本
    • 完成任务后,补充文件的内容会从上下文中移除(为下次任务腾出空间)

上下文窗口的动态管理

复制代码
时刻 1(启动):
[系统提示] + [PDF Skill 元数据] + [其他 Skills 元数据] + [用户消息]

时刻 2(触发 PDF Skill):
[系统提示] + [SKILL.md 完整内容] + [用户消息]

时刻 3(需要表单功能):
[系统提示] + [SKILL.md 内容] + [forms.md 内容] + [对话历史]

时刻 4(任务完成):
[系统提示] + [Skills 元数据] + [对话历史]

这种动态加载和卸载机制确保了上下文窗口的高效利用。

5.4 代码执行能力 #

Skills 可以捆绑可执行脚本,这是相对于纯 token 生成的重要优化。

为什么需要代码执行

与"通过 token 生成排序列表"(计算成本高)不同,Agent 可以执行确定性代码,获得以下优势:

  1. 效率提升:算法操作(排序、搜索、数学计算)通过代码执行比 token 生成快得多
  2. 成本降低:避免消耗大量 tokens 进行计算密集型任务
  3. 准确性保证:确定性算法保证结果的一致性和正确性
  4. 上下文节省:脚本本身不需要加载到上下文中

PDF Skill 的代码执行示例

PDF Skill 包含预先编写的 Python 脚本,实现以下功能:

复制代码
pdf/
├── SKILL.md
├── reference.md
├── forms.md
└── scripts/
    ├── extract_fields.py    # 提取 PDF 表单字段
    ├── fill_form.py         # 填写 PDF 表单
    └── convert.py           # PDF 格式转换

工作流程

  1. Claude 根据任务判断需要执行代码
  2. 调用相应的脚本(如 extract_fields.py
  3. 脚本执行并返回结果(如表单字段列表)
  4. Claude 使用结果继续完成任务

关键优势 :脚本可以提取 PDF 表单字段,而无需将脚本源代码或 PDF 文档内容加载到上下文窗口中。这大大降低了 token 消耗。

支持的代码类型

  • Python 脚本(pandas、numpy、matplotlib 等)
  • JavaScript/Node.js 脚本
  • Shell 脚本
  • 任何可在沙盒环境中执行的代码

5.5 开发指南 #

5.5.1 从评估开始 #

在开始构建 Skill 之前,应该先通过实际测试来识别 Claude 的能力差距。

具体步骤

  1. 准备测试任务:收集一组代表性的任务示例

    • 例如:如果要创建"数据分析 Skill",准备 5-10 个典型的数据分析请求
  2. 测试基准能力:在没有 Skill 的情况下,让 Claude 尝试完成这些任务

    • 记录哪些任务完成得好
    • 记录哪些任务失败或效果不佳
  3. 识别能力差距:分析测试结果,找出 Claude 需要哪些额外的知识或工具

    • 缺少特定领域知识?→ 需要在 Skill 中添加参考文档
    • 操作步骤不清晰?→ 需要提供详细的工作流程指令
    • 需要执行复杂计算?→ 需要添加可执行脚本
  4. 增量构建:根据识别出的差距,逐步构建和完善 Skill

这种"先评估,再构建"的方法可以避免创建不必要的 Skills,确保每个 Skill 都解决实际问题。

5.5.2 为规模而构建 #

随着 Skill 功能的增加,需要采用合理的结构设计来保持高效和可维护性。

1. 拆分过大的文件

SKILL.md 变得过于庞大时(如超过 5000 tokens),应该拆分为单独的文件:

复制代码
# 拆分前(一个大文件)
data-analysis/
└── SKILL.md  # 10000 tokens,包含所有内容

# 拆分后(多个专注的文件)
data-analysis/
├── SKILL.md          # 核心指令,2000 tokens
├── statistics.md     # 统计分析方法,3000 tokens
├── visualization.md  # 可视化指南,2000 tokens
└── cleaning.md       # 数据清洗流程,3000 tokens

2. 保持互斥的上下文分离

将不同功能的内容放在不同文件中,Claude 只加载当前任务需要的部分:

  • 好的设计statistics.md 只包含统计分析,visualization.md 只包含可视化

    • 做可视化任务时,不需要加载统计分析的内容,节省 3000 tokens
  • 不好的设计 :所有内容都在 SKILL.md

    • 无论做什么任务,都要加载全部 10000 tokens

3. 将代码既用作可执行工具,也用作文档

脚本文件可以同时服务两个目的:

复制代码
# scripts/calculate_correlation.py

"""
计算两个变量之间的相关系数

用法:
    python calculate_correlation.py data.csv col1 col2

参数:
    data.csv: 数据文件路径
    col1: 第一个变量列名
    col2: 第二个变量列名

返回:
    相关系数值(-1 到 1)
"""

import pandas as pd
import sys

def calculate_correlation(file_path, col1, col2):
    df = pd.read_csv(file_path)
    return df[col1].corr(df[col2])

if __name__ == "__main__":
    result = calculate_correlation(sys.argv[1], sys.argv[2], sys.argv[3])
    print(f"Correlation: {result}")

双重价值

  • 作为工具:Claude 可以直接执行这个脚本获得结果
  • 作为文档:docstring 说明了功能、用法和参数,Claude 可以读取它来理解如何使用

这样避免了在 SKILL.md 中重复编写脚本的使用说明。

5.5.3 从 Claude 的角度思考 #

开发 Skill 时,需要站在 Claude 的角度来设计,观察它如何实际使用你的 Skill。

1. 监控真实使用模式

部署 Skill 后,观察 Claude 在实际场景中的表现:

  • 记录成功案例:哪些类型的请求成功触发了 Skill?

    • 例如:用户说"分析这个 Excel 文件"时,Claude 正确加载了数据分析 Skill
  • 记录失败案例:哪些应该触发但没有触发?

    • 例如:用户说"帮我看看这个表格的趋势"时,Claude 没有意识到需要数据分析 Skill

2. 优化 namedescription

这两个字段是 Claude 做触发决策的关键依据,需要精心编写:

模糊的描述

复制代码
name: data-tool
description: Helps with data

问题:太泛泛,Claude 不知道何时使用

具体的描述

复制代码
name: excel-data-analyzer
description: Analyze Excel spreadsheets, generate pivot tables, create statistical summaries and charts. Use when working with .xlsx/.csv files, spreadsheets, data analysis, or statistical calculations.

优点:

  • 明确说明功能(分析、透视表、统计、图表)
  • 包含触发关键词(Excel, spreadsheet, .xlsx, .csv, data analysis, statistical)
  • Claude 更容易判断何时需要这个 Skill

3. 观察 Claude 的思考过程

在支持的平台上(如 claude.ai),查看 Claude 的内部思考:

复制代码
用户:"这个 Excel 文件有什么趋势?"

Claude 的思考:
- 用户提到 Excel 文件 ✓
- 需要数据分析 ✓
- excel-data-analyzer Skill 的描述匹配 ✓
- 决定:加载这个 Skill

如果 Claude 没有加载你的 Skill,检查它的思考过程,看看是什么原因。

4. 迭代改进

根据观察结果持续改进:

  • description 缺少用户常用的关键词?→ 添加进去
  • Skill 经常被错误触发?→ 让描述更具体
  • 某些场景下没被触发?→ 添加相关的使用场景描述
5.5.4 与 Claude 一起迭代 #

利用 Claude 本身来帮助改进和完善 Skill。

1. 让 Claude 捕获成功的方法

当 Claude 成功完成某个任务时,请它将解决方案整理成 Skill:

复制代码
你刚才分析 Excel 文件的方法很好,请将这个工作流程
整理成一个可重用的 Skill,包括:
- 清晰的步骤说明
- 常见问题的处理方法
- 示例代码(如果需要)

保存为 SKILL.md 格式

Claude 可以:

  • 提取关键步骤
  • 总结最佳实践
  • 生成结构化的 Skill 文件
  • 编写必要的脚本

2. 要求自我反思

当 Claude 的执行轨迹偏离预期时,让它分析原因:

复制代码
你刚才在处理数据时没有按照我期望的方式进行。
请反思:
1. 你理解的任务目标是什么?
2. 你选择这个方法的原因是什么?
3. Skill 的哪些部分可以改进来避免这个问题?
4. 建议如何修改 SKILL.md?

Claude 可以帮助识别:

  • Skill 指令不清晰的地方
  • 缺少的边界情况处理
  • 需要补充的参考信息
  • description 中缺少的关键词

3. 迭代改进循环

复制代码
人类 → 创建初始 Skill
  ↓
Claude → 使用 Skill 完成任务
  ↓
人类 → 观察效果,发现问题
  ↓
Claude → 反思并建议改进
  ↓
人类 → 更新 Skill
  ↓
(循环继续)

4. 实际对话示例

复制代码
人类:你刚才为什么没有生成图表?

Claude:我理解您的意图了。查看 data-analysis Skill 的描述,
它提到了"statistical summaries"但没有明确提到"visualization"
或"charts"。建议在 description 中添加:

description: "Analyze data, generate statistical summaries,
create visualizations and charts. Use when user requests
graphs, plots, trends, or visual analysis."

这样我就能更准确地判断何时需要创建图表。

核心思想:把 Claude 当作 Skill 开发的协作伙伴,而不仅仅是使用者。它的反馈可以帮助你快速发现和解决 Skill 的问题。

5.6 安全考虑 #

"Skills 通过指令和代码为 Claude 提供新能力。虽然这使它们功能强大,但也意味着恶意 Skills 可能引入漏洞。"

建议:

  • 仅从可信来源安装
  • 彻底审计不熟悉的 Skills
  • 检查捆绑的代码依赖项和资源
  • 监控指示连接到不可信外部源的指令

5.7 部署状态 #

Skills 目前在 Claude.ai、Claude Code、Claude Agent SDK 和 Claude Developer Platform 上运行。Anthropic 计划扩展对完整 Skill 生命周期的支持:创建、编辑、发现、共享和使用。

5.8 未来路线图 #

近期:增强 Skill 发现和共享功能,探索与 MCP 服务器的集成

长期:使 Agent 能够"自主创建、编辑和评估 Skills,让它们将自己的行为模式编码为可重用的能力"

6. 总结 #

Claude Skills 通过将领域知识、工作流程和可执行代码打包为可重用组件,让 Claude 从通用AI助手转变为具备专业能力的 Agent。其核心价值在于:通过三级加载(元数据→核心内容→补充文件)优化上下文使用,通过代码执行提升任务效率,通过结构化指令固化组织知识。

创建优秀 Skill 的关键是:先评估能力差距再构建,精心设计 description 以包含功能说明和触发关键词,采用分层架构支持规模化,从 Claude 视角观察使用模式并迭代改进。无论在 Web 界面、Claude Code 还是 API 中使用,Skills 都在改变我们与 Claude 协作的方式------不仅让 AI 使用工具,更让 AI 学会如何更好地完成特定任务。

相关推荐
likerhood2 小时前
4. pytorch线性回归
人工智能·pytorch·线性回归
Calebbbbb2 小时前
从 Vibe Coding 到 SDD:淘宝 AI 编码最佳实践分享
人工智能·ai编程
GIOTTO情2 小时前
Infoseek 危机公关系统技术实现深度解析:AI 驱动的全链路舆情处置架构与工程实践
人工智能·架构
ayingmeizi1632 小时前
智慧养老的数字化转型:AI CRM如何重构全链路增长
大数据·人工智能·重构
GEO_NEWS2 小时前
AI重构全球贸易版图?世贸报告:2040年或增长近四成
人工智能
wfeqhfxz25887822 小时前
自动驾驶环境中的车辆目标检测-Mask-RCNN模型应用与参数配置
人工智能·目标检测·自动驾驶
艾醒(AiXing-w)2 小时前
大模型原理剖析——多头潜在注意力 (MLA) 详解
人工智能·机器学习
A林玖2 小时前
【深度学习】transformer架构
人工智能·深度学习·transformer
微盛企微增长小知识2 小时前
2026企业微信AI SCRM推荐:微盛·企微管家私域效率提升实践
人工智能