Google ADK(Agent Development Kit)实战指南:A2A 协议、Vertex AI 集成与 Java 双语言
Google ADK 是 Google 官方 Agent SDK,支持 Python 和 Java 双语言,深度集成 Vertex AI 与 Gemini 模型。本文解析 ADK 的 Agent、Tool、Session、A2A 协议四大核心,对比 LangGraph/OpenAI Agents SDK/Claude Agent SDK,并给出企业部署路径。
Google ADK 是 Google 在 2025 年发布的官方 Agent SDK,专门为 Gemini 模型生态设计。它的两大差异化让它在 2026 年的企业市场快速站稳脚跟:Java 双语言支持 + A2A 跨 Agent 协议。本文系统讲清楚它的设计、用法、部署和选型。
一、为什么需要 ADK
2024-2025 年,企业市场对 Agent 框架有几个核心痛点:
- 传统企业 Java 团队无框架可用:LangGraph/CrewAI 都是 Python-only
- 跨 Agent 通信缺乏标准:每个框架都自己定义协议
- 生产级集成成本高:IAM、审计、合规等企业特性需要自己实现
- GCP 生态缺乏原生 Agent 抽象:用 LangChain 调 Gemini 总是隔着一层
ADK 是 Google 对这些痛点的官方回应。
二、四大核心抽象
| 抽象 | 作用 | 类比 |
|---|---|---|
| Agent | LLM + 工具集 + system instruction | 与 OpenAI Agents SDK 类似 |
| Tool | 函数调用,支持 Python/Java 自动生成 schema | 类似 function calling |
| Session | 状态管理(跨 turn 的对话上下文) | 类似 LangGraph 的 state |
| Runner | 执行编排(同步/异步/流式) | 类似 OpenAI Runner |
整体设计与 OpenAI Agents SDK 非常相似,但有 Google 特色的 Session 和 Runner 抽象。
三、Python 上手示例
from google.adk import Agent, Runner
from google.adk.sessions import InMemorySessionService
agent = Agent(
name="research_agent",
model="gemini-2.5-pro",
instruction="You help users research topics using web search.",
tools=[web_search_tool, fetch_url_tool],
)
session_service = InMemorySessionService()
runner = Runner(agent=agent, session_service=session_service)
response = await runner.run_async("Summarize the latest on agent frameworks.")
四、Java 上手示例(企业关键卖点)
Agent agent = Agent.builder()
.name("researchAgent")
.model("gemini-2.5-pro")
.instruction("You help users research topics.")
.tools(List.of(webSearchTool, fetchUrlTool))
.build();
Runner runner = Runner.builder()
.agent(agent)
.sessionService(new InMemorySessionService())
.build();
String response = runner.run("Summarize the latest on agent frameworks.");
Java 支持对传统企业团队意义重大:金融、保险、制造业大量 Java 后端,过去要上 Agent 必须新建 Python 服务。ADK 之后可以直接在 Spring Boot 应用里嵌入 Agent。
五、A2A(Agent-to-Agent)协议
A2A 是 Google 2025 年推出的跨 Agent 通信协议,定位类似 MCP 但解决的是不同问题:
| 协议 | 解决问题 | 类比 |
|---|---|---|
| MCP | Agent 与工具的连接 | 类似 LSP(语言服务器协议) |
| A2A | Agent 与 Agent 的通信 | 类似 HTTP 之于 Web 服务 |
A2A 让你可以把不同框架(ADK、LangGraph、CrewAI)构建的 Agent 互相通信,不再被框架锁定。这是 Google 重要的生态战略——通过开放协议吸引非 Google 框架加入。
示例:用 A2A 调用一个外部 Agent
from google.adk.a2a import RemoteAgent
# 连接到一个部署在别处的 Agent
crewai_agent = RemoteAgent(url="https://my-crewai-app.com/a2a")
result = await crewai_agent.invoke("Process this task")
六、Vertex AI 深度集成
ADK 在 Vertex AI 上的部署是它最强的企业卖点:
- IAM 集成:Agent 调用方权限用 Google Cloud IAM 管理
- VPC-SC 支持:可在 Service Perimeter 内安全运行
- CMEK:客户自管加密密钥,满足金融/医疗合规
- 审计日志:所有 Agent 调用自动进 Cloud Audit Logs
- Model Garden:除了 Gemini,可调用 200+ 开源/第三方模型
- Reasoning Engine:托管 Agent 运行时,自动扩缩容
这些特性让 GCP 现有客户上 Agent 的成本极低。
七、本地开发灵活性
重要澄清:ADK 不强制绑定 Vertex AI。本地开发可以:
from google.adk import Agent
# 用 OpenAI 模型(通过 LiteLLM)
agent = Agent(
name="my_agent",
model="litellm/gpt-5",
instruction="..."
)
这个设计让 ADK 在"既要 GCP 生产部署,又要本地多模型开发"的场景下特别合适。
八、与同类框架对比
| 维度 | Google ADK | OpenAI Agents SDK | LangGraph | Claude Agent SDK |
|---|---|---|---|---|
| 主语言 | Python + Java | Python | Python + TS | Python + TS |
| 模型支持 | Gemini 优先,多模型 | OpenAI 专属 | 多模型 | Claude 专属 |
| 跨 Agent 协议 | A2A + MCP | Handoff | 无原生 | Sub-agent |
| 企业特性 | IAM/VPC-SC/CMEK/审计 | 弱 | 自建 | 弱 |
| 部署 | Vertex AI / 本地 | OpenAI 平台 | 自建 | Anthropic API |
| 适合规模 | 企业级 | 中小团队 | 任意 | 中小团队 |
九、什么时候用 ADK
强烈推荐:
- 已有 GCP 投入,希望 Agent 应用享受现有 IAM/VPC/审计体系
- Java 技术栈团队,希望 Agent 能力融入现有后端
- 需要部署多 Agent 系统,且希望未来跨框架通信(A2A)
- 合规要求高(金融、医疗、政府),需要 CMEK/审计日志
不太合适:
- 创业小团队,没有 GCP 投入 → OpenAI Agents SDK / LangGraph 更轻
- 强依赖 OpenAI 模型 → 直接用 OpenAI Agents SDK
- 需要复杂状态机和精细流程控制 → LangGraph
十、迁移路径
如果从 LangGraph 迁移到 ADK:
- 保留 LangGraph 作为工具层:把现有 LangGraph 工作流封装为 ADK Tool
- 逐个 Agent 迁移:先把入口 Agent 改成 ADK,内部 Agent 仍用 LangGraph
- 用 A2A 桥接:迁移期间用 A2A 让新旧 Agent 通信
这个渐进路径避免了大爆炸式重写。
十一、常见坑
- Vertex AI 定价:Reasoning Engine 按运行时间计费,长期 idle 要主动关闭
- Gemini 配额:免费层很小,生产部署前申请配额提升
- Java 版滞后:Java 版本功能落后 Python 约 1-2 个版本,新特性优先 Python
- A2A 兼容性:A2A 还在演进,与社区框架(LangGraph/CrewAI)的互操作要测
总结
ADK 不是要取代 LangGraph,而是给企业市场一个官方答案——尤其是 Java 团队和 GCP 客户。如果你的团队符合这个画像,ADK 是 2026 年最值得投入的 Agent 框架。
本文由 AgentList 团队整理。更多 Agent 框架、工具、应用项目,请浏览 AgentList 项目目录。
本文涉及的相关项目
- Google ADK Python — 本文主角,Google 官方 Agent SDK
- Gemini CLI — Google 官方终端 Agent,与 ADK 同源,有免费额度,适合预算敏感的开发者
- OpenAI Agents Python — OpenAI 对标官方 SDK,适合 OpenAI 生态团队
- Microsoft Agent Framework — Microsoft 统一 Agent 框架,.NET + Java 企业市场对标
- LangGraph — 生产级复杂工作流的状态图方案
- CrewAI — 角色化多 Agent 协作对比
核心要点
- ADK 的最大差异化是 Java 支持——传统企业 Java 团队终于有了官方 Agent SDK,无需切换技术栈。
- A2A(Agent-to-Agent)协议是 Google 推动的跨 Agent 通信标准,可能成为 MCP 之后的下一个重要协议。
- ADK 与 Vertex AI / Model Garden 深度集成,但本地开发也支持 LiteLLM/OpenAI 等,不强制绑定。
- 企业级特性成熟:IAM、VPC-SC、CMEK、审计日志开箱即用。
- 学习曲线比 LangGraph 平缓,但灵活性略低——这是企业产品的典型权衡。
常见问题
- Google ADK 和 Google Gemini 是什么关系?
- Gemini 是大语言模型;ADK 是构建 Agent 应用的 SDK。ADK 可以调用 Gemini 模型,也支持其他模型(通过 LiteLLM 或直接 OpenAI API)。
- ADK 必须用 Vertex AI 吗?
- 不是。本地开发可以用 Google AI Studio API 或任何兼容 OpenAI 的 endpoint。但生产部署推荐 Vertex AI,享受企业级特性。
- A2A 和 MCP 是什么关系?
- MCP 解决 Agent 与工具的连接;A2A 解决 Agent 与 Agent 的通信。两者互补,Google 同时支持 MCP 和 A2A。
- ADK 适合创业团队用吗?
- 适合,但只有当你确定要长期用 Gemini 模型时。如果还在多模型评估阶段,LangGraph 或 OpenAI Agents SDK 更灵活。
本文涉及的项目
Agent Development Kit
20.8k ⭐Google Agent Development Kit (ADK) 是 Google 提供的 Agent 开发框架,支持构建复杂的 AI Agent 系统,提供工具集成、多模态处理等能力。
Gemini CLI
106.1k ⭐Gemini CLI 是 Google 推出的终端 AI Agent 工具,支持代码生成、文件操作和多轮对话,提供免费使用层级。
LangGraph
37.7k ⭐LangGraph 是一个用于构建可控、可调试、长期运行的有状态 Agent 框架,以图的方式描述 Agent 的状态与控制流。
OpenAI Agents Python
28.0k ⭐OpenAI 官方推出的轻量级多 Agent 工作流框架,支持构建复杂的多步骤 AI Agent 应用,提供工具调用、Agent 交接、安全护栏等核心功能。
Microsoft Agent Framework
12.3k ⭐微软官方多语言 Agent 框架,支持 Python 和 .NET,提供图式工作流编排、OpenTelemetry 可观测性和 DevUI 调试工具。