Agent Skills 是什么?课程导论
本文独立分析声明:本文基于吴恩达(Andrew Ng)与 Anthropic 在 DeepLearning.AI 合作推出的 Agent Skills with Anthropic 课程独立撰写。内容包含原课程未覆盖的独立分析:Skills 与 GPTs/Tools/MCP 的横向对比、Claude Code 源码中的 Skills 加载机制、Google ADK 的 SkillToolset 集成方案、常见踩坑。推荐先观看官方课程(免费)后再阅读本文。
Agent Skills 是 Anthropic 在 2024 年底推出的开放标准,用一句话概括:让 Agent 学会一项新技能的最小单元。这门由 Anthropic 工程师 Elie Schoppik 主讲、吴恩达团队制作的课程,系统性地回答了三个问题:Skills 是什么、为什么 Prompt + Tools 不够、如何在多个平台落地。
本文作为 L0 课程导论,先把全局脉络拉直。
一、为什么需要 Skills
通用 Agent(不带任何上下文的 Claude 或 GPT)能做很多事,但在具体领域很快就暴露局限。考虑以下三类痛点:
1. 重复工作流的”每次都要解释”
你每周都要把营销数据 CSV 整理成老板看的 PPT。哪怕每次的数据结构固定、输出格式固定,你都要在对话里反复说明:“先按活动名聚合、再算转化率、再按 ROI 降序、最后渲染成带公司配色的 PowerPoint”。Agent 不记得上次的对话,每一次都是冷启动。
2. 专业领域知识的”不知道自己不知道”
让 Claude 写一份医疗病例摘要,它会写出看起来专业但术语混用的东西(例如 ICD-10 编码错用、缩写不符合医院规范)。原因是通用模型没有你所在医院的内部规范。
3. 工具链整合的”每次都在粘合”
把 GitHub Issue、Jira Ticket、Slack 消息整合成周报——数据源是固定的,拼装逻辑也是固定的,但每次都要临时写代码。
Skills 的核心价值:把这些可以标准化的领域知识、工作流步骤、工具调用模式打包成一个可复用的文件夹,Agent 按需读取。
二、Skills 的技术定义
最小形态
Skill 是一个包含 SKILL.md 文件的文件夹:
marketing-report/
├── SKILL.md # 必需:名称、描述、指令
├── template.pptx # 可选:输出模板
├── scripts/
│ └── aggregate.py # 可选:数据处理脚本
└── reference/
└── brand-colors.md # 可选:品牌规范
SKILL.md 的典型结构:
---
name: marketing-report
description: 从 CSV 营销数据生成公司标准 PPT 周报,包含按活动聚合、转化率计算、ROI 排序。
---
# Marketing Report Skill
## 步骤
1. 读取输入的 CSV 文件
2. 运行 scripts/aggregate.py 进行数据聚合
3. 使用 template.pptx 作为渲染模板
4. ...
三要素:name(标识)、description(触发条件——告诉 Agent 何时该用这个 Skill)、body(具体指令)。
渐进式披露(Progressive Disclosure)
Skills 最巧妙的设计点。如果你把所有 Skill 的完整指令都塞进上下文,100 个 Skill 就能撑爆 Claude 的 200K 上下文窗口。Skills 的解法分三层:
| 层级 | 什么时候加载 | 典型大小 |
|---|---|---|
| L1:元数据 | 始终在上下文 | 每 Skill 约 50 词 |
| L2:完整 SKILL.md | 触发后加载 | 每个几百到几千词 |
| L3:引用资产 | Agent 主动读取 | 脚本/数据/模板 |
结果:100 个 Skill 的元数据约 5K tokens,对上下文几乎没压力。触发后才扩展到完整指令,Agent 用完就丢。
这个设计在 Claude Code 源码里对应着 Skills 模块的动态加载逻辑(详见本站《Claude Code Harness 架构设计与实战》第 7 章)。
三、Skills 与相邻概念的区别
这是最容易混淆的部分,也是本站重点独立分析的内容。
| 概念 | 形态 | 生命周期 | 可移植性 | 典型场景 |
|---|---|---|---|---|
| Prompt 模板 | 一段静态文本 | 单次对话 | 好(纯文本) | 一次性任务 |
| Tool / Function Calling | JSON Schema + 后端函数 | 运行时 | 差(每个平台规范不同) | 外部 API 调用 |
| MCP 服务 | 标准协议 + 远程进程 | 持续运行 | 非常好(协议层) | 多 Agent 共享的数据源 |
| Skill | 文件夹(SKILL.md + 资产) | 按需加载 | 非常好(开放标准) | 可复用工作流 / 领域知识 |
| Subagent | 独立的 Agent 实例 | 委派任务期间 | 中(取决于平台) | 隔离上下文的子任务 |
| GPTs | 平台专属配置 | 长期存在于 OpenAI | 差(绑定 OpenAI) | 面向最终用户的 Bot |
重点对比:
- Skills vs Prompt:Skills 是”能让 Agent 加载的 Prompt 包”,带文件系统和资产引用,远比单纯 Prompt 强大
- Skills vs Tool:Tool 在每次调用前都要定义完整 Schema,Skills 按需加载;Tool 更适合外部 API,Skills 更适合流程编排
- Skills vs MCP:不对立。MCP 负责数据接入(外部数据源),Skills 负责流程编排(怎么用这些数据)
- Skills vs Subagent:不对立。Subagent 是执行者,Skills 是执行者的”说明书”,一个 Subagent 可以装备多个 Skills
L3 课程会详细展开这个对比。
四、开放标准的意义
Anthropic 把 Skills 做成开放标准而不是闭源产品——这是和 OpenAI GPTs 路线的根本分歧。
可移植性
同一个 marketing-report/ 文件夹可以被:
- Claude.ai 读取(上传到项目)
- Claude Code 直接使用(放到
~/.claude/skills/) - Claude API 远程调用(通过 Files API 上传后
extra_body.skills) - Agent SDK 编排(主 Agent 委派给装备 Skill 的 Subagent)
- Google ADK(通过
SkillToolset加载,详见ADK × Skills 实战) - 任何实现 Skills 规范的第三方平台
只需要两类基础工具
Agent 执行 Skill 的运行时要求极低:文件系统读写 + Bash 执行。这两类工具几乎所有现代 Agent 框架都有,因此 Skills 的落地门槛远低于厂商专属方案。
五、课程路线图
| 课时 | 主题 | 核心内容 | 本站解读链接 |
|---|---|---|---|
| L1 | Why Skills(上) | Skills 如何把通用 Agent 变成领域专家 | → L1 |
| L2 | Why Skills(下) | 渐进式披露详细机制与上下文管理 | → L2 |
| L3 | Skills vs Tools | Skills/Tools/MCP/Subagents 四者协作 | → L3 |
| L4 | Pre-Built Skills | Anthropic 预构建 Skills 实战(Excel / PPT) | → L4 |
| L5 | Custom Skills | 从零创建自定义 Skill:内容创作 + 数据分析 | → L5 |
| L6 | Claude API | 程序化调用 Skills:Code Execution + Files API | → L6 |
| L7 | Claude Code | 代码审查 & 测试 Skill + Subagent 工作流 | → L7 |
| L8 | Agent SDK | 研究型 Agent:自动生成学习指南 | → L8 |
延伸阅读(本站独家)
- ADK × Agent Skills 实战 — 用 Google ADK 的
SkillToolset加载 Skills,对比 Anthropic 与 Google 的集成方式 - Claude on Vertex AI × ADK 多 Agent — 生日策划多 Agent 系统,Skills + MCP + A2A 协议
- Harness Engineering 学习指南 — Anthropic、OpenAI、Geoffrey Huntley 的 Agent 工程共识
- Claude Code 源码深度解析 — Claude Code 里 Skills 模块的实际实现
六、新手常见误区(本站补充)
误区 1:Skills 是 Prompt 模板
❌ “Skill 就是把 Prompt 存成文件” ✅ 正确理解:Skill 是带渐进式披露机制的工作流包装,包含元数据路由、资产引用、多步骤指令,不是单层 Prompt。
误区 2:Skills 和 MCP 二选一
❌ “有了 MCP 就不需要 Skills 了” ✅ 正确理解:两者正交。MCP 负责把外部数据接入 Agent,Skills 负责告诉 Agent 拿到数据后怎么处理。实际产品通常同时用。
误区 3:Skill 越多越好
❌ “先把能想到的都做成 Skill” ✅ 正确理解:过多 Skill 的元数据也会挤占上下文。Anthropic 官方建议单个 Agent 装备 10-30 个 Skills 左右,超过要考虑分层或按 Subagent 隔离。
误区 4:所有 Agent 都支持 Skills
❌ “OpenAI 的 Assistant 也能直接用 SKILL.md” ✅ 正确理解:Skills 是 Anthropic 主导的开放标准,目前原生支持者主要是 Claude 全家桶 + Google ADK + 少数开源框架。OpenAI 平台需要自己实现加载逻辑(本质上就是文件 + Prompt 工程)。
七、什么时候应该做一个 Skill?
自测三问:
- 这个工作流在一个月内被你重复执行过 3 次以上吗?
- 每次执行的步骤是固定的,只是输入数据变化?
- 结果有明确的对错标准(不是创意类输出)?
三个都是 yes,就值得做成 Skill。否则先用 Prompt 模板即可,等到真的反复出现再升级。
如果你有一个反复让 Agent 执行的工作流,与其每次都解释一遍,不如打包成一个 Skill,让 Agent 自动知道该怎么做。 — Elie Schoppik(原课程讲师)
下一课 L1 会展开”为什么使用 Skills”,从实战场景演示没有 Skill 的工作流有多脆弱,以及加上 Skill 后发生了什么变化。