14. Claude Skills


image-20260509173046114

Skills 是 Claude 的能力扩展模块,可以理解为"专业技能包"。每个 Skill 是一个文件夹,包含一份说明文件,以及可选的脚本、模板和参考资料。它们为 Claude 提供特定领域的工作流程、规范和资源,让 Claude 从通用助手变成特定任务的专家。

Skill 结构

pdf-processor/                     # 目录名
├── SKILL.md                       # 必需:技能说明文件
├── scripts/                       # 可选:可执行脚本
│   └── extract_text.py         
├── templates/                     # 可选:模板文件
│   └── summary_report.docx       
├── references/                    # 可选:参考资料
│   └── pypdf_api_guide.md        
└── assets/                        # 可选:静态资源
    └── company_logo.png           

各部分的作用

组成部分是否必需作用
SKILL.md必需技能入口文件,包含元数据(namedescription)与执行指令;每个 Skill 只能有一个
scripts/可选可执行脚本目录,可包含多个脚本文件,用于封装格式转换、数据处理等程序逻辑
templates/可选模板目录,可包含多个模板文件,作为生成内容的起点或骨架,如 Word 母版、PPT 版式、代码骨架
references/可选参考资料目录,可包含多份文档,供 Claude 按需查阅,如 API 说明、规范手册、示例数据
assets/可选静态资源目录,可包含多个资源文件,会被嵌入到输出结果中,如图片、Logo、字体、配色文件

提示:SKILL.md 加上前三个目录是常见配置,assets/ 仅在输出结果中需要嵌入预设素材(如公司 Logo、品牌字体)时使用。

Skill 的工作原理

Skill 采用按需加载机制:Claude 不会一次性读取所有内容,而是分三个阶段逐步加载,确保只在真正需要时才占用上下文空间。

三层加载机制

层级加载内容加载时机通俗理解
第一层:元数据每个 Skill 的名称和一段简短描述会话一开始就加载相当于"目录",让 Claude 知道有哪些技能可用
第二层:执行指令SKILL.md 的完整内容,包含操作步骤和注意事项当某个 Skill 与用户任务匹配时加载相当于"打开说明书",了解具体怎么做
第三层:捆绑资源scripts/templates/references/assets/ 中的文件执行过程中用到时才读取相当于"翻阅资料、拿出工具、取用素材",用什么取什么

完整流程

  1. 会话启动: Claude 读取所有 Skills 的简介(名称 + 描述),形成一份"能力清单",但暂不加载详细内容。
  2. 用户提出请求: Claude 对照清单中的每条描述,判断哪个 Skill 最适合当前任务。例如:用户说"帮我做一份 PPT",Claude 从清单中识别出 pptx Skill 的描述匹配,决定调用它。
  3. 加载完整说明: Claude 打开匹配的 SKILL.md,读取完整的操作指令、规范和资源引用列表。
  4. 按需调用资源: 执行任务过程中,需要脚本就运行 scripts/ 里的对应文件,需要模板就读取 templates/ 里的文件,需要查规范就翻阅 references/,需要嵌入图片或字体就取用 assets/ 里的素材。用不到的资源始终不会被加载。

分层加载的好处

好处说明
节省上下文即使预置几十个 Skills,启动时也只占用极少空间
响应更聚焦只加载相关内容,避免无关信息干扰判断
易于扩展新增 Skill 只需添加一个文件夹,不影响现有能力

内置 Skills 一览

Claude 内置了一批官方 Skills,常见的包括:

docx - Word 文档处理

用途:创建、读取、编辑 Word 文档

支持功能:

  • 生成带格式的 Word 文档(标题、表格、目录)
  • 读取和提取 .docx 文件内容
  • 修改现有文档(替换文字、插入图片)
  • 处理批注、修订记录

使用示例:

"帮我生成一份季度报告 Word 文档"
"读取这个 .docx 文件并提取所有表格"
"在这份合同里把'甲方'替换为公司名"

pptx - PowerPoint 演示文稿处理

用途:创建、读取、编辑 PowerPoint 演示文稿

支持功能:

  • 生成多页幻灯片
  • 读取和提取 .pptx 内容
  • 编辑现有演示文稿
  • 处理母版、布局、备注

使用示例:

"做一个产品介绍的 PPT,10 页"
"提取这份演示文稿里所有的文字内容"
"基于这个模板生成季度汇报幻灯片"

xlsx - Excel 电子表格处理

用途:创建、读取、编辑 Excel 电子表格

支持功能:

  • 生成带公式和图表的电子表格
  • 读取和分析 .xlsx / .csv 数据
  • 清洗、整理杂乱的表格数据
  • 添加格式、条件样式、数据透视

使用示例:

"把这份 CSV 数据整理成规范的 Excel"
"创建一个销售数据分析表,带图表"
"在这个表格里加一列计算同比增长率"

pdf - PDF 文档处理

用途:创建 PDF、填写表单、合并/拆分、加密等操作

支持功能:

  • 生成新的 PDF 文件
  • 合并、拆分、旋转 PDF 页面
  • 填写 PDF 表单
  • 添加水印、加密保护

使用示例:

"把这几个 PDF 合并成一个文件"
"给这份 PDF 加上'机密'水印"
"填写这份 PDF 申请表"

pdf-reading - PDF 内容读取

用途:读取和提取 PDF 内容

支持功能:

  • 提取 PDF 中的文本
  • 识别和提取表格数据
  • 提取 PDF 内嵌的图片
  • 处理扫描版 PDF(OCR)

使用示例:

"总结这份 PDF 报告的核心内容"
"提取这份 PDF 里所有的表格数据"
"这份扫描版合同写了什么"

frontend-design - 前端设计

用途:生成高质量的前端界面与组件代码

支持功能:

  • 网页、着陆页设计
  • React 组件开发
  • 仪表盘设计
  • UI 美化和优化

使用示例:

"帮我设计一个产品着陆页"
"创建一个数据仪表盘组件"
"美化这个 HTML 页面的样式"

file-reading - 文件读取路由

用途:根据文件类型路由到合适的读取方式

支持功能:

  • 识别上传文件的类型
  • 选择正确的读取工具(PDF、Word、Excel 等)
  • 处理压缩包和电子书格式
  • 避免对二进制文件误用文本读取

使用示例:

"帮我看下我刚上传的文件"
"分析这个压缩包里的内容"
"读一下这本电子书的目录"

product-self-knowledge - Anthropic 产品知识

用途:查询 Anthropic 产品的准确信息

支持功能:

  • 查询 Claude Code 的安装与配置
  • 查询 Claude API 的功能和限制
  • 查询 Claude.ai 各订阅版本的差异
  • 提供准确的定价、模型、功能信息

使用示例:

"Claude Code 怎么安装"
"Claude API 的 tool use 怎么用"
"Pro 和 Team 版本有什么区别"

skill-creator - Claude 技能创建器

用途:创建、迭代、优化 skill

支持功能:

  • 编写 SKILL.md 及配套资源结构

  • 构建测试集,量化评估 skill 效果

  • 优化触发描述,降低漏触发与误触发

  • 打包为可分发的 .skill 文件

使用示例:

"我想做一个整理会议纪要的 skill"
"帮我优化这个 skill 的触发率"
"把这个 skill 打包成 .skill 文件"

如何使用内置 Skills

自动触发

大多数情况下,只需要直接描述任务,Claude 会自动识别并使用相应的 Skill。

示例对话:

用户:

帮我创建一份季度报告的 Word 文档,包含销售数据表格和趋势图

Claude 会自动:

  1. 识别到需要使用 docx Skill
  2. 读取 SKILL.md 了解最佳实践
  3. 使用 docx-js 库创建专业文档

关键触发词

以下关键词会触发相应的 Skills:

Skill触发词示例
docxWord 文档、.docx、创建文档、修订模式
pptxPPT、演示文稿、幻灯片、PowerPoint
xlsxExcel、电子表格、.xlsx、公式、数据分析
pdfPDF、合并 PDF、填写表单、提取文本
frontend-design网页设计、组件、着陆页、仪表盘

最佳实践

  1. 明确说明输出要求:比如"创建一份包含目录的 Word 文档"
  2. 提供具体内容:内容越详细,输出质量越高
  3. 说明格式偏好:如果有特定的字体、颜色、布局要求,提前说明

手动创建 Skill

Skill 的文件结构

my-skill/
├── SKILL.md              # 必需:主说明文件
├── scripts/              # 可选:可执行脚本
│   └── process.py
├── references/           # 可选:参考文档
│   └── api-docs.md
└── assets/               # 可选:资源文件
    └── template.html

第一步:创建 SKILL.md

SKILL.md 是 Skill 的核心,包含两部分:

1. YAML 前言(必需)

---
name: my-skill
description: 'Skill 的功能描述。当 Claude 需要做 X、Y、Z 时使用此 Skill'
---

重要提示:description 是触发 Skill 的关键,要清晰说明:

  • Skill 能做什么
  • 在什么情况下应该使用

2. Markdown 正文(必需)

# My Skill

## 概述

简要说明这个 Skill 的用途...

## 快速开始

最常用的操作方式...

## 详细指南

更多细节...

第二步:添加捆绑资源(可选)

scripts/ - 脚本文件

适用场景:

  • 需要重复执行的代码
  • 需要确定性结果的操作
# scripts/rotate_pdf.py
from pypdf import PdfReader, PdfWriter

def rotate_pdf(input_path, output_path, degrees=90):
    reader = PdfReader(input_path)
    writer = PdfWriter()
    for page in reader.pages:
        page.rotate(degrees)
        writer.add_page(page)
    with open(output_path, "wb") as f:
        writer.write(f)

references/ - 参考文档

适用场景:

  • 详细的 API 文档
  • 数据库 schema
  • 公司政策和规范
# references/schema.md

## 用户表 (users)

| 字段 | 类型    | 说明   |
| ---- | ------- | ------ |
| id   | INT     | 主键   |
| name | VARCHAR | 用户名 |

assets/ - 资源文件

适用场景:

  • 模板文件
  • 图片、图标
  • 字体文件

第三步:设计原则

1. 保持简洁

默认假设:Claude 已经很聪明了

只添加 Claude 不知道的信息,删除显而易见的解释。

不好的写法:

## 什么是 PDF

PDF 是一种文档格式,全称是 Portable Document Format...
(Claude 已经知道这些)

好的写法:

## PDF 表单填写

使用 fill_form.py 脚本,参数说明:

- input: 输入 PDF 路径
- output: 输出路径
- data: JSON 格式的表单数据

2. 使用示例而非解释

不好的写法:

你需要先导入库,然后创建一个实例,接着调用方法...

好的写法:

from docx import Document
doc = Document()
doc.add_paragraph("Hello World")
doc.save("output.docx")

3. 设置适当的自由度

自由度何时使用示例
(文字说明)多种方案都可行"选择合适的图表类型展示数据"
(伪代码/带参数脚本)有偏好模式但允许变化"使用以下模板,根据需要调整颜色"
(具体脚本)操作敏感,必须精确"运行 validate.py 检查输出"

完整示例:创建一个 Brand Guidelines Skill

---
name: brand-guidelines
description: "公司品牌规范指南。当 Claude 需要创建符合公司品牌规范的设计、文档或内容时使用。"
---
# Brand Guidelines

## 颜色规范

| 用途 | 颜色 | Hex |
|------|------|-----|
| 主色 | 深蓝 | #1A365D |
| 强调色 | 亮橙 | #F6AD55 |
| 背景 | 浅灰 | #F7FAFC |

## 字体规范

- 标题:Inter Bold, 24px
- 正文:Inter Regular, 16px
- 代码:JetBrains Mono, 14px

## Logo 使用

Logo 文件位置:`assets/logo.png`

使用规则:
1. 最小尺寸:32x32px
2. 周围留白:至少 logo 宽度的 10%
3. 不可变形、不可改色

## 文档模板

使用 `assets/template.docx` 作为基础模板。

使用 Claude 创建 Skill

Claude 支持自主创建 Skill 。只需用自然语言描述需求即可启动创建流程,Claude 将依次完成需求梳理、结构起草、用例测试与文件打包,最终交付可直接安装的 .skill 文件。

第一步:提出需求

向 Claude 说明要创建的技能。

第二步:回答 Claude 的问题

image-20260509191409434

Claude 会根据实际需求提出问题进行确认。

第三步:提供测试反馈

image-20260509191713084

Claude 在回答问题后会生成 SKILL.md 草稿。建议使用若干真实场景对其进行测试,并根据测试结果反馈给 Claude 进行迭代优化。

第四步:下载文件

满意后让 Claude 打包成 .skill 文件,下载后即可安装使用。

创建技巧

描述触发场景时多列几个同义说法,Claude 才知道在不同表达下都该调用技能。提供 1-2 个具体例子(输入什么、希望输出什么)比抽象描述更有效。如有现成的工作流或文档,直接发给 Claude 作为参考。

Skill 开发工作流

1. 理解需求

先明确 Skill 要解决什么问题:

  • 这个 Skill 支持哪些功能?
  • 用户会怎么描述这些任务?
  • 有哪些具体的使用场景?

2. 规划资源

分析每个场景,确定需要:

  • 哪些可复用脚本?
  • 哪些参考文档?
  • 哪些模板或素材?

3. 编写 SKILL.md

遵循原则:

  • 描述要完整(用于触发)
  • 正文要简洁(节省 context)
  • 示例胜过解释

4. 测试迭代

使用 Skill 完成实际任务,观察:

  • 是否正确触发?
  • 执行是否顺畅?
  • 输出质量如何?

根据反馈持续优化。

常见问题

Skill 没有被触发怎么办?

检查 description 是否包含了用户可能使用的关键词。所有触发条件都应该在 description 中说明,因为正文是触发后才加载的。

Q: SKILL.md 太长怎么办?

拆分内容到 references/ 目录,在 SKILL.md 中引用:

## 高级功能

详见 [ADVANCED.md](references/ADVANCED.md)

Q: 脚本和参考文档有什么区别?

  • 脚本(scripts/):可执行代码,Claude 可以直接运行
  • 参考文档(references/):信息性内容,Claude 会阅读后理解

Q: 如何打包分享 Skill?

Skills 可以打包为 .skill 文件(本质是 zip),方便分享和分发。

评论

0
还没有评论,来写第一条吧