AI Agent原理篇14:Skills:按需加载的能力包

MCP 解决了「Agent 能连接哪些系统」的问题。但能连接系统,不代表知道怎么把事情做好。比如 Agent 能读写 Excel,不代表它知道你们公司的报表格式;能调用数据库,不代表它知道排查问题的套路。Skills 解决的是「方法」的问题。

一、Skill 是什么

一个 Skill 就是一个文件夹,里面装着完成某类任务所需的说明、脚本和资料:

weekly-report/
├── SKILL.md            # 核心:说明这个技能做什么、怎么做
├── template.md         # 报告模板
├── scripts/
│   └── fetch_metrics.py   # 拉取数据的脚本
└── reference/
    └── metrics.md      # 各项指标的定义和口径

SKILL.md 的开头是一段元信息,至少包含名称和描述:

---
name: weekly-report
description: 生成业务周报。当用户要求写周报、汇总本周数据或做周度复盘时使用。
---

# 生成业务周报

1. 运行 scripts/fetch_metrics.py 拉取本周和上周的核心指标。
2. 指标口径见 reference/metrics.md,计算环比时以此为准。
3. 按 template.md 的结构撰写,先写结论,再写数据和原因。
4. 环比波动超过 20% 的指标必须给出原因分析;原因不明的要明确标注。

可以把 Skill 理解为给 Agent 准备的一份岗位操作手册:遇到这类工作时,照着手册做。

二、核心机制:渐进式加载

如果把所有操作手册都放进 System Prompt,上下文很快就会被塞满(第 07 篇讲过的问题)。Skills 的关键设计是分层、按需加载:

层级 内容 什么时候加载 大小
第一层 名称 + 描述 始终在上下文中 每个技能几十个字
第二层 SKILL.md 正文 模型判断当前任务需要这个技能时 通常几百到几千字
第三层 附带的文档、模板、脚本 执行过程中真正用到时 不限

这样一来,Agent 可以「装备」几十上百个技能,而平时只占用很少的上下文。就像一个人知道书架上有哪些手册,需要时才翻开对应的那本。

脚本还有一个额外的好处:Agent 运行脚本时,只有脚本的输出进入上下文,脚本本身的代码不需要被模型读取。确定性的工作(数据拉取、格式转换、计算)交给脚本,既省上下文,结果也更可靠。

三、description 决定技能会不会被用上

和工具一样,模型完全靠 description 判断什么时候该使用某个技能。一个好的描述要说清楚两件事:

  • 这个技能做什么;
  • 什么情况下应该使用,最好列出用户可能的说法。
差 好
周报工具 生成业务周报。当用户要求写周报、汇总本周数据或做周度复盘时使用。

技能写好了却从来不被触发,十有八九是描述的问题。

四、Skills、MCP、System Prompt 的分工

这三者经常让人困惑,它们回答的是不同的问题:

回答的问题 内容 加载方式
System Prompt 你是谁、始终要遵守什么 身份、通用规则、输出风格 始终加载
MCP / 工具 你能做什么 可调用的能力:查数据库、发消息 工具定义始终加载
Skills 某类事情该怎么做 流程、规范、模板、脚本 按需加载

一个形象的比喻:System Prompt 是员工守则,MCP 是工作账号和系统权限,Skills 是各项工作的操作手册。

它们可以配合使用:一个 Skill 的说明里可以写「用某某 MCP 工具查询数据,然后按这个模板整理」。

五、什么内容适合做成 Skill

  • 反复出现的任务:周报、代码审查、故障复盘、合同初审。
  • 有明确规范的任务:公司的文档格式、品牌规范、数据口径。
  • 需要专业知识的任务:生成特定格式的文件、使用某个内部系统的方法。
  • 你已经给 Agent 解释过多次的事情:每次都要重新交代一遍的流程,就是该写成 Skill 的信号。

不适合的:一次性任务、只需要一两句话就能说清的规则(直接放 System Prompt 更合适)。

六、编写 Skill 的建议

  • SKILL.md 保持精简,只写核心流程。细节资料放到单独的文件里,在正文中说明什么时候去读。
  • 写清楚判断标准,而不是只列步骤。「环比波动超过 20% 要分析原因」比「分析数据变化」有用得多。
  • 规则附上理由,模型能据此处理没写到的情况。
  • 能用脚本的就用脚本,尤其是计算、格式转换、调用接口这类确定性工作。
  • 用真实任务测试:看技能有没有被正确触发、执行结果是否符合预期,再迭代修改。

七、Skills 的现状

Skills 最早由 Anthropic 在 Claude 的产品中推出,随后以开放规范的形式发布,目前已有多个 Agent 产品和开发框架支持同样的 SKILL.md 格式。这意味着写好的 Skill 可以在不同的 Agent 之间复用。各产品的安装位置和具体支持程度不尽相同,以各自文档为准。

需要注意的是,Skill 里可以包含脚本,安装来路不明的 Skill 和运行来路不明的程序一样有风险。只使用可信来源的 Skill,使用前看一遍内容。

本篇小结

  • Skill 是一个文件夹:SKILL.md + 模板 + 资料 + 脚本,是给 Agent 的操作手册。
  • 渐进式加载:平时只加载名称和描述,用到时再读正文和附带文件。
  • description 决定技能会不会被触发。
  • System Prompt 管规则,MCP 管能力,Skills 管方法。
  • 反复出现、有规范、需要专业知识的任务适合做成 Skill。

思考与练习

  • 把你常用的一套日志分析流程写成一个 Skill:SKILL.md 写什么、哪些内容放到附带文件、哪些步骤写成脚本?
  • 为你的 Skill 写一段 description,并列出三种用户可能的说法,检查描述能否覆盖。

上一篇:AI Agent原理篇13:MCP 实战:写一个自己的 MCP Server
下一篇:AI Agent原理篇15:Agent 运行框架(Harness)
返回系列总目录

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇