Appearance
Agent Skills 是什么:把流程方法变成可复用能力
在前面的文章里,我们已经见过不少 Tool。
例如 Coding Agent 可能拥有:
text
read_file
write_file
search_code
run_tests有了这些 Tool,Agent 已经可以读取代码、修改文件、搜索项目并运行测试。
但这时候还有一个问题:
有工具,不代表 Agent 就知道一类任务应该怎么做。
例如让 Agent:
帮我修复这个 GitHub Issue。
它虽然知道怎么读文件、写文件和运行测试,但仍然需要自己判断:
- 应该先看 Issue 还是先搜索代码
- 修改之前需要了解哪些上下文
- 修改以后应该运行哪些测试
- 测试通过以后还要不要检查 Diff
- 最后应该按照什么格式汇报
这些东西都不是某一个 Tool 能解决的。
应该是:
完成这一类任务时长期积累下来的一套流程、经验和要求。
Agent Skills 就是在解决这个问题。
为什么会出现 Agent Skills
很多人使用 Agent 一段时间以后,都会遇到一个很相似的现象。
第一次让 Agent 做代码审查,需要告诉它:
重点检查 Bug、回归风险和缺失测试,不要只总结代码变化。
下次做 Code Review,还要再说一次。
再比如写发布说明:
先读取变更记录,区分新增功能、Bug 修复和 Breaking Changes,最后输出 Markdown。
下次发布又要重新解释。
慢慢就会出现大量这样的内容:
text
“以后做这件事的时候,记得先……”
“这种任务统一按照这个格式……”
“运行完成以后一定检查……”
“遇到这种情况不要直接……”最开始,它们可能只是散落在 Prompt、项目文档、团队 Wiki,甚至我们开发者自己的脑子里。
问题在于:
这些流程明明可以复用,却每次都在重新告诉 Agent。
Anthropic 在 2025 年推出 Agent Skills 时,强调的正是这种“procedural knowledge”——真实工作不只有工具和知识,还包含“这件事应该怎样做”的过程经验。Agent Skills 将这些说明、脚本和资源组织起来,让 Agent 可以在需要时发现并加载。
所以 Skill 最核心的价值,可以概括成一句话:
把一类重复任务的流程方法,从一次性的对话里拿出来,变成可以长期复用的能力。
Agent Skills 到底是什么
现在所说的 Agent Skills,并不只是泛指“Agent 有某项能力”。
它已经逐渐形成了一套明确的文件组织方式。
Hugging Face 对 Agent Skills 的定义很直观:
Skill 是一个包含特定领域知识的自包含能力包,可以被 Agent 发现并在需要时使用。
OpenAI 目前也把 Skill 描述为一种可复用、可共享的工作流:把任务怎么做定义一次,以后遇到同类任务就可以再次应用。
一个 Skill 最核心的部分通常是:
text
SKILL.md里面写清楚:
- 这个 Skill 是做什么的
- 什么情况下应该使用
- 任务应该按照什么步骤完成
- 有哪些要求和限制
- 最终应该得到什么结果
如果任务比较复杂,还可以继续附带:
text
scripts/
references/
assets/也就是说,Skill 不一定只是一篇 Markdown。
它可以是一整个小型能力包。
Agent Skills 是怎么发展起来的
“给 Agent 保存一套固定指令”的想法并不是突然出现的。
在 Skills 之前,不同 Agent 产品里早就存在:
text
Custom Instructions
Commands
项目说明文件
Prompt Templates
规则文件这些机制都在尝试解决类似问题:
怎样让 Agent 不需要每次都从零开始理解我们的工作方式?
2025 年 10 月,Anthropic 正式推出 Agent Skills,把 Instructions、Scripts 和 Resources 组织成可以动态发现、按需加载的目录。
同年 12 月,Agent Skills 被进一步发布为开放标准,希望这种能力不再只属于 Claude,而是能够在不同 Agent 产品之间迁移。
到了 2026 年,Skills 已经开始明显跨出单一产品生态。
Hugging Face 的 Context Course 直接把 Agent Skills 作为第一个核心单元,并以 Claude Code、Codex、OpenCode、Pi 等不同 Code Agent 作为参考实现;其资料称 Agent Skills 规范已经被 30 多个 Code Agent 采用。
OpenAI 也已经支持以 SKILL.md 为核心的 Skills,并允许在支持 Agent Skills 格式的工具之间导入和导出。
因此现在 Agent Skills 正在逐渐跨 Agent 产品复用的一种能力组织方式。
不过不同产品在 Skill 放在哪里、什么时候加载、支持哪些扩展字段上仍然可能不同。
开放格式解决的是共同部分,不代表所有产品实现已经完全一样。
一个 Skill 实际长什么样
按照当前 Agent Skills Specification,一个 Skill 最简单可以只有一个目录和一个 SKILL.md。
完整一些则可能是:
text
code-review/
├── SKILL.md
├── scripts/
│ └── check-diff.sh
├── references/
│ └── review-guide.md
└── assets/
└── report-template.md其中只有:
text
SKILL.md是必须存在的。
scripts、references 和 assets 都是按需要增加的可选内容。
例如我们可以写一个最简单的 Code Review Skill:
markdown
---
name: code-review
description: Review code changes for bugs, regressions and missing tests.
---
# Code Review
读取本次代码变更后再开始 Review。
重点检查:
- 明显 Bug
- 潜在回归
- 边界条件
- 缺失测试
- 安全风险
不要只总结代码变化。
如果发现问题,优先说明:
1. 问题在哪里
2. 为什么有风险
3. 什么情况下会触发
4. 建议怎么修改
如果没有发现明显问题,也要说明仍然存在的不确定性。前面的 YAML 部分是这个 Skill 的基本信息。
其中最重要的是:
yaml
name: code-review
description: ...name 告诉系统这个 Skill 叫什么。
description 不只是说明文字,它还需要告诉 Agent:
这个 Skill 能做什么,以及什么时候应该使用。
按照当前规范,这两个字段属于必需元数据。
下面的 Markdown 正文,才是真正的任务方法。
如果这套流程还需要大量资料,也没有必要把全部内容塞进 SKILL.md。
例如:
text
references/
├── java-review.md
├── frontend-review.md
└── security-review.mdAgent 做 Java Review 时,再去读取相应参考资料。
如果某一步需要确定性执行,还可以准备脚本:
text
scripts/
└── check-diff.sh所以一个完整的 Skill 可以同时拥有:
说明 + 流程 + 参考资料 + 模板 + 可执行脚本。
这也是它和普通 Prompt 有明显区别的地方。
Agent 是怎么使用 Skill 的
如果我们给 Agent 装了几十个 Skills,Agent 每次运行时,是不是要把几十份 SKILL.md 全部读进 Context?
其实一般都不会这样做。
因为 Agent Skills 一个很重要的设计就是:
按需加载。
可以先用下面这张图理解:
比如系统里存在:
text
code-review
release-note
pdf-processing
database-migration用户说:
帮我 Review 一下刚才的代码修改。
Agent 没必要先完整阅读另外三个 Skills。
它只需要先根据名称和描述发现:
text
code-review可能适合当前任务。
然后再加载它真正的 SKILL.md。
如果 Skill 中又写着:
Java 项目请继续参考
references/java-review.md
这时候才继续读取对应文件。
这种思想叫做:
Progressive Disclosure,渐进式披露。
“先暴露必要元数据、命中后再加载完整内容”是 Skill 的核心特征之一。
对于入门阶段,我们不需要研究它内部到底怎样实现。
只需要理解:
Skill 不是把更多内容永远塞进 Prompt,而是让 Agent 在需要的时候找到正确的方法。
为什么 Skill 不只是一个长 Prompt
表面看起来,SKILL.md 里也是 Markdown 文字。
那我把这些内容直接复制到 Prompt 里,不也一样吗?
如果只有一次任务,确实可能一样。
比如:
text
请按照下面流程 Review 代码……完全可以直接写在 Prompt 中。
Skill 真正产生价值,是因为这套方法开始需要反复使用。
例如一个团队每周都会做:
text
代码审查
版本发布
事故复盘
日志分析
文档检查如果每次都重新复制一份 Prompt:
- 内容可能慢慢变成不同版本
- 有人忘记某些步骤
- 更新规则以后需要到处修改
- 参考资料和脚本也很难一起管理
Skill 则把这些内容变成一个明确的对象:
text
release-note/
└── SKILL.md团队只需要维护这一份。
以后流程发生变化,比如:
text
发布说明必须增加 Breaking Changes 检查那么只需要更新 Skill ,Agent实现的时候就会作为参考。
所以并不是:
Prompt 很低级,Skill 很高级。
准确地说:
Prompt 适合表达当前这一次任务;Skill 更适合沉淀可以重复使用的流程方法。
所以,回馈一下你日常的AI使用流程,是否存在重复相同 Prompt、模板、步骤和格式要求,那么就很适合把它们变成可复用的 Skill。
Skill、Tool、MCP 和 Workflow 有什么区别
这几个概念很容易在 Agent 项目里同时出现。
可以先用一张表区分:
| 概念 | 主要解决什么 |
|---|---|
| Tool | Agent 能执行什么动作 |
| MCP | 外部能力怎样标准化连接进 Agent |
| Skill | 某一类任务应该怎样完成 |
| Workflow | 系统按照什么流程组织和执行任务 |
例如现在有一个:
修复 GitHub Issue
的任务。
Agent 可能拥有 Tool:
text
read_file
write_file
run_tests又通过 MCP 连接 GitHub:
text
get_issue
create_comment同时存在一个 Skill:
text
fix-github-issue里面规定:
text
先读取 Issue
↓
定位相关代码
↓
确认修改范围
↓
修改代码
↓
运行测试
↓
检查 Diff
↓
汇报结果这里:
Tool 负责真的读文件、写文件和跑测试。
MCP 负责把 GitHub 这些外部能力接进 Agent。
Skill 告诉 Agent,修复 Issue 这类事情通常应该按照什么方式做。
如果系统又强制要求:
text
开发
→ Code Review
→ CI
→ 人工审批
→ Merge那么这就是一个明确的 Workflow。
所以 Skill 虽然标题里有“流程方法”,但它并不等于 Workflow。
因为 Skill 里面的流程 Agent 有时候又会忘记。但是 Workflow 程序一般不会。
Skill 和项目规则、Memory 有什么区别
Coding Agent 里还有两个东西特别容易和 Skills 混在一起:
text
项目规则
Memory假设一个项目规定:
text
所有新增 Java 类必须放在指定 package。
禁止直接修改生产数据库。
提交代码前必须运行 mvn test。这些要求几乎无论 Agent 做什么任务都成立。
它们更适合作为项目级规则持续存在。
而:
text
怎样发布一个新版本只有真的执行发布任务时才需要。
它就更适合作为 Skill。
可以先这样区分:
text
项目规则
→ 在这个项目里长期都应该遵守什么
Skill
→ 遇到某一类任务时应该怎么做Memory 又是另一个问题。
例如 Agent 曾经知道:
用户更喜欢简洁的 Commit Message。
或者:
上一次排查发现这个项目的测试环境需要特殊配置。
这些是从过去保存下来、以后可能再次使用的信息,更接近 Memory。
可以暂时记成:
text
项目规则 → 长期约束
Skill → 可复用流程方法
Memory → 从过去保存下来的信息实际怎么使用一个 Skill
和 MCP 类似,使用 Agent Skills 也可以分成两种情况。
使用别人提供的 Skill
如果别人已经写好了 Skill,通常只需要把整个 Skill 目录安装到当前 Agent 能够发现的位置。
例如:
text
.agent/skills/
└── pdf-processing/
├── SKILL.md
├── scripts/
└── references/不同 Agent 查找 Skills 的目录可能不同。
安装完成以后,一般不需要每次都说:
请加载
pdf-processingSkill。
当任务和 Skill 的描述匹配时,支持自动发现的 Agent 可以自行判断是否加载。
当然,有一些产品也支持用户主动指定某个 Skill ,比如我们前面介绍 Pi Agent 的时候就提到了。
自己创建一个最小 Skill
自己创建也不复杂。
假设经常需要 Agent 帮忙检查文章,可以创建:
text
article-review/
└── SKILL.md内容:
markdown
---
name: article-review
description: Review technical tutorial articles for repetition, unclear explanations and structural problems.
---
# Article Review
Review the complete article before making changes.
Focus on:
- repeated explanations
- unclear technical claims
- unnecessary sections
- broken logical transitions
- headings that fragment the article too much
Do not rewrite content only for stylistic preference.
When suggesting a change, explain why the change is necessary.到这里,一个最小 Skill 已经成立。
以后如果发现经常还需要检查一套固定文章规范,再增加:
text
references/
└── writing-guide.md如果还需要程序自动验证 Frontmatter:
text
scripts/
└── validate-frontmatter.py而且 Skill 完全可以让 AI 来帮你实现,比如执行了一个流程以后发现以后会复用,那么就可以让 Agent 总结为Skill。
当然也可以从零描述一个需求,然后再让 AI 创建,不过推荐大家创建完成以后一定要实际测试一遍。
Skill 并不是一开始就是非常完美的,可以随着实际使用以及后续需求不断完善优化。
什么样的内容适合做成 Skill
并不是所有 Prompt 都值得变成 Skill。
例如:
text
代码 Review
发布版本
创建 PR
分析事故
整理会议纪要
检查文章
生成项目文档
处理特定格式的数据都比较适合。
因为这些任务通常都有:
- 重复步骤
- 固定要求
- 常见错误
- 输出格式
- 可复用参考资料
相反,如果只是:
帮我解释这一段代码是什么意思。
这种一次性问题,一般没有必要专门创建 Skill。
Skill 也不应该无限做大。
例如:
text
software-engineering这个 Skill 试图规定整个软件开发的一切,很快就会变成一本巨大的说明书。
相比之下:
text
review-pull-request
write-release-notes
debug-ci-failure拥有更明确的使用边界和要求,效果也会比大而全的更好。
使用 Skills 时需要注意什么
第一个问题是 Skill 并不能保证 Agent 一定做对。
如果 Skill 本身写错了:
text
错误流程
过时命令
错误 API
不合理约束Agent 反而可能更加稳定地重复这些错误。
所以 Skill 本质上也是需要维护的工程资产。
第二个问题是,不要把所有知识都塞进 SKILL.md。
如果一个 Skill 需要几十份 API 文档、案例和模板,合理的方式是把它们拆到 references 和 assets,真正需要时再读取。
否则 Skill 本身又会重新变成一个巨大的 Context,污染上下文。
第三个问题是,Skill 可能包含脚本。
因此从网络上下载 Skill 时,不能只看 SKILL.md 写得是否正常,还应该查看:
text
scripts/里到底会执行什么,以及它是否需要文件、网络、凭据或其他敏感权限。
最后,也不要把所有工作习惯都做成 Skill。
如果一条规则始终适用于整个项目,它可能更应该进入项目规则,而不是全局 Skill。这个后续大家在做的时候一定要区分好。
总结
到这里,Agent Skills 最核心的几个问题已经可以串起来:
text
为什么需要 Skill
→ Agent 有 Tool,但不一定知道一类任务该怎么做
Skill 是什么
→ 可以被发现和复用的任务方法包
核心是什么
→ SKILL.md
还能带什么
→ scripts / references / assets
什么时候加载
→ 当前任务需要时按需加载
和 MCP 什么区别
→ MCP 负责连接能力,Skill 负责沉淀方法如果只是使用 Skills,理解这些以后已经可以自己安装或者创建第一个 Skill。
继续往下,还会出现一些更偏技术的问题:
Agent 到底怎样发现几十个 Skills?
description为什么会影响 Skill 是否被选中? 完整 Skill 什么时候进入 Context? 多个 Skills 同时命中怎么办? 不同 Agent 对开放规范做了哪些扩展? Skills 与 Context Engineering 又是什么关系?
这些更适合留到后面的 Agent Skills 原理继续深入。