Claude Agent Skills 介绍
Claude Skills 是 Anthropic 10月份推出的一项功能,允许 Claude AI 通过加载专业化的"技能包"来提升特定任务的执行能力。
为什么需要 Skills?
假设我们有个流程需要非常长的 Prompt,里面有流程步骤、逻辑判断、注意事项全部等等。这就存在着两个问题
- 每次要使用这个流程的时候,就每次要把这个 Prompt 复制给 AI
- Prompt 的内容太长,AI 可能只需要这里面的部分信息,但依旧需要消耗了很多token
Skills 就能解决这两个问题。
什么是 Skills?
官方定义:
Agent Skills 是扩展 Claude 功能的模块化能力。每个 Skill 包含指令、元数据和可选资源(脚本、模板),Claude 在相关时会自动使用这些资源
Skill 的结构
my-skill/
├── SKILL.md # 核心文件:定义名称、描述、触发条件、执行步骤
├── templates/ # (可选) 输出模板
├── examples/ # (可选) 示例文件
├── scripts/ # (可选) 可执行代码
└── resources/ # (可选) 参考文档
SKILL.md 文件结构
- 名称 (Name):Skill 的标识
- 描述 (Description): Claude 根据描述判断何时触发此 Skill 最重要!
- 工具白名单 (allowed-tools):可选,限制 Skill 可使用的工具
- 触发条件:明确说明什么场景下应该使用
- 执行步骤:分几步走,每步做什么
模板:
---
name: your-skill-name
description: 简要描述此 Skill 的功能以及何时使用它
---
## 指令
[Claude 要遵循的清晰、分步指导]
## 步骤
## 示例
[使用此 Skill 的具体示例]
Skills 的工作原理
加载机制
- 启动时:Claude 只扫描所有的 Skill 的元数据(name + description)
- 匹配时:当用户提出请求时,当 Claude 判断某 Skill 与当前任务相关,才加载完整的
SKILL.md - 执行时:如果 Skill 包含代码或资源文件,仅在需要时才加载
触发机制
- 自动触发:Claude 根据对话上下文和 Skill 的
description自动匹配 - 显式调用:用户可以直接说"用 xxx Skill 帮我处理"
示例:加载 PDF 处理 skill
skill 文件夹:
pdf/
├── SKILL.md # 主要说明(触发时加载)
├── FORMS.md # 表单填充指南(根据需要加载)
├── reference.md # API 参考(根据需要加载)
├── examples.md # 使用示例(根据需要加载)
└── scripts/
├── analyze_form.py # 实用脚本(执行,不加载)
├── fill_form.py # 表单填充脚本
└── validate.py # 验证脚本
SKILL.md:
---
name: pdf-processing
description: 从 PDF 文件中提取文本和表格、填充表单、合并文档。在处理 PDF 文件或用户提及 PDF、表单或文档提取时使用。
---
# PDF 处理
## 快速开始
使用 pdfplumber 提取文本:
```python
import pdfplumber
with pdfplumber.open("file.pdf") as pdf:
text = pdf.pages[0].extract_text()
## 高级功能
**表单填充**:参阅 [FORMS.md](FORMS.md) 获取完整指南
**API 参考**:参阅 [REFERENCE.md](REFERENCE.md) 获取所有方法
**示例**:参阅 [EXAMPLES.md](EXAMPLES.md) 获取常见模式
FORMS.md :
## PDF 表单填充工作流
复制此清单并在完成项目时检查:
任务进度:
- [ ] 步骤 1:分析表单(运行 analyze_form.py)
- [ ] 步骤 2:创建字段映射(编辑 fields.json)
- [ ] 步骤 3:验证映射(运行 validate_fields.py)
- [ ] 步骤 4:填充表单(运行 fill_form.py)
- [ ] 步骤 5:验证输出(运行 verify_output.py)
**步骤 1:分析表单**
运行:`python scripts/analyze_form.py input.pdf`
这提取表单字段及其位置,保存到 `fields.json`。
**步骤 2:创建字段映射**
编辑 `fields.json` 为每个字段添加值。
**步骤 3:验证映射**
运行:`python scripts/validate_fields.py fields.json`
在继续之前修复任何验证错误。
**步骤 4:填充表单**
运行:`python scripts/fill_form.py input.pdf fields.json output.pdf`
**步骤 5:验证输出**
运行:`python scripts/verify_output.py output.pdf`
如果验证失败,返回步骤 2。
## 高级功能
**表单填充**:参阅 [FORMS.md](FORMS.md) 获取完整指南
**API 参考**:参阅 [REFERENCE.md](REFERENCE.md) 获取所有方法
**示例**:参阅 [EXAMPLES.md](EXAMPLES.md) 获取常见模式
如何安装和使用 Skills
安装方式
方式一:Claude Web / Desktop(上传 ZIP)
- 将 Skill 文件夹打包为
.skill扩展名的 ZIP 文件 - 进入 Settings → Capabilities → 开启 Code execution
- 点击 “Upload skill” 上传
方式二:Claude Code
# 个人 Skills(跨所有项目)
~/.claude/skills/
# 项目 Skills(团队共享)
./your-project/.claude/skills/
方式三:通过插件市场安装
# 添加官方插件市场
/plugin marketplace add anthropics/skills
# 安装技能插件
/plugin install document-skills@anthropic-agent-skills
官方的 Github Skills 地址:https://github.com/anthropics/skills/tree/main/skills
步骤:
输入 /plugin marketplace add https://github.com/anthropics/skills 直接安装 官方提供的 skills

或者直接安装某个skills:
/plugin install document-skills@anthropics-skills

如何创建 Skills
方式一:直接让 Claude 帮助创建
帮我创建一个 Skill,目标是...
或者
用 skill-creator 帮我创建一个 Skill
方式二:手动创建
- 创建文件夹
~/.claude/skills/skill-name/ - 编写
SKILL.md文件 - (可选)添加模板、示例、脚本等资源
API 中使用
上传自定义 skills
import anthropic
client = anthropic.Anthropic()
# 选项 1:使用 files_from_dir 助手(仅 Python,推荐)
from anthropic.lib import files_from_dir
skill = client.beta.skills.create(
display_title="Financial Analysis",
files=files_from_dir("/path/to/financial_analysis_skill"),
betas=["skills-2025-10-02"]
)
# 选项 2:使用 zip 文件
skill = client.beta.skills.create(
display_title="Financial Analysis",
files=[("skill.zip", open("financial_analysis_skill.zip", "rb"))],
betas=["skills-2025-10-02"]
)
# 选项 3:使用文件元组(文件名、文件内容、mime 类型)
skill = client.beta.skills.create(
display_title="Financial Analysis",
files=[
("financial_skill/SKILL.md", open("financial_skill/SKILL.md", "rb"), "text/markdown"),
("financial_skill/analyze.py", open("financial_skill/analyze.py", "rb"), "text/x-python"),
],
betas=["skills-2025-10-02"]
)
print(f"Created skill: {skill.id}")
print(f"Latest version: {skill.latest_version}")
在API 中调用
response = client.beta.messages.create(
model="claude-sonnet-4-5-20250929",
max_tokens=4096,
betas=["code-execution-2025-08-25", "skills-2025-10-02"], // 要先开启这两个
container={
"skills": [
{
"type": "anthropic",
"skill_id": "xlsx",
"version": "latest"
},
{
"type": "anthropic",
"skill_id": "pptx",
"version": "latest"
},
{
"type": "custom",
"skill_id": "skill_01AbCdEfGhIjKlMnOpQrStUv",
"version": "latest"
}
]
},
messages=[{
"role": "user",
"content": "Analyze sales data and create a presentation"
}],
tools=[{
"type": "code_execution_20250825",
"name": "code_execution"
}]
)
Skill 的 局限性
运行时环境约束
Skills 在代码执行容器中运行,具有以下限制:
- 无网络访问:Skills 无法进行外部 API 调用或访问互联网
- 无运行时包安装:仅预安装的包可用,也就是必须先对 skill 进行加载才能使用。
- 仅预配置的依赖项,就是 Skills 在执行代码时,是运行在受限的代码执行容器中,你不能临时安装新包(比如执行 pip install xxx 或 npm install xxx)
触发机制依赖 Claude 理解
- Skills 是根据
description自动触发的 - 如果 description 写得不够清楚,可能不会被触发
- 或者多个 Skills description 重叠,可能触发错误
Skills 和 MCP
Skills 本质上是把 Prompt 或者工作流程 封装为可组合、可重用、可共享的模块,而 MCP 是一个标准协议,让 AI 模型能够以统一的方式连接和使用各种外部数据源和工具。
Skills 和 MCP 可以协同工作,比如可以使用 MCP 从 GitHub 或公司的数据库中获取实时数据,然后利用 Skill 来根据你定下的流程来分析这些数据做对应的操作。
总结
Skills 的特点
渐进式披露: 一开始只会加载所有的 skills 的元数据,也就是 name 和 describe 字段,只有匹配到对应的任务时候才会加载完整的 skill.md 内容,再根据内容去加载需要的额外的资源
可组合: 多个 Skills 可像积木一样组合,Claude 自动判断需要哪些
可复用: 一次构建,跨对话、跨项目使用
可移植: 相同格式在 Claude Web、Claude Code、API 中通用,可通过 Git 版本控制
Skill 的结构
-
skill 就是一个文件夹,必须有核心文件 SKILL.md 和一些其他可选的资源文件
-
SKILL.md 必须有 skill name 和 desc ,Claude 就是这两个字段来判断什么时候调用这个 Skill 的。剩下的就是写清楚,这个 Skill 要解决什么问题,逻辑判断、这个流程需要那些步骤,每一步需要用到哪些工具、哪些子能力
-
一些资源文件(可选)可以包含一些固定的模板、参考文档、示例 或者 脚本代码
资源与参考
- 官方文档: https://platform.claude.com/docs/zh-CN/agents-and-tools/agent-skills/overview
- Blog :https://claude.com/blog/skills-explained
1566

被折叠的 条评论
为什么被折叠?



