Skip to content

Skills / Agent Skills:可复用技能与编排

📅 主题:Agent Skills — 技能定义、编排与扩展

一、什么是 Agent Skills

Agent Skills(或简称 Skills) 指的是:把 AI Agent 的某一类能力封装成可复用、可组合的「技能单元」,让 Agent 在需要时按描述或触发条件调用,而不是每次都在对话里临时写一大段说明。

可以类比:

  • 函数:把一段逻辑封装成「输入 → 输出」,多处调用。
  • 技能:把「在什么情况下、按什么步骤、用什么规范做事」封装成一份说明(常以 Markdown 或结构化配置存在),Agent 在匹配到场景时加载并遵循。

因此,Skills 解决的是:

  • 可复用:一次写好,多轮对话、多个任务都能用。
  • 可发现:通过名称、描述、触发条件让系统或用户知道「有哪些技能、何时该用」。
  • 可编排:多个技能可以组合成更复杂的工作流(先查库再生成、先审查再提交等)。

在不同产品里,Skills 的形态略有差异(例如 Cursor 的 .cursor/skills/ 下的 SKILL.md,或其他平台的「技能卡片」「Action」等),但核心思想一致:把能力模块化、描述清楚、便于发现与组合


二、Skills 与 Prompt、工具、RAG 的关系

概念作用与 Skills 的关系
Prompt单次请求里「说什么、怎么说」技能里往往包含固定说明与模板,相当于可复用的 Prompt 片段;调用技能时会把技能内容注入上下文
工具 (Tools)调用外部 API、执行代码、查库等技能可以规定何时、如何调用哪些工具;一份技能 = 使用某类工具的「说明书」
RAG从知识库检索再生成技能可以约定「先检索哪类文档、再按什么格式回答」,即检索+生成的流程被封装成技能
MCP工具与资源的标准化协议MCP 提供「有哪些工具/资源」;Skills 提供「在什么场景下、按什么步骤使用它们」

因此:Skills 是「用法的封装」,Prompt 管单次表述,工具/MCP 管能力接口,RAG 管检索与生成流程,Skills 管「什么时候、按什么规范去用它们」。


三、技能如何被描述与发现

3.1 技能描述(Description)

一份技能通常需要简短、明确的描述,用于:

  • 发现:系统或用户根据关键词、场景判断「是否该用这个技能」。
  • 注入:被选中的技能内容会加入 Agent 的上下文(系统提示或当前轮),指导本次行为。

描述最好同时说明:

  • 做什么(WHAT):例如「按团队规范做代码审查」「根据 git diff 生成提交信息」。
  • 何时用(WHEN):例如「在用户请求代码审查、提到 PR、或要求写 commit message 时使用」。

这样 Agent 或路由逻辑才能在高相关性场景下自动选用该技能。

3.2 技能内容结构

技能内容通常包含:

  • 元信息:名称、描述、可选标签或分类。
  • 使用说明:步骤、检查项、注意事项。
  • 模板与格式:输出结构、示例(如 commit 格式、报告模板)。
  • 可选:引用外部文档(如详细规范、示例库)、可执行脚本的调用方式。

保持「核心说明精简、细节外挂」有利于控制上下文长度,需要时再读取详细文档或执行脚本。

3.3 触发方式

  • 显式:用户说「用代码审查技能」「按 RAG 流程回答」。
  • 隐式:系统根据用户意图、当前任务类型自动匹配技能描述中的 WHEN,选择加载哪些技能。

技能描述里的 WHEN 写得好,隐式触发才可靠。


四、技能设计原则(通用)

4.1 高内聚、可复用

一个技能只负责一类任务或一种流程,避免「大杂烩」。这样:

  • 更容易被正确触发(描述清晰)。
  • 可以在不同场景下复用、组合。

4.2 描述具体、含触发词

  • 描述里写出具体能力典型触发词/场景(如「PR」「commit message」「PDF 提取」),便于匹配。
  • 避免空泛的「帮助用户」「处理文档」等表述。

4.3 适度自由与约束

  • 高自由度:多解并存、依赖上下文的(如代码风格建议),用自然语言说明原则即可。
  • 高约束:流程固定、格式严格、易出错的(如发布流程、数据库脚本),用步骤、检查项、模板甚至固定脚本约束。

根据任务「易错程度」决定写多细。

4.4 渐进式展开

  • 主文件里放「何时用 + 核心步骤 + 模板/示例」。
  • 详细规范、长示例放到单独文档,技能里只给链接或文件名,需要时再读,避免一次性塞满上下文。

五、技能编排与组合

编排指:把多个技能或步骤组合成一条完整流程。

  • 顺序:先执行技能 A(如检索文档),再执行技能 B(如按模板生成报告)。
  • 条件:若用户要求「带引用」,则启用「引用标注」技能;否则只生成摘要。
  • 并行:某些场景下可并行调用多个技能(如同时查多个知识库),再合并结果。

实现方式可以是:

  • 在编排层(工作流引擎、Agent 调度)配置「步骤 → 技能/工具」的映射;
  • 或在某一份「总控技能」里用自然语言写出「先做什么、再做什么、遇到什么情况用哪个技能」,由 Agent 按说明执行。

技能设计得越模块化,编排时就越灵活。


六、与 MCP、RAG 的配合

  • MCP 定义了「有哪些工具、资源可用」(例如数据库、文件、API)。Skills 定义「在什么任务下、按什么规范使用这些工具」——例如「查询数据库时先看 schema、再拼 SQL、再校验结果」可以写成一个技能,内部引用 MCP 暴露的数据库工具。
  • RAG 提供「检索 → 注入 → 生成」的能力。可以有一个「RAG 问答」技能:规定检索哪些集合、Top-K 与重排序策略、Prompt 模板和引用格式,这样每次做 RAG 时都一致、可复现。

Skills 不替代 MCP 或 RAG,而是在它们之上加一层用法与策略,便于统一维护和复用。


七、小结

  1. Agent Skills = 把一类能力封装成可复用、可发现的「技能单元」,通过描述(WHAT + WHEN)被选中并注入上下文,指导 Agent 行为。
  2. 与 Prompt / 工具 / RAG / MCP:Skills 是「用法的封装」;Prompt 管表述,工具/MCP 管接口,RAG 管检索与生成,Skills 管何时、按何规范使用它们。
  3. 描述与发现:描述要具体、含触发词;内容结构清晰,核心精简、细节可外挂;支持显式/隐式触发。
  4. 设计原则:高内聚、可复用;描述具体;按任务易错程度决定约束程度;渐进式展开。
  5. 编排:通过顺序、条件、并行组合多个技能,形成完整工作流;与 MCP、RAG 配合可形成「工具 + 用法 + 检索策略」的统一层。

Released under the MIT License.