Skills 是可重用的、基于文件系统的资源,为 Claude 提供特定领域的专业知识:工作流程、上下文和最佳实践,将通用型智能体转变为专家。与提示词(用于一次性任务的对话级指令)不同,Skills 按需加载,消除了在多个对话中重复提供相同指导的需要。
主要优势:
如需深入了解 Agent Skills 的架构和实际应用,请阅读我们的工程博客:为智能体装备真实世界的 Agent Skills。
Anthropic 为常见文档任务(PowerPoint、Excel、Word、PDF)提供了预构建的 Agent Skills,您也可以创建自己的自定义 Skills。两者的工作方式相同。Claude 会在与您的请求相关时自动使用它们。
预构建 Agent Skills 对 claude.ai 和 Claude API 的所有用户可用。请参阅下方的可用 Skills 部分了解完整列表。
自定义 Skills 让您可以打包领域专业知识和组织知识。它们可在 Claude 的各个产品中使用:在 Claude Code 中创建、通过 API 上传,或在 claude.ai 设置中添加。
快速开始:
Skills 利用 Claude 的虚拟机环境来提供仅靠提示词无法实现的能力。Claude 在具有文件系统访问权限的虚拟机中运行,允许 Skills 以目录形式存在,包含指令、可执行代码和参考材料,其组织方式就像您为新团队成员创建的入职指南。
这种基于文件系统的架构实现了渐进式披露:Claude 根据需要分阶段加载信息,而不是预先消耗上下文。
Skills 可以包含三种类型的内容,每种在不同时间加载:
内容类型:指令。Skill 的 YAML 前置信息提供发现信息:
---
name: pdf-processing
description: Extract text and tables from PDF files, fill forms, merge documents. Use when working with PDF files or when the user mentions PDFs, forms, or document extraction.
---Claude 在启动时加载此元数据并将其包含在系统提示中。这种轻量级方法意味着您可以安装许多 Skills 而不会产生上下文开销;Claude 只知道每个 Skill 的存在及其使用时机。
内容类型:指令。SKILL.md 的主体包含程序性知识:工作流程、最佳实践和指导:
# PDF Processing
## Quick start
Use pdfplumber to extract text from PDFs:
```python
import pdfplumber
with pdfplumber.open("document.pdf") as pdf:
text = pdf.pages[0].extract_text()
```
For advanced form filling, see [FORMS.md](FORMS.md).当您的请求与某个 Skill 的描述匹配时,Claude 通过 bash 从文件系统读取 SKILL.md。只有在此时,这些内容才会进入上下文窗口。
内容类型:指令、代码和资源。Skills 可以捆绑额外的材料:
pdf-skill/
├── SKILL.md (main instructions)
├── FORMS.md (form-filling guide)
├── REFERENCE.md (detailed API reference)
└── scripts/
└── fill_form.py (utility script)指令:额外的 markdown 文件(FORMS.md、REFERENCE.md),包含专门的指导和工作流程
代码:可执行脚本(fill_form.py、validate.py),Claude 通过 bash 运行;脚本提供确定性操作而不消耗上下文
资源:参考材料,如数据库模式、API 文档、模板或示例
Claude 仅在被引用时才访问这些文件。文件系统模型意味着每种内容类型都有不同的优势:指令用于灵活指导,代码用于可靠性,资源用于事实查询。
| 级别 | 加载时机 | Token 开销 | 内容 |
|---|---|---|---|
| 级别 1:元数据 | 始终(启动时) | 每个 Skill 约 100 tokens | YAML 前置信息中的 name 和 description |
| 级别 2:指令 | Skill 被触发时 | 5k tokens 以内 | SKILL.md 主体,包含指令和指导 |
| 级别 3+:资源 | 按需 | 实际上无限制 | 通过 bash 执行的捆绑文件,无需将内容加载到上下文中 |
渐进式披露确保在任何给定时间只有相关内容占用上下文窗口。
Skills 在代码执行环境中运行,Claude 在该环境中拥有文件系统访问、bash 命令和代码执行能力。可以这样理解:Skills 作为目录存在于虚拟机上,Claude 使用与您在计算机上浏览文件相同的 bash 命令与它们交互。

Claude 如何访问 Skill 内容:
当 Skill 被触发时,Claude 使用 bash 从文件系统读取 SKILL.md,将其指令带入上下文窗口。如果这些指令引用了其他文件(如 FORMS.md 或数据库模式),Claude 也会使用额外的 bash 命令读取这些文件。当指令提到可执行脚本时,Claude 通过 bash 运行它们并仅接收输出(脚本代码本身永远不会进入上下文)。
这种架构实现了什么:
按需文件访问:Claude 只读取每个特定任务所需的文件。一个 Skill 可以包含数十个参考文件,但如果您的任务只需要销售模式,Claude 只加载那一个文件。其余文件保留在文件系统上,消耗零 tokens。
高效脚本执行:当 Claude 运行 validate_form.py 时,脚本的代码永远不会加载到上下文窗口中。只有脚本的输出(如"验证通过"或特定错误消息)消耗 tokens。这使得脚本比让 Claude 即时生成等效代码要高效得多。
捆绑内容无实际限制:因为文件在被访问之前不消耗上下文,Skills 可以包含全面的 API 文档、大型数据集、大量示例或您需要的任何参考材料。未使用的捆绑内容不会产生上下文开销。
这种基于文件系统的模型使渐进式披露得以实现。Claude 浏览您的 Skill 就像您查阅入职指南的特定章节一样,精确访问每个任务所需的内容。
以下是 Claude 加载和使用 PDF 处理 skill 的过程:
PDF Processing - Extract text and tables from PDF files, fill forms, merge documentsbash: read pdf-skill/SKILL.md → 指令加载到上下文中
该图展示了:
这种动态加载确保只有相关的 skill 内容占用上下文窗口。
Skills 可在 Claude 的各个智能体产品中使用:
Claude API 支持预构建 Agent Skills 和自定义 Skills。两者的工作方式完全相同:在 container 参数中指定相关的 skill_id,同时配合代码执行工具使用。
前提条件:通过 API 使用 Skills 需要三个 beta 头:
code-execution-2025-08-25 - Skills 在代码执行容器中运行skills-2025-10-02 - 启用 Skills 功能files-api-2025-04-14 - 用于向容器上传/下载文件通过引用 skill_id(例如 pptx、xlsx)使用预构建 Agent Skills,或通过 Skills API(/v1/skills 端点)创建和上传自己的 Skills。自定义 Skills 在整个组织范围内共享。
要了解更多信息,请参阅通过 Claude API 使用 Skills。
Claude Code 仅支持自定义 Skills。
自定义 Skills:将 Skills 创建为包含 SKILL.md 文件的目录。Claude 会自动发现并使用它们。
Claude Code 中的自定义 Skills 基于文件系统,不需要 API 上传。
要了解更多信息,请参阅在 Claude Code 中使用 Skills。
Claude Agent SDK 通过基于文件系统的配置支持自定义 Skills。
自定义 Skills:在 .claude/skills/ 中将 Skills 创建为包含 SKILL.md 文件的目录。通过在 allowed_tools 配置中包含 "Skill" 来启用 Skills。
SDK 运行时会自动发现 Skills。
要了解更多信息,请参阅 Agent SDK 中的 Skills。
Claude.ai 支持预构建 Agent Skills 和自定义 Skills。
预构建 Agent Skills:当您创建文档时,这些 Skills 已在后台工作。Claude 无需任何设置即可使用它们。
自定义 Skills:通过设置 > 功能以 zip 文件形式上传您自己的 Skills。在启用代码执行的 Pro、Max、Team 和 Enterprise 计划中可用。自定义 Skills 是每个用户独立的;它们不在组织范围内共享,管理员也无法集中管理。
要了解更多关于在 Claude.ai 中使用 Skills 的信息,请参阅 Claude 帮助中心的以下资源:
每个 Skill 都需要一个带有 YAML 前置信息的 SKILL.md 文件:
---
name: your-skill-name
description: Brief description of what this Skill does and when to use it
---
# Your Skill Name
## Instructions
[Clear, step-by-step guidance for Claude to follow]
## Examples
[Concrete examples of using this Skill]必填字段:name 和 description
字段要求:
name:
description:
description 应包含 Skill 的功能以及 Claude 应在何时使用它。有关完整的编写指南,请参阅最佳实践指南。
我们强烈建议仅使用来自可信来源的 Skills:您自己创建的或从 Anthropic 获取的。Skills 通过指令和代码为 Claude 提供新能力,虽然这使它们功能强大,但也意味着恶意 Skill 可以指导 Claude 以不符合 Skill 声明目的的方式调用工具或执行代码。
如果您必须使用来自不受信任或未知来源的 Skill,请格外谨慎并在使用前彻底审查。根据 Claude 在执行 Skill 时拥有的访问权限,恶意 Skills 可能导致数据泄露、未授权系统访问或其他安全风险。
关键安全注意事项:
以下预构建 Agent Skills 可立即使用:
这些 Skills 可在 Claude API 和 claude.ai 上使用。请参阅快速入门教程开始在 API 中使用它们。
有关自定义 Skills 的完整示例,请参阅 Skills cookbook。
了解这些限制有助于您有效规划 Skills 部署。
自定义 Skills 不会跨平台同步。上传到一个平台的 Skills 不会自动在其他平台上可用:
您需要为每个想要使用 Skills 的平台分别管理和上传 Skills。
Skills 根据使用位置有不同的共享模型:
~/.claude/skills/)或基于项目(.claude/skills/);也可以通过 Claude Code 插件共享Claude.ai 目前不支持集中管理员管理或组织范围内的自定义 Skills 分发。
您的 skill 可用的确切运行时环境取决于您使用它的产品平台。
请规划您的 Skills 以在这些约束条件内工作。
创建您的第一个 Skill
通过 Claude API 使用 Skills
在 Claude Code 中创建和管理自定义 Skills
在 TypeScript 和 Python 中以编程方式使用 Skills
编写 Claude 能有效使用的 Skills
Was this page helpful?