Google 的 Agent 框架不止 Python 一个版本了。
google/adk-go 今天挂在 GitHub Trending 上,7.8K Star,407 次提交,18 小时前刚合入 VertexAI MemoryBank 支持。这不是 Python ADK 的简单移植——它的设计哲学完全不同。
Code-first:Agent 逻辑是代码,不是 prompt
Python 版 ADK 的核心思路是「用声明式配置搭 Agent 流程」。Go 版反着来:用 Go 代码定义 Agent 逻辑、工具调用和编排。
什么意思?Python 版写一个 Agent 可能需要配置 YAML、定义 prompt 模板、挂载工具。Go 版直接在代码里写:
agent := adk.NewAgent("researcher", adk.WithModel("gemini-2.0-flash"))
agent.AddTool(searchTool)
agent.Run(ctx, "查找最新 AI 融资新闻")
没有 YAML 配置文件。没有 prompt 模板工程。就是 Go 代码。
这对 Go 开发者来说很自然。对 Python 开发者来说,可能会觉得少了一层抽象。但抽象本身也会带来调试成本——当 Agent 行为出错时,在代码里加断点比在 YAML 里找问题要直接得多。
不只是换语言
如果仅仅是 Python 翻译成 Go,这文章不值得写。Go 版有几个 Python 版没有的设计:
A2A-Go/v2 原生支持。Google 推的 Agent-to-Agent 协议,Go 版直接集成。两个 Agent 之间可以互相调用、传递上下文,而不是通过 MCP 中转。这意味着多 Agent 协作在 Go 版里是一等公民。
VertexAI MemoryBank。18 小时前刚合入的 PR #801,给 Agent 加了持久化记忆。对话历史、中间状态、工具调用结果都能存到 VertexAI 的记忆库里,下次启动自动恢复。这对需要长期运行的 Agent(比如客服、监控)是刚需。
Model-agnostic 但优化 Gemini。和 Python 版一样,Go 版理论上支持任何 LLM。但源码里对 Gemini 的优化路径更短——毕竟同一个爹。
和 Python 版怎么选?
两条路线,两种开发者画像。
Python ADK 适合:数据科学家、ML 工程师、习惯用 Python 快速原型的团队。配置驱动、prompt 模板、和 Python 生态(LangChain、LlamaIndex)的兼容性更好。
Go ADK 适合:后端工程师、基础设施团队、追求性能和类型安全的场景。编译期检查、并发模型(goroutine + channel)、部署到 Kubernetes 的成熟度都是 Go 的强项。
Google 没有说哪个是"正统"。两个都在积极维护,两个都有独立的 issue 和 PR 流。这反而说明 Google 在 Agent 框架上的策略是「双栈并行」——Python 给 AI 团队,Go 给工程团队。
能不能用?
说实话,Go 版还年轻。9 个 tag,4 个分支,issue 区有 89 个 open issue、123 个 PR。活跃度不错,但成熟度不如 Python 版。
如果你想今天就在生产环境跑一个 Go Agent 框架,我会建议再等两个版本。但如果你是想看看 Google 在 Agent 框架上的工程思路,现在就可以 clone 下来看源码——尤其是 MemoryBank 和 A2A 的实现,值得细读。
Google 在 Agent 基建上的投入正在加速。Python 版 ADK 五月底才开源,Go 版已经 407 次提交了。下一步很可能是 TypeScript 版——Google 的 web 团队不可能坐视不管。