5 种技能设计模式

五种可复用的结构化模板,用于组织 Agent 系统中的 SKILL.md 内容

每个 Agent 技能都遵循相同的 SKILL.md 规范 — YAML frontmatter、markdown 指令和可选的资源目录。但同一格式可以服务于截然不同的目的。以下五种模式各自以不同方式组织内容:不同的指令风格、不同的资源类型、指令与支持文件之间不同的关系。

选择合适的模式 SKILL.md 设计决策指南 开始 产生输出? 基于模板? Tool Wrapper api_call Generator document_create 评估现有 输入? Reviewer book_open 需要先获取 用户输入? Inversion flip_perspective 有顺序 步骤? Pipeline step_sequence Tool Wrapper api_call


模式 1:Tool Wrapper — 教 Agent 掌握一个库

将库或工具的规范打包为按需加载的知识,Agent 在使用该技术时自动加载。

模式 1: Tool Wrapper 教会 Agent 一个库 SKILL.md 触发关键词 审查 + 编写 指令 load_skill _resource references/ conventions.md 最佳实践 和规则 知识 应用 Agent 应用规则 技能加载后表现为 领域专家行为 无脚本、无模板 — 纯知识

核心特征:

  • 最简单的模式 — 指令 + 参考文件
  • 无需模板或脚本
  • 使用 references/ 目录存放详细的规范文档
  • 技能激活后 Agent 立刻成为该领域专家

适用场景: 在代码库中需要保持特定库或框架的使用一致性。

实际案例: FastAPI 最佳实践、Terraform 模式、安全策略、数据库查询优化。

skill/
  SKILL.md            # 指令:何时应用、关键规则
  references/
    conventions.md    # 详细的模式、反模式、示例

模式 2:Generator — 生成结构化输出

通过填充可复用的模板来生成文档、报告或配置,每次都保持一致的结构。

模式 2: Generator 从模板生成结构化输出 SKILL.md 分步 生成流程 如何编写 产出什么 references/ style-guide.md 语气、格式规则 assets/ report-template.md 输出结构 填充 模板 结构化 输出 报告、文档或 已填充的配置 模板确保结构,风格指南确保质量

核心特征:

  • 同时使用 assets/(输出模板)和 references/(风格指南)
  • 指令编排模板填充过程
  • 强调结构优先于创意
  • 更换模板文件即可改变输出,无需修改指令

适用场景: 输出需要固定结构,一致性比灵活性更重要。

实际案例: 技术报告、API 文档、提交信息、项目脚手架。

skill/
  SKILL.md            # 指令:如何填充模板
  assets/
    template.md       # 带占位符的输出骨架
  references/
    style-guide.md    # 语调、格式、术语规则

模式 3:Reviewer — 按标准评估

根据存储在 references/ 中的检查清单评估代码或内容,生成按严重程度分类的评审结果。

模式 3: Reviewer 依据标准进行评估 用户代码 待审查输入 code_file 提交 SKILL.md 审查协议 加载、应用、报告 加载规则 产出 references/ review-checklist.md 按严重等级分类的规则 审查报告 按严重等级列出发现 评分 + 建议 更换检查清单即可获得不同类型的审查

核心特征:

  • 将”检查什么”(清单文件)与”如何检查”(评审协议)分离
  • 生成按严重程度分类的发现(错误、警告、信息)
  • 提供行号、解释和具体修复建议
  • 清单驱动行为,而非依赖 Agent 预训练知识

适用场景: 任何需要人类评审员按清单工作的场景。

实际案例: 代码质量评审、安全审计、编辑审校、合规验证。

skill/
  SKILL.md            # 指令:评审协议、输出格式
  references/
    checklist.md      # 检查项、严重程度分类

模式 4:Inversion — 技能反向访谈

反转交互方向 — 技能指示 Agent 在定义的阶段中提出结构化问题,在收集足够信息后才生成输出。

模式 4: Inversion 技能来采访你 阶段 1: 发现 Q1: 问题? Q2: 用户? Q3: 规模? 全部回答 阶段 2: 约束 Q4: 平台? Q5: 技术栈? Q6: 需求? 全部回答 阶段 3: 综合 加载模板 填充 → 确认 Agent 提问 → 用户回答 → 技能驱动对话 通过结构化问题 收集需求 通过技术约束 缩小范围 从收集的答案中 生成输出 与其他模式不同,Inversion 模式颠倒了控制 — 技能在产生输出前先提问

核心特征:

  • 多轮交互,Agent 先收集上下文
  • 分阶段结构(各阶段必须按序完成)
  • 使用显式门控,如”在所有阶段完成之前不要开始构建”
  • 防止 Agent 基于假设生成输出

适用场景: Agent 需要从用户获取全面的上下文信息后才能产出有价值的工作。

实际案例: 需求收集、诊断访谈、配置向导、系统设计访谈。

skill/
  SKILL.md            # 指令:阶段、问题、门控条件
  assets/
    question-bank.md  # 按阶段组织的结构化问题

模式 5:Pipeline — 强制多步工作流

定义顺序执行的工作流,每个步骤必须在下一步开始前完成,通过显式门控条件防止跳步。

模式 5: Pipeline 通过门控强制执行多步骤工作流 步骤 1 步骤 2 步骤 3 步骤 4 search_code 解析和盘点 门控 1 edit_document 生成文档字符串 门控 2 merge_documents 组装文档 verified 质量检查 用户确认? 用户批准? 门控条件防止跳过验证

核心特征:

  • 最复杂的模式(使用所有三个可选目录)
  • 步骤按顺序执行,带有菱形门控条件
  • “用户确认?“门控防止绕过验证
  • 每个步骤只加载所需资源

适用场景: 多步流程中顺序很重要,跳过验证会产生错误输出。

实际案例: 文档生成、数据处理、部署工作流、Agent 上手引导。

skill/
  SKILL.md            # 指令:步骤序列、门控条件
  references/
    standards.md      # 每步的质量标准
  assets/
    output-template.md
  scripts/
    validate.sh       # 步骤间的自动化验证

如何选择模式

模式适用场景使用的目录复杂度
Tool WrapperAgent 需要特定技术的专业知识references/
Generator输出必须每次都遵循固定模板assets/ + references/
Reviewer代码或内容需要按清单评估references/
InversionAgent 必须先向用户收集上下文assets/
Pipeline工作流有带验证门控的有序步骤references/ + assets/ + scripts/

模式可以组合。 Pipeline 可以包含 Reviewer 步骤。Generator 可以用 Inversion 收集输入。Tool Wrapper 可以作为 Pipeline 中的参考文件嵌入。生产系统通常组合 2-3 种模式。

如果不确定,从 Tool Wrapper 开始 — 它最简单、采用最广泛。随着复杂度增加再升级到其他模式。


常见问题

技能可以跨不同的 Agent 工具使用吗? 可以。遵循 agentskills.io 规范 的技能可在 30 多个工具中使用,包括 Claude Code、Gemini CLI、Cursor、GitHub Copilot 等。

模式可以组合吗? 可以。Pipeline 技能可以包含 Reviewer 步骤。Generator 可以用 Inversion 收集输入。生产系统通常每个技能使用 2 种模式的中位数。

技能和工具有什么区别? 工具赋予 Agent 执行动作的能力 — 调用 API、读取文件、查询数据库。技能教会 Agent 何时 以及 如何 有效地使用这些工具。

应该从哪个模式开始?Tool Wrapper 开始 — 只需要指令加参考文件。将团队的编码规范或库的最佳实践打包到带有 references/ 目录的 SKILL.md 中。

如何测试技能的有效性? 创建测试用例,分别在有技能和无技能的情况下运行,衡量通过率的差值。


参考资料

这页有帮助吗?