背景
我们曾经认为不同领域的 Agent 会有很大的不同,每个 Agent 需要自己的工具和支撑结构,这意味着每个领域都需要一个单独的 Agent:

当然,每个领域的定制化非常重要,但实际上底层的 Coding Agent 比我们想象的要通用的多。我们意识到,代码不仅仅是一个领域,更是通往数字世界的通用接口。
简单来说,代码就是我们所需要的一切!
Code is all you need
我们常用的 Cursor、Claude Code 等 Coding Agent 就是一个通用 Agent,而基于通用 Agent 去构建各个领域的用例就是我们正在迈进的一个新范式:

这种新范式使 Agent 与运行时环境之间的耦合变得更紧密。假如你要生成一份财务报告,Agent 会先调用工具获取数据,接着在文件系统中预处理这些数据,然后调用 Python 脚本进行分析,最后调用 Python 脚本将洞见整合并输出为 md 格式的文件。在整个过程中,核心的支撑结构突然变得像 bash 和文件系统一样精简,这非常具有可扩展性。
但我们很快就会遇到另一个问题,就是领域专业知识。
你希望谁来帮你报税?是 Mahesh 这个具有 300 智商的数学天才,还是 Barry 这个具有丰富经验的税务专家?

你大概率会选择 Barry,因为报税需要的是领域专家的稳定执行,而不是天才的即兴推导。
但现在的 Agent 恰恰更像 Mahesh——推理能力强,能举一反三,遇到实际工作中却经常卡在三件事上:
- 缺背景:组织里的约定、历史决策、合规红线,模型默认不知道
- 难沉淀:同类任务反复做,输出漂移,质量靠人盯
- 不长记性:这次踩过的坑,下次还会踩
这就是 Anthropic 提出 Agent Skills(智能体技能)的原因。
什么是 Agent Skills
从概念上来说,Agent Skills 是给 Agent 的“工作手册”或“SOP(标准作业程序)”。它将领域专业知识、工作流程和最佳实践固化下来,让一个通用的 Agent 能够在需要时动态加载,从而化身为领域专家。
从形态上来说,Agent Skills 是有组织的文件集合,为 Agent 打包可组合的流程知识,还可以包含大量脚本作为工具。换句话说,技能就是文件夹,这种简洁是有意为之,天然支持 git 版本管理、模块化组合和团队共享。我们希望无论是人还是智能体,只要有一台电脑,都能创建和使用技能。
你可以创建或复用很多技能,同时每个技能可以包含大量信息。我们希望保护上下文窗口,这样就能一次性容纳数百个技能,并让它们实现真正可组合。
如何在一个上下文窗口容纳数百个技能呢?我们需要一种更先进的知识封装和调用机制。这种机制,应该能让我们的领域专业知识像一个个独立的“知识插件”一样存在,只有在 AI 处理相关任务时,才被精准地、动态地、高效地加载进来。
这种机制就是“渐进式披露”,决定了 Agent Skills 的三层架构:

- 第一层:元数据层(Metadata)——每个技能只暴露名称和一句话描述,相当于索引卡片。Agent 启动时一次性扫描所有卡片,成本极低。
-
第二层:指令层(Instructions)——即
SKILL.md的主体内容,包含核心工作流程、工具说明和注意事项。只有当 Agent 判断某个技能与当前任务相关时,才会加载这一层。 -
第三层:资源层(Resources)——详细的参考手册、示例、脚本和模板等。只有在 Agent 执行
SKILL.md的过程中真正需要时,才按需读取或运行资源。当运行脚本时,只有脚本的最终输出结果会进入上下文,而脚本代码本身不会。这避免了将冗长的代码注入 Prompt,进一步节省了宝贵的上下文空间。
这就是渐进式披露的核心思路:不是一股脑把所有知识塞进上下文,而是逐层按需加载——先扫索引、再读指南、最后查资料或运行脚本。每一层都充当下一层的"门卫",只有通过了才会继续深入。这样即使注册了数百个技能,实际占用的上下文窗口也只是当前任务真正需要的那一小部分。
以技能 pptx 为例,其目录结构如下:
├── SKILL.md # 第一层 + 第二层:元数据 & 核心指令
├── LICENSE.txt
├── html2pptx.md # 第三层:从零创建 PPT 的详细参考
├── ooxml.md # 第三层:编辑既有 PPT 的详细参考
├── scripts/ # 第三层:工具脚本
│ ├── html2pptx.js # HTML → PPTX 转换
│ ├── inventory.py # 提取文本清单
│ ├── rearrange.py # 幻灯片重排
│ ├── replace.py # 批量替换文本
│ └── thumbnail.py # 生成缩略图网格
└── ooxml/ # 第三层:OOXML 底层工具 & Schema
├── schemas/ # Office Open XML 标准定义
│ └── ... # (20+ .xsd 文件)
└── scripts/ # 打包/解包/校验脚本
├── pack.py
├── unpack.py
├── validate.py
└── validation/
对照三层架构来看这个例子:
| 层级 | 对应内容 | 何时加载 |
|---|---|---|
| 元数据层 |
SKILL.md 头部的 YAML front matter:name: pptx、description: "Presentation creation, editing..."
|
Agent 启动时扫描,仅几十个 token |
| 指令层 |
SKILL.md 的正文:概述、工作流程、设计原则、代码规范等 |
用户请求涉及 PPT 时,整份读入 |
| 资源层 |
html2pptx.md、ooxml.md、scripts/ 目录下的所有脚本和 ooxml/schemas/
|
仅在 SKILL.md 中被引用且执行需要时,才按需读取或运行 |
可以看到,一个技能可以包含大量内容(这个技能有 56 个文件),但真正进入上下文窗口的,始终只是当前任务步骤所需的那一小片。
Agent Skills 将 Prompt Engineering 从一次性的“手工作坊”模式,提升到了可复用、可维护的“工业化生产”阶段:

- 高度复用:一个编写良好的 Skill(例如,“从财报中提取关键指标”)可以在无数个不同的任务和 Agent 中被复用,避免了为每个相似任务重复编写和调试复杂 Prompt 的人力成本。
- 简化维护:当一个流程或 API 发生变化时,开发者不再需要在成百上千个散落的 Prompt 中进行“查找替换”,而只需更新一个对应的 Skill 文件即可。这种集中式的管理极大地降低了维护成本和出错风险。
- 促进协作:Skills 的模块化特性使得团队协作变得更加容易。不同领域的专家可以独立开发和贡献各自的 Skill,最终组合成一个强大的 Agent,实现了知识的沉淀和共享。
Agent Skills 是如何工作的
了解了 Agent Skills 是什么,我们再来看看它是怎么工作的。这就像拆开一台机器,看看里面的齿轮是怎么转动的。
启动时的"登记注册"
当你早上打开 Cursor 或 Claude Code 时,AI 做的第一件事不是等你说话,而是悄悄地扫描技能目录。
以 Cursor 为例,它会扫描两个位置:
-
~/.cursor/skills/——个人技能目录,存放你自己积累的技能,跨项目通用 -
{project}/.cursor/skills/——项目技能目录,存放团队共享的技能,随代码库一起版本管理
扫描的过程很快,因为只读取每个 Skill 的"名片"(元数据):技能叫什么名字,能做什么事情。就像你进入一个图书馆,先看看目录板,了解有哪些分类的书。
这个过程只需要几百个 tokens,几秒钟就完成了。
AI 在心里建立了一个索引:
- PDF 相关的任务 → 调用 PDF Skill
- PPT 相关的任务 → 调用 PPTX Skill
- ......
这个索引会被缓存起来,除非你添加、修改或删除了 Skill,否则不需要重新扫描。系统会监听文件变化,一旦检测到 Skill 有变化,会自动更新索引,连重启都不需要。
对话时的"智能匹配"
登记注册只是准备工作,而真正有意思的事情发生在你开口说话的那一刻。
假设你对 Cursor 说了一句:
"帮我做一份关于 AI 发展趋势的演示文稿,要好看一点。"
这句话看起来很简单,但 Agent 在幕后瞬间完成了好几件事。
第一步:意图识别——你到底想干什么?
Agent 先理解你的意图:用户想创建一份 PPT。这不是写代码,不是分析数据,也不是处理 PDF,而是做演示文稿。
第二步:技能匹配——翻索引卡片
还记得启动时建立的那个索引吗?Agent 拿着"创建演示文稿"这个意图,去索引里找对应的技能。
一翻就找到了:
pptx —— Presentation creation, editing, and analysis.
匹配成功。就像你去图书馆找"烹饪"类的书,目录板上清清楚楚写着在 3 楼 B 区。
第三步:加载指令——打开"操作手册"
匹配到技能后,Agent 立刻读取 SKILL.md 的完整内容(第二层:指令层)。
这份文件就是一本"操作手册",告诉 Agent:
-
创建新 PPT 时要用
html2pptx工作流 - 动手写代码之前,先分析内容、选定配色方案和设计风格
- 只能使用 web-safe 字体(Arial、Georgia、Verdana……)
- 布局要遵循视觉层次:大标题用 72pt,正文用 11pt
- 图表和表格绝不能堆在文字下面,要用双栏或全幅布局
- 做完之后要生成缩略图,自己检查有没有文字溢出、对比度不够等问题
注意,这时候 Agent 并没有加载所有细节。它只是知道了"大方向怎么走",具体的技术参考还没打开。
第四步:按需深入——用到什么查什么
当 Agent 真正开始动手时,才会触发第三层(资源层)的加载。比如:
- 需要把 HTML 转成 PPT?去读
html2pptx.md,里面有完整的 API 语法和格式规则 - 需要选配色?
SKILL.md里列了 18 套精选配色方案,Agent 会根据"AI 发展趋势"这个主题挑一套合适的——也许是"Deep Purple & Emerald",科技感十足 - 需要转换脚本?直接调用
scripts/html2pptx.js来执行
这就是渐进式披露在实战中的样子:不是一开始就把 56 个文件全部塞进大脑,而是走到哪一步,就打开哪一份资料。
整个过程,打个比方
想象你是一个新来的实习生,接到任务要做一份 PPT。你不会把公司所有的文件都翻一遍,而是:
- 先问前辈:"咱们公司做 PPT 有没有什么规范?"——意图识别
- 前辈指了指文件柜:"第三个抽屉,那本蓝色的手册。"——技能匹配
- 你拿出手册,翻到"从零创建演示文稿"那一章——加载指令
- 做到配色那一步,手册上写着"参考附录 B 的配色表",你翻到附录 B——按需深入
Agent 做的事情和你一模一样,只不过它翻得更快,记得更牢。
这个"智能匹配"的过程几乎是瞬间完成的,你感知不到任何延迟。从你敲下回车的那一刻起,Agent 已经知道该用什么技能、该怎么做、该注意什么,剩下的就是执行了。
Skills 的柔性设计
有人可能会问:Skills 是不是会限制 Agent 的灵活性?如果环境不一样怎么办?
这就涉及到 Skills 设计的一个巧妙之处:它提供指导,而不是强制约束。
比如,PPTX Skill 推荐使用 html2pptx 工具来创建演示文稿(因为它能实现精确的布局控制),但这个工具需要 Node.js 环境。
如果你的电脑上没装 Node.js,Agent 会崩溃吗?
当然不会。当 Agent 会发现环境中没有 Node.js,然后自主选择替代方案,比如用 Python 的 python-pptx 库。虽然技术栈换了,但 Agent 还是会遵循 Skill 里的设计原则:配色方案怎么选、布局怎么安排、内容怎么组织。
这就像一个厨师拿到了菜谱,菜谱上写着"用煤气灶",但厨房只有电磁炉,厨师不会傻乎乎地说"没法做饭了",而是换用电磁炉,但还是按照菜谱的火候和步骤来做。
Skill 提供的是"道"(原则和思路),Agent 结合环境选择"术"(具体实现)。这种柔性设计,让技能既有指导作用,又不会因为环境差异而失效。
如何使用 Agent Skills
理论讲得差不多了,现在该动手实践了。不用担心,使用 Agent Skills 比你想象的要简单得多。
五分钟快速开始
想体验 Agent Skills,你只需要三步:
第一步:获取 Skills
Anthropic 在 GitHub 上开源了一些常用的 Skills,包括 PDF 、PPTX 等。
打开终端,运行:
git clone https://github.com/anthropics/skills
几秒钟,你就下载了一个技能库。
第二步:部署 Skills
决定把 Skills 放在哪里,以 Cursor 为例:
- 如果只是自己用,放到个人目录:
~/.cursor/skills/ - 如果要团队共享,放到项目目录:
{project}/.cursor/skills/
比如,你想用 PDF 和 PPTX 技能,当前目录为项目所在的根目录:
# 个人使用
cp -r skills/pdf skills/pptx ~/.cursor/skills/
# 团队共享
cp -r skills/pdf skills/pptx ./my-project/.cursor/skills/
第三步:测试 Skills
打开 Cursor,试试看:
"请帮我写一个 Agent Skills 的胶片,适合初学者"
Cursor 的执行过程:
- 我来先读取相关的技能文件和已有的内容资料。
- 现在我有了所有需要的资料。让我来规划并创建这份演示文稿。
- 设计方案:这是一个关于 AI/Agent 技术的主题,面向初学者,需要现代感、亲和力和专业性并存。我将使用 Deep Purple & Emerald 配色(紫色 #B165FB + 深蓝黑 #181B24 + 翡翠绿 #40695B),传达创新和技术前沿的感觉,同时保持清晰易读。
实现方案:
todos.png
...
最后生成的 pptx 预览:**

MCP 与 Skill 的关系
下面列出针对 Prompt、Skills、MCP 三种上下文工程手段的横向对比:
| 特性 | 传统 Prompt | Agent Skills | MCP |
|---|---|---|---|
| 作用域 | 会话级指令,一次性任务 | 可复用、可插拔的"SOP" | 连接外部工具/数据源的标准协议 |
| 加载方式 | 每次对话都需要重复提供 | 按需自动加载,一次安装 | 通过网络请求实时交互 |
| 上下文消耗 | 全部内容一次性加载,成本高昂 | 渐进式披露,按需加载 | 每次请求和响应都消耗上下文 |
| 可组合性 | 难以组合和维护 | 可组合多个 Skills 构建复杂工作流 | 依赖于工具自身的接口设计 |
| 专业化 | 依赖通用模型能力 | 赋予模型本身领域专业知识 | 访问外部专业化工具 |
| 可靠性 | 输出不稳定,依赖模型生成 | 可通过执行确定性代码保证可靠性 | 依赖于外部工具的可靠性 |
MCP 属于连接层,为 Agent 连接了广阔的外部世界,把数据和工具带进来。Skill 属于知识层,为 Agent 装配了领域专业知识,按需逐层加载。知识层 Skill 可以依赖连接层 MCP 提供的工具实现更强大的功能。

下面举一个例子。
场景:分析用户行为数据
数据分析 Skill:
- 提供数据分析的标准流程(数据清洗→探索性分析→可视化→得出结论)
- 定义团队的数据可视化规范(用什么图表、什么配色)
- 给出常见分析场景的模板
工具 MCP:
- 连接用户行为数据库,获取原始数据
- 调用数据分析工具的 API
- 把分析结果存储到文件系统
工作流程:
- 你说:"分析一下上周的用户活跃度"
- Agent 匹配到"数据分析 Skill",了解分析流程
- Agent 通过 MCP 连接数据库,获取上周数据
- Agent 按照 Skill 的指导进行分析
- Agent 通过 MCP 调用可视化工具生成图表
- Agent 按照 Skill 的规范整理分析报告
假如 Agent 是一个厨师,那么 Skill 是菜谱(告诉你怎么做菜),MCP 是冰箱和厨具(提供食材和工具)。只有当 Skill 和 MCP 紧密配合,才能做出一桌好菜。
两个提示:
- 对于简单的技能,可以不调用工具,或者仅调用自己携带的脚本工具。
- 在必要时,可以充分利用技能的优势,从而将 MCP 工具封装为一个 Skill,比如在 Python 脚本中直接实现一个 MCP Client。
总结
Agent Skills 的核心理念可以用一句话概括:把领域专业知识装进文件夹,让通用 Agent 变成领域专家。
掌握 Agent Skills,意味着你开始以一种全新的、更高级的方式来“编程”AI。你不再是为 AI 编写一次性的“脚本”(Prompt),而是在为它构建一个可复用的、可发现的、不断成长的“能力库”。所以,技能的价值很大一部分来自于共享和分发。
粗略类比一下:模型是处理器,Agent 是操作系统,Skills 是应用程序。只有少数公司构建了处理器和操作系统,而数百万开发者通过应用程序创造了更大的价值。Skills 正在打开应用程序这一层,每个开发者都可以发挥创造力,把领域专业知识放进文件夹,为自己、他人及全世界解决一个具体问题。

是时候停止重复构建 Agent,开始构建技能了。
然而,需要警惕的是,我们应该采取一种理性和审慎的态度对待 Agent Skills 这项重要创新:
- 不要一切皆 Agent Skills,因为它不是魔法,更不是可以即插即用的“银弹”。
- 必须将 Agent Skills 视为代码,而非文档,对其进行严格的代码审查、依赖扫描和版本控制,尤其对于第三方的,警惕成本优势背后的“隐性负债”。
随着技能生态的成长,Anthropic 认为还需要在以下方向持续探索:
- 质量保障:像对待软件一样对待技能——探索、测试、评估,确保 Agent 在正确的时间加载并触发正确的技能,同时衡量输出质量是否达标。
- 版本管理:清晰追踪技能的演进以及由此带来的 Agent 行为变化,保持明确的演变脉络。
- 多技能组合:让多个技能协同工作,使 Agent 展现出更复杂、更贴合场景的行为。
参考文献
- 《Don't Build Agents, Build Skills Instead》,Barry Zhang & Mahesh Murag,Code Summit · Anthropic
- 《智能涌现的基石:精通Agent Skills,为AI植入专家能力》,Tony Bai,极客时间 · AI 原生开发工作流实战
- 《代码就是一切:为什么Anthropic不再做"专用Agent"?》,claudecn,微信公众号 · 架构师
- 《对待 Skills,请理性祛魅》,李颜良,微信公众号 · AI原生应用
