编辑
2026-01-14
后端
00
请注意,本文编写于 176 天前,最后修改于 108 天前,其中某些信息可能已经过时。

目录

背景
什么是Claude Skills
技术原理:渐进式披露
三级上下文加载
上下文窗口变化示例
Skills与代码执行
为什么需要代码执行
示例:PDF表单提取
Skills与MCP:技术对比
互补使用
官方Skills仓库
仓库结构
核心文档Skills
安装方式
Claude Code
Claude.ai
Claude API
创建自定义Skill
基本结构
前置元数据要求
安全限制
最佳实践
官方推荐的五种Skill类型
1. 文档处理型
2. 数据分析型
3. 品牌规范型
4. 工作流自动化型
5. 代码助手型
实际效果
团队协作
参考资料
总结

背景

随着大语言模型能力的不断提升,我们已经能够构建通用的AI Agent,它们可以与完整的计算环境交互。Claude Code就是典型例子,它能够通过本地代码执行和文件系统完成跨领域的复杂任务。

然而,当这些Agent变得更强大时,我们需要一种更可组合、可扩展、可移植的方式,来为它们提供特定领域的专业知识。这促使Anthropic创造了Agent Skills——一种组织化的指令、脚本和资源文件夹,Agent可以动态发现和加载它们,以在特定任务上表现更好。

什么是Claude Skills

Skills是包含SKILL.md文本文件(带有YAML前置元数据)以及任何相关脚本、文档或资源的文件夹。每个Skill"打包"一个特定的工作流程或组织指南。

简单来说,Skills就是:

my-skill/ ├── SKILL.md # 核心指令文件 ├── reference.md # 可选:参考文档 ├── scripts/ # 可选:可执行脚本 │ └── analyze.py └── templates/ # 可选:模板文件 └── output.tmpl

与一次性提示不同,Skill明确告诉Claude如何处理一类任务,这样用户就不必每次都重新解释。

技术原理:渐进式披露

Skills的核心设计原则是渐进式披露(Progressive Disclosure)。这是使Agent Skills灵活且可扩展的关键。

三级上下文加载

  1. 第一级:元数据预加载

    • 在会话启动时,Agent仅预加载每个已安装Skill的name和description
    • 这只消耗每个Skill几十个token
    • Claude可以识别哪些Skill可能与用户请求相关,而不会用所有细节淹没提示
  2. 第二级:完整SKILL.md加载

    • 当Claude检测到某个Skill相关时(基于其description或嵌入的示例)
    • 它会将完整的指令和任何链接的文件加载到上下文中
  3. 第三级及以上:链接文件按需加载

    • 对于复杂的Skill,可以将内容拆分到多个文件
    • Claude只在需要时才读取这些额外文件

上下文窗口变化示例

┌─────────────────────────────────────────────────────────┐ │ 初始状态 │ │ ┌─────────────────────────────────────────────────┐ │ │ │ 系统提示 + 所有Skill元数据 + 用户消息 │ │ │ └─────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────┐ │ 触发PDF Skill │ │ ┌─────────────────────────────────────────────────┐ │ │ │ 系统提示 + Skill元数据 + pdf/SKILL.md内容 │ │ │ └─────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────┐ │ 按需加载forms.md │ │ ┌─────────────────────────────────────────────────┐ │ │ │ 系统提示 + Skill元数据 + SKILL.md + forms.md │ │ │ └─────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────┘

这种设计意味着Skill可以捆绑的上下文量实际上是无界的

Skills与代码执行

Skills不仅仅是静态文本,它们还可以包含可执行脚本。这解锁了强大的用例:

为什么需要代码执行

  1. 效率考虑:通过token生成来排序列表比简单运行排序算法要昂贵得多
  2. 确定性可靠性:许多应用需要只有代码才能提供的确定性保证
  3. 本地数据处理:保持数据在本地执行环境中

示例:PDF表单提取

python
# extract_form_fields.py import fitz # PyMuPDF def extract_form_fields(pdf_path: str) -> dict: """提取PDF中的所有表单字段""" doc = fitz.open(pdf_path) fields = {} for page in doc: for widget in page.widgets(): fields[widget.field_name] = { 'type': widget.field_type_string, 'value': widget.field_value, 'rect': widget.rect } return fields

Claude可以直接运行这个脚本,而无需将脚本或PDF加载到上下文中。

Skills与MCP:技术对比

维度Claude SkillsModel Context Protocol
核心目的嵌入专业知识,精简提示连接外部工具和数据源
架构文件夹 + SKILL.md客户端-服务器协议
触发方式基于description自动匹配通过tool调用显式触发
上下文管理渐进式披露,按需加载每次调用返回完整结果
可移植性跨Claude平台(Claude.ai、Claude Code、API)跨AI平台(Claude、ChatGPT等)
创建复杂度简单,只需Markdown需要实现JSON-RPC服务器
适用场景内部工作流、文档处理、品牌规范外部API集成、数据库访问

互补使用

在实际应用中,两者可以互补:

  • MCP:从GitHub、数据库、CI系统获取外部数据
  • Skills:解释数据、应用合规逻辑、生成标准化输出
用户请求 → MCP获取数据 → Skill处理数据 → 输出结果

官方Skills仓库

Anthropic在GitHub上维护了官方Skills仓库:https://github.com/anthropics/skills

仓库结构

skills/ ├── skills/ # 示例Skills │ ├── creative/ # 创意与设计 │ ├── development/ # 开发与技术 │ ├── enterprise/ # 企业与通信 │ └── document-skills/ # 文档处理 ├── spec/ # Agent Skills规范 └── template/ # Skill模板

核心文档Skills

仓库中包含了Claude文档能力的底层实现:

  • docx:Word文档创建与编辑
  • pdf:PDF处理与表单填写
  • pptx:PowerPoint演示文稿生成
  • xlsx:Excel电子表格处理

这些是生产级参考实现,展示了复杂Skill的设计模式。

安装方式

Claude Code

bash
# 注册为插件市场 /plugin marketplace add anthropics/skills # 直接安装特定Skill /plugin install document-skills@anthropic-agent-skills /plugin install example-skills@anthropic-agent-skills

Claude.ai

付费计划的用户可以直接使用仓库中的示例Skills,也可以上传自定义Skills。

Claude API

通过/v1/skills端点上传和管理Skills,每个请求最多支持8个Skills。

创建自定义Skill

基本结构

markdown
--- name: my-skill-name description: 清晰描述这个Skill做什么以及何时使用 --- # My Skill Name [添加Claude在此Skill激活时将遵循的指令] ## 示例 - 示例用法1 - 示例用法2 ## 指南 - 指南1 - 指南2

前置元数据要求

只需要两个字段:

  • name:Skill的唯一标识符(小写,用连字符代替空格)
  • description:完整描述Skill做什么以及何时使用

安全限制

  • 不能使用<>符号(防止注入攻击)
  • 名字不能包含"claude"或"anthropic"(保留词)

最佳实践

  1. 从评估开始

    • 在代表性任务上运行Agent,观察它们在哪里挣扎
    • 然后增量构建Skills来解决这些不足
  2. 为规模而结构化

    • 当SKILL.md变得难以管理时,将内容拆分到单独文件
    • 如果某些上下文互斥或很少一起使用,保持路径分离
  3. 从Claude的视角思考

    • 监控Claude在实际场景中如何使用你的Skill
    • 特别注意name和description,Claude用它们决定是否触发Skill
  4. 与Claude迭代

    • 完成任务后,让Claude捕获成功方法和常见错误到Skill中
    • 如果偏离轨道,让Claude自我反思哪里出了问题

官方推荐的五种Skill类型

根据大量案例,Anthropic总结了最常见的Skill类型:

1. 文档处理型

处理特定格式的文档,如PDF表单填写、Word文档格式化。

2. 数据分析型

按照组织特定工作流程分析数据。

3. 品牌规范型

确保输出符合公司品牌指南。

4. 工作流自动化型

自动化重复性业务流程。

5. 代码助手型

提供特定技术栈或框架的专业指导。

实际效果

官方数据显示,使用Skills后:

  • 工具调用次数减少 50%
  • Token消耗降低 一半
  • API错误率归零

团队协作

Skills支持团队共享:

  1. 将Skills存储在项目的.claude/skills/目录中
  2. 提交到git仓库
  3. 克隆仓库的团队成员自动获得访问权限
project/ ├── .claude/ │ └── skills/ │ ├── brand-guidelines/ │ └── code-review-standards/ └── src/

参考资料

总结

Claude Skills代表了AI Agent专业化的一条重要路径。通过将领域知识工程化为可组合的资源,我们可以:

  • 降低成本:通过渐进式披露减少token消耗
  • 提高可靠性:通过确定性代码执行保证一致结果
  • 促进协作:通过文件系统实现团队知识共享
  • 保持灵活:通过模块化设计支持快速迭代

随着Agent Skills成为开放标准,我们有望建立一个丰富的Skill生态系统,让每个组织都能轻松为其AI Agent配备专业技能。

本文作者:yowayimono

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!