2026年6月30日,Google 发布 ADK for Go 2.0。新版把多智能体应用从层级式执行推进到图工作流:分类、分支、并行、循环和人工审批都可以成为图中的节点,调度器负责并发、状态持久化,以及进程重启后的继续执行。

这次升级的价值不在于开发者少写几行控制流,而在于“暂停后还能否可靠接着跑”第一次进入框架的核心运行时。对会调用外部系统的智能体,恢复位置、输入记录和人工决定往往比模型本身更难管理。

人工审批不再只是一个回调

ADK Go 2.0 把 human-in-the-loop 设为内置能力。工作流可以发出输入请求并暂停,等待用户批准、修改或拒绝,再从对应节点恢复。状态能够跨进程保存,适合付款、发信、修改客户记录等不能靠一次模型调用直接放行的动作。

动态编排仍使用普通 Go 代码,开发者可以根据运行时结果选择下一节点;同时,单个 agent 和完整工作流图使用同一执行模型,日志与遥测不必为两套运行方式分别适配。

从 1.x 升级,真正危险的是数据结构

官方迁移文档要求把模块路径从 `google.golang.org/adk` 改为 `google.golang.org/adk/v2`。公开 API 的一部分保持不变,但自定义 Agent 若绕过原有调度机制,执行逻辑可能被新图运行时忽略,需要迁移到标准的前后回调。

事件结构也增加了路由、暂停输入、通用输出和节点信息等字段。使用 JSON blob 保存事件的系统通常更容易兼容;如果 session 服务把字段写进固定 SQL 列或严格 schema,必须先迁移存储层,否则恢复工作流时可能出现插入或反序列化失败。

上线前应故意制造一次中断

迁移验证不能只看示例能否跑通。更有价值的测试,是让工作流在人工审批前、并行节点中间和外部调用后分别中断,再重启进程,检查它是否重复执行有副作用的动作、是否保留审批上下文、日志能否还原路径。

ADK Go 2.0 把多智能体编排做得更正式,也把工程责任暴露得更清楚:图能描述路径,却不会自动提供幂等性、权限设计和补偿事务。团队如果只把旧 agent 包进新节点,而不验证恢复语义,2.0 的可靠性能力反而可能掩盖新的重复执行风险。

官方参考:Google Developers Blog