为什么使用 Skills(下)

上一课我们学会了创建 Skill 并在 Claude 中使用。这一课深入探讨 Skills 的底层机制——开放标准、渐进式披露,以及它们在 Agent 生态中的定位。


Skills 是开放标准

与 MCP(Model Context Protocol)类似,Skills 本身也是一个开放标准——拥有明确的规范格式,可以跨平台使用。

虽然 Skills 最初由 Anthropic 创建,但现在已被多个 AI 产品采用:

  • Claude Code
  • Claude.ai / Claude Desktop
  • Claude Agent SDK / Claude API
  • CodexGemini CLIOpen Code

构建一次,部署到任何支持 Skills 的 Agent 产品。


Skills 不只是文本文件

在上一课中,我们的 Skill 引用了额外的 Markdown 文档。但 Skills 的能力远不止于此——它们还可以包含可执行脚本

以 PDF 处理 Skill 为例,它需要:

  • 将 PDF 转换为图片
  • 提取表单字段信息
  • 用注释填充 PDF 表单

这些操作都需要执行代码,而这些脚本可以直接从 SKILL.md 中引用。

Skills 还可以包含图标、图片和其他资产,用于创建自定义样式和品牌。


Agent 范式的演进

过去:单一用途 Agent

传统方式是为每个领域构建专用 Agent——编码 Agent、研究 Agent、金融 Agent、营销 Agent。每个都有自己的工具集和上下文。

现在:通用 Agent + Skills

随着实践深入,人们发现这些 Agent 底层需要的只是简单的脚手架——Bash 和文件系统,用于查找、编辑、修改和执行任务。

这种更简单的 Agent 更容易评估、理解和扩展。但它们缺少的是领域专业知识和上下文

Skills 正是为此而生——它们为通用 Agent 提供:

  • 程序性知识(Procedural Knowledge)——具体的操作步骤
  • 用户/团队/公司特定的上下文——按需加载

Skills 解决的三大问题

1. 领域专业知识

Claude 知道如何做数据分析、法律审查,但不知道你的团队具体怎么做。

类别示例
品牌规范品牌指南与模板、字体/颜色/Logo
流程规范法律审查流程、数据分析方法论
公司标准内部编码规范、报告格式要求

2. 可重复工作流

在非确定性系统中,确保输出一致性是个挑战。Skills 通过明确的步骤和指令,让 Agent 的行为更可预测:

类别示例
定期任务每周营销活动复盘
客户准备客户拜访前的资料整理
商务分析季度业务回顾报告

3. 新能力扩展

Skills 可以赋予 Agent 它原本不具备的能力:

类别示例
文档生成创建 PowerPoint 演示文稿
数据导出生成 Excel 表格、PDF 报告
代码执行构建 MCP Server、运行分析脚本

没有 Skills vs 有 Skills

对比维度没有 Skills有 Skills
指令输入每次手动描述一次打包,反复使用
参考文件每次全部附上按需渐进加载
输出一致性手动维护由 Skill 指令保证
跨平台不可移植开放标准,一处构建多处使用

可移植性(Portable)

同一个 Skill 可以在不同环境中使用,无需修改:

  • Claude.ai / Claude Desktop
  • Claude Code
  • Claude Agent SDK
  • Claude API
  • Codex、Gemini CLI 等第三方平台

可组合性(Composable)

Skills 可以互相组合,构建复杂工作流。例如:

  1. 品牌指南 Skill —— 提供字体、颜色、Logo 规范
  2. PowerPoint Skill —— 创建幻灯片
  3. BigQuery Skill —— 提供营销相关数据库 Schema
  4. 营销分析 Skill —— 分析营销活动数据

这四个 Skill 组合使用,就能自动完成从数据查询到品牌化报告生成的完整工作流。


核心机制:渐进式披露(Progressive Disclosure)

你的系统中可能有上百个 Skills。如果全部加载到上下文窗口,会迅速耗尽 Token 并降低响应质量。

上下文窗口是一种公共资源。越多数据被加入,Token 消耗越快,上下文退化和错误响应的概率就越高。

Skills 通过三层渐进式加载解决这个问题:

层级内容何时加载
第一层:元数据YAML 中的 name 和 description始终加载
第二层:指令SKILL.md 的主体内容当 Skill 被触发时
第三层:资源引用的文件、脚本、资产按需加载

工作原理

  1. Skills 从文件系统加载时,仅 name 和 description 进入上下文窗口
  2. Claude 根据描述判断何时触发某个 Skill
  3. 触发后加载 SKILL.md 完整内容
  4. 如果指令中引用了额外文件或脚本,按需逐步加载
  5. 脚本在上下文窗口外执行,避免无用 Token 污染

通过 Bash 和文件系统工具,Claude 只加载必要的信息,只执行必要的脚本,有意识地只把必要内容添加到上下文窗口。


Skill 文件夹结构示例

根据 Agent Skills 开放标准规范:

  • SKILL.md必需
  • 可选目录:referencesscriptsassets
analyzing-marketing-campaign/
├── SKILL.md
└── references/
    └── budget_reallocation_rules.md
pdf/
├── SKILL.md
├── forms.md
├── reference.md
└── scripts/
    ├── check_fillable_fields.py
    ├── convert_pdf_to_images.py
    ├── extract_form_field_info.py
    └── fill_pdf_form_with_annotations.py
designing-newsletters/
├── SKILL.md
├── references/
│   └── style-guide.md
└── assets/
    ├── header.png
    ├── icons/
    └── templates/
        ├── newsletter.html
        └── layout.docx

注意:部分早期 Skills(如 PDF Skill)在开放标准发布之前就已创建,可能不完全遵循标准格式。


课程资料