Agent Skills 五种设计模式
⭕
Tool Wrapper(工具封装模式):将外部工具封装为即插即用技能。
Generator(生成器模式) :基于模板将需求转化为结构化的标准。
Reviewer(审查者模式):依据规范对代码或文档进行质量评审。
Inversion(反转模式):行动前先向用户澄清歧义,避免返工。
Pipeline(流水线模式):将复杂任务分解为多个有序阶段执行。

模式一:工具封装(Tool Wrapper)
•
工具封装让你的 Agent 能够按需获取特定库的上下文。

🌐
这是最简单的实现模式。SKILL.md 文件监听用户提示中的特定库关键词,从 references/ 目录动态加载内部文档,并将这些规则作为绝对准则应用。这正是你向团队开发者工作流中分发内部编码规范或特定框架最佳实践的机制。
代码块
Plain Text
# skills/api-expert/SKILL.md
---
name: api-expert
description: FastAPI 开发最佳实践与规范。在构建、审查或调试 FastAPI 应用、REST API 或 Pydantic 模型时使用。
metadata:
pattern: tool-wrapper
domain: fastapi
---
你是 FastAPI 开发专家。将以下规范应用于用户的代码或问题。
## 核心规范
加载 'references/conventions.md' 获取完整的 FastAPI 最佳实践列表。
## 审查代码时
1. 加载规范参考文件
2. 对照每条规范检查用户代码
模式二:生成器(Generator)
•
工具封装负责应用知识,而生成器负责强制输出一致性。如果你苦恼于 Agent 每次生成的文档结构都不一样,生成器通过编排"填空"流程来解决这个问题。

💪
它利用两个可选目录:../assets/ 存放输出模板,references/ 存放风格指南。指令充当项目经理的角色,告诉 Agent 加载模板、读取风格指南、向用户询问缺失的变量,然后填充文档。这对于生成可预期的 API 文档、标准化提交信息或搭建项目架构非常实用。
在这个技术报告生成器示例中,Skill 文件本身不包含实际的布局或语法规则,它只是协调这些资源的检索,并强制 Agent 逐步执行:
代码块
Plain Text
# skills/report-generator/SKILL.md
---
name: report-generator
description: 生成 Markdown 格式的结构化技术报告。当用户要求撰写、创建或起草报告、摘要或分析文档时使用。
metadata:
pattern: generator
output-format: markdown
---
模式三:审查器(Reviewer)
•
审查器模式将"检查什么"与"如何检查"分离开来。与其在系统提示中罗列每一种代码坏味道,不如将模块化的评审标准存储在 references/review-checklist.md 文件中。
💪
当用户提交代码时,Agent 加载这份清单并系统地对提交内容评分,按严重程度分组整理发现的问题。如果你把 Python 风格清单换成 OWASP 安全清单,使用完全相同的 Skill 基础设施,就能得到一个完全不同的专项审计工具。这是自动化 PR 审查或在人工审查前捕获漏洞的高效方式。
下面的代码审查器 Skill 展示了这种分离。指令保持静态,但 Agent 从外部清单动态加载具体的审查标准,并强制输出结构化的、按严重程度分级的结果:
代码块
Plain Text
# skills/code-reviewer/SKILL.md
---
name: code-reviewer
模式四:反转(Inversion)
•
Agent 天生倾向于立即猜测并生成内容。反转模式颠覆了这一动态。不再是用户驱动提示、Agent 执行,而是让 Agent 扮演采访者的角色。
💪
反转依赖明确的、不可绕过的门控指令(如"在所有阶段完成之前不得开始构建"),强制 Agent 先收集上下文。它按顺序提出结构化问题,等待你的回答后再进入下一阶段。在获得完整的需求和部署约束全貌之前,Agent 拒绝综合最终输出。
来看这个项目规划器 Skill。关键要素是严格的阶段划分,以及明确阻止 Agent 在收集完所有用户回答之前综合最终计划的门控提示:
代码块
Plain Text
模式五:流水线(Pipeline)
•
对于复杂任务,你无法承受步骤被跳过或指令被忽视的代价。流水线模式强制执行带有硬性检查点的严格顺序工作流。
👍
指令本身就是工作流定义。通过实现明确的菱形门控条件(例如要求用户在从文档字符串生成阶段进入最终组装阶段之前给予确认),流水线确保 Agent 不能绕过复杂任务直接呈现未经验证的最终结果。
这种模式充分利用所有可选目录,只在特定步骤需要时才引入不同的参考文件和模板,保持上下文窗口的整洁。
在这个文档生成流水线示例中,注意明确的门控条件——Agent 被明确禁止在用户确认上一步生成的文档字符串之前进入组装阶段:
代码块
Plain Text
# skills/doc-pipeline/SKILL.md
---
name: doc-pipeline
description: 通过多步骤流水线从 Python 源代码生成 API 文档。当用户要求为模块编写文档、生成 API 文档或从代码创建文档时使用。
metadata:
pattern: pipeline
steps: "4"
---
你正在运行一个文档生成流水线。按顺序执行每个步骤。不得跳过步骤,步骤失败时不得继续。
如何选择合适的模式
•
每种模式回答的是不同的问题。用这棵决策树找到适合你场景的模式:
模式可以组合使用
🔔
流水线 Skill 可以在末尾加入一个审查器步骤来自我检验。生成器可以在开头借助反转模式收集必要的变量,再填充模板。得益于 ADK 的 SkillToolset 和递进式披露机制,你的 Agent 在运行时只会为真正需要的模式消耗上下文 token。
•
这五种模式并不互斥,它们可以组合。不要再试图把复杂而脆弱的指令塞进单个系统提示。拆解你的工作流,应用正确的结构模式,构建更可靠的 Agent。