深度解析 Google ADK 的 5 类 Agent Skill 设计模式

2026年3月19日

96

686

深度解析 Google ADK 的 5 类 Agent Skill 设计模式

2026年3月18日,Google Cloud Tech官方发布了「5 Agent Skill design patterns every ADK developer should know」文章,在48小时内收获了99万+查看和2800+点赞。这篇文章提出了五种设计模式:Tool Wrapper、Generator、Reviewer、Inversion和Pipeline。然而,一个关键问题被严重忽略:这些模式在adk-python源码中到底实现了多少?哪些有框架级保障,哪些只是靠提示词“许愿”?

五种设计模式的源码实现分析

ADK的skills体系围绕SkillToolset类构建,实现了一套三层渐进式披露(progressive disclosure)架构。L1层list_skills仅加载frontmatter(name+description),token成本极低;L2层load_skill加载SKILL.md的instructions全文,成本中等;L3层load_skill_resource按需加载references/assets/scripts中的具体文件。这套设计的核心价值在于:Agent在对话开始时只“看到“skill的名字和描述,只有当大模型判断需要某个skill时才加载完整指令,再按需加载具体资源,有效控制了上下文消耗。

Inversion与Pipeline的实现困境

Tool Wrapper是五个模式中实现最完整的,其核心是LoadSkillResourceTool。当SKILL.md中写着「Load references/conventions.md」,LLM会调用load_skill_resource触发代码加载对应文件。Generator模式同样由LoadSkillResourceTool支撑,但模板“填充“逻辑完全由大模型执行instructions完成,框架不会校验输出是否包含模板中的所有section。Reviewer模式在源码层面与Tool Wrapper完全共享同一套代码,区别仅在于SKILL.md的instructions赋予了不同语义。

ADK Skill定义知识,ADK Agent编排层编排流程。这是最务实的分工。

“53AI”

Inversion模式的核心是“阶段门控”,要求「DO NOT start building until all phases are complete」。但在adk-python源码中,没有任何代码实现阶段状态管理或门控逻辑。这意味着「DO NOT proceed」的约束完全依赖大模型对自然语言的遵守。实测表明GPT-4级别模型在3-5轮内通常能遵守,但5-10轮后注意力稀释可能跳过阶段。Pipeline模式是承诺最大但实现最弱的,SkillToolset本身没有checkpoint机制、没有步骤状态机、没有步骤校验。

企业级落地修正建议

对于Inversion模式,建议使用ADK原生的before_tool_callback实现显式状态机:在tool_context.state中维护_skill_phase,每个阶段完成后显式推进,把“约定“变成“代码”。对于Pipeline模式,有两条路径:路径A是利用SequentialAgent+require_confirmation实现Pipeline,每个步骤拆成独立Agent+Tool;路径B是引入LangGraph/Prefect/Temporal等外部编排框架。此外,建议在SkillToolset外层加缓存避免重复加载,对Generator和Reviewer的输出加Pydantic结构化校验。

如有侵权,请联系删除。

Related Articles

联系我们 预约演示
小墨 AI