前置知识

阅读本文前,建议先了解:


一、什么是Skill?

Skill(技能) 是Claude Code的可扩展能力模块——像给AI助手安装”插件”,让它具备特定领域的专业能力。

[!比喻] Skill像什么? 就像手机App——手机本身有基础功能(打电话、发短信),但通过安装App可以获得导航、拍照、支付等扩展能力。Claude Code有基础能力,通过Skill可以获得更专业的技能。

没有Skill时:
┌─────────────┐
│  Claude Code │ → 基础能力:对话、写作、分析
└─────────────┘

安装Skill后:
┌─────────────┐
│  Claude Code │ → 基础能力 + Skill扩展
│  + pdf Skill │   → 处理PDF文件
│  + docx Skill│   → 处理Word文档
│  + xlsx Skill│   → 处理Excel数据
└─────────────┘

本质:Skill是由Anthropic在2025年10月正式推出的概念,它是一个可移植的文件夹,包含可重用的指令、脚本和资源。创建一次,就可以跨Claude.ai、Claude Code和API使用。


二、Skill的核心原理

2.1 渐进式披露(Progressive Disclosure)

Skill采用元数据驱动的渐进式信息披露机制,这是它最重要的设计理念。

┌─────────────────────────────────────────────────────────────┐
│                    渐进式披露机制                             │
├─────────────────────────────────────────────────────────────┤
│  Level 1: SKILL.md frontmatter (元数据)                     │
│  ├── name: skill-name                                       │
│  └── description: "做什么 + 何时使用"                        │
│           ↓ 当触发时加载                                     │
│  Level 2: SKILL.md 主体内容 (详细指令)                       │
│  ├── 使用场景                                                │
│  ├── 具体步骤                                                │
│  └── 示例说明                                                │
│           ↓ 当需要时加载                                     │
│  Level 3: REFERENCE.md / scripts/ (补充资源)               │
└─────────────────────────────────────────────────────────────┘

优势

  • ✅ 避免上下文窗口溢出
  • ✅ 按需加载,减少Token消耗
  • ✅ AI根据任务动态决定加载哪些层级

2.2 代码执行环境

Skill在代码执行环境中运行,具备以下能力:

  • 📝 创建和编辑文件
  • ⚙️ 执行脚本和命令
  • 📁 访问本地文件系统
  • 🔗 与外部工具集成

2.3 版本管理

Skill支持版本控制,可以:

  • 创建新版本
  • 指定使用特定版本
  • 回滚到历史版本
# 使用指定版本
{
  "type": "anthropic",
  "skill_id": "my-skill",
  "version": "2.0.0"
}

三、Skill解决什么问题?

3.1 AI能力有限

❌ 基础Claude只能:
- 纯文本对话
- 基本的分析和写作
- 无法直接处理文件(PDF、Word等)

3.2 每次都要重复解释

❌ 没有Skill时:
用户A:帮我读PDF
用户B:帮我读PDF
用户C:帮我读PDF
→ 每次都要告诉Claude怎么读PDF

✅ 有Skill后:
用户A:帮我读PDF(触发pdf Skill)
用户B:帮我读PDF(触发pdf Skill)
→ Skill已经学会了读PDF的方法

3.3 无法复用专业流程

❌ 没有Skill时:
- 每次要用某个复杂流程,都要重新描述
- 无法保存和复用

✅ 有Skill后:
- 复杂的处理流程封装成Skill
- 一次创建,多次使用

四、Skill的核心优势

4.1 标准化复用

✅ Skill = "可复用的能力包"
- 封装了特定任务的完整工作流程
- 任何用户都可以直接使用
- 不需要重复描述操作方法

4.2 专业深度

✅ Skill = "领域专家"
- 每个Skill专注一个领域
- 深入掌握该领域的最佳实践
- 提供更专业的处理能力

4.3 简单调用

✅ 使用Skill非常简单:
用户说:"帮我处理这个PDF"
→ Claude自动调用pdf Skill
→ 完成专业处理
→ 返回结果

五、Skill的技术架构

┌──────────────────────────────────────────────────────────────┐
│                      Claude Code / API                        │
├──────────────────────────────────────────────────────────────┤
│  ┌─────────────┐   ┌─────────────┐   ┌─────────────────┐  │
│  │ Skill发现   │ → │ Skill加载   │ → │ 代码执行环境    │  │
│  │ (语义匹配)  │   │ (渐进式)    │   │ (沙箱容器)      │  │
│  └─────────────┘   └─────────────┘   └─────────────────┘  │
│        ↑                                    ↓                  │
│  ┌─────────────┐                      ┌─────────────┐     │
│  │ SKILL.md    │                      │ 文件/脚本   │     │
│  │ (元数据+指令)│                      │ 执行结果    │     │
│  └─────────────┘                      └─────────────┘     │
└──────────────────────────────────────────────────────────────┘

六、Skill与Tool的区别

对比维度Tool(工具)Skill(技能)
定位外部附加能力内在能力模块
使用方式通过Function Call调用自动触发或手动调用
复杂度单个函数完整工作流程
例子get_weather()PDF处理完整流程

简单理解

Tool = 单个”工具”(像一把螺丝刀) Skill = 一套”技能”(像完整的维修技术)

Skill内部可能使用多个Tool来完成复杂任务


七、常见Skill类型

7.1 文档处理类

📄 pdf Skill        → 读取、提取、合并PDF
📝 docx Skill       → 创建、编辑Word文档
📊 xlsx Skill       → 处理Excel电子表格
🖼️ pptx Skill      → 制作PPT演示文稿

7.2 编程开发类

💻 code-review     → 代码审查
🐛 debugging       → 调试助手
📦 package         → 包管理

7.3 知识管理类

📚 obsidian-markdown → Obsidian笔记
🗃️ obsidian-bases    → Obsidian数据库
📋 obsidian-cli      → Obsidian命令操作
🗺️ json-canvas       → Canvas画布

7.4 工具类

🔍 defuddle         → 网页内容提取
📖 literature-search → 文献检索
🎨 frontend-design   → 前端界面设计
📊 claude-api       → Claude API开发

八、谁可以使用Skill?

平台支持情况
Claude Code✅ 原生支持
Claude Desktop需配置
API✅ 支持(通过container参数)

九、创建Skill的最佳实践

检查项要求示例
命名kebab-case,无空格无大写project-memory, financial-analysis
description包含WHAT和WHEN”创建品牌报告;当用户请求标准化报告时使用”
示例提供输入输出对至少2个具体示例
错误处理说明异常情况”如果缺少X,提示用户提供”
结构化使用标题层级
无XML标签避免使用<>使用markdown格式

十、总结

  • Skill = Claude Code的可扩展能力模块
  • 解决的问题:能力有限、重复描述、无法复用
  • 核心优势:标准化复用、专业深度、简单调用
  • 核心原理:渐进式披露、代码执行环境、版本管理
  • 与Tool的关系:Skill可以包含多个Tool

十一、延伸阅读