Agent 框架 10:Google ADK——官方智能体开发套件与生态集成

在主流大模型厂商竞相推出自家开发套件的背景下,Google 于 2025 年推出了官方智能体开发框架 Google ADK(Agent Development Kit)(PyPI 包名为 google-adk,开源仓库:google/adk-python)。

与 OpenAI 推出的 Agents SDK 遥相呼应,Google ADK 的核心使命不是替代通用全能的图编排工具,而是为基于 Gemini 2.0 的开发者提供一套第一方、原生且具备企业级合规保障的智能体开发标准。它深度打通了 Google 搜索真实接地(Grounding)、云端代码沙箱执行,并原生支持无缝部署至 Google Cloud Vertex AI。


核心系统架构:Agent 与 Runner 调度模型

Google ADK 采用了经典且清晰的“定义与执行分离”架构模式:开发者只负责声明 Agent 的意图、指令与工具;具体的会话持久化、状态流转和执行调度则完全托付给 Runner:


核心概念原语

Google ADK 抽象出的核心构件非常纯粹,没有复杂的多重嵌套:

构件 运行时角色 核心职责
Agent 智能体规范声明 绑定大模型版本(如 Gemini 2.0 Flash)、系统级角色指令(Instruction)与可用工具集合
Runner 运行时执行器 智能体的执行引擎,管理单轮/多轮消息的分发、工具拦截调用与事件流输出
Session / SessionService 会话上下文管理 隔离不同终端用户和不同会话的上下文,支持内存暂存或持久化数据库存储
MultiAgent 组合器 多智能体拓扑容器 原生提供 SequentialAgent、ParallelAgent 等开箱即用的多 Agent 编排模式
Google Tools 第一方专有工具 官方封装的高安全级别工具,如 Google 搜索直连、沙箱代码运行

安装与快速启动

通过 pip 安装 Google ADK:

1
pip install google-adk

配置 Google AI Studio 获取的 API 密钥:

1
export GOOGLE_API_KEY="your-gemini-api-key"

最小示例:创建 Agent 并通过 Runner 执行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
from google.adk.agents import Agent
from google.adk.runners import Runner
from google.adk.sessions import InMemorySessionService
from google.genai import types

# 1. 声明 Agent 实体
root_agent = Agent(
name="tech_consultant",
model="gemini-2.0-flash",
description="专业的技术咨询顾问智能体",
instruction="你是一名客观严谨的技术专家,用精炼的中文回答问题,不使用夸张修辞。",
)

# 2. 组装 Runner 运行时
session_service = InMemorySessionService()
runner = Runner(
agent=root_agent,
session_service=session_service,
app_name="adk_demo_app",
)

# 3. 创建独立会话
session = session_service.create_session(app_name="adk_demo_app", user_id="engineer_01")

# 4. 发送请求并消费事件流
events = runner.run(
user_id="engineer_01",
session_id=session.id,
new_message=types.Content(
role="user",
parts=[types.Part(text="简要介绍 Gemini 2.0 Flash 的核心架构定位。")],
),
)

for event in events:
if event.is_final_response():
print("Agent 最终回复:\n", event.content.parts[0].text)

强类型工具定义:利用 Python 原生规范

在 Google ADK 中,定义外部工具不需要继承冗长的 BaseTool 类,只要编写带有标准 Python 类型注解和 Google 风格 Docstring 的普通函数,框架会自动推导出规范的 OpenAPI Schema:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
def query_cloud_resource(resource_type: str, region: str = "asia-east1") -> dict:
"""查询指定云区域中托管资源的运行状态与负载。

Args:
resource_type: 资源类型,例如 'gke_cluster'、'cloud_sql'、'vertex_endpoint'
region: 资源所在的云机房区域,默认为 'asia-east1'

Returns:
包含资源健康状态、节点数与 CPU 负载率的结构化字典
"""
# 模拟实际调用 Google Cloud API
mock_data = {
"gke_cluster": {"status": "HEALTHY", "nodes": 12, "cpu_usage": "43%"},
"cloud_sql": {"status": "RUNNING", "tier": "db-custom-8-32768", "connections": 120},
}
return mock_data.get(resource_type, {"error": f"在 {region} 未找到类型为 {resource_type} 的实例"})

# 绑定工具到 Agent
devops_agent = Agent(
name="devops_agent",
model="gemini-2.0-flash",
instruction="你可以根据运维工程师的指令,实时查询云平台基础设施的健康指标。",
tools=[query_cloud_resource],
)

多智能体编排三剑客

对于需要分工协作的复杂工程,Google ADK 原生内置了三种经典拓扑:

1. 顺序执行流水线(SequentialAgent)

1
2
3
4
5
6
7
8
9
10
11
from google.adk.agents import SequentialAgent

pipeline = SequentialAgent(
name="incident_response_pipeline",
sub_agents=[
log_analyzer_agent, # 第 1 步:分析崩溃日志
root_cause_agent, # 第 2 步:推导根本原因
fix_suggester_agent, # 第 3 步:生成应急处置脚本
],
description="按照标准 SRE SOP 顺序执行线上故障应急流",
)

2. 并行扇出汇总(ParallelAgent)

1
2
3
4
5
6
7
8
9
10
11
from google.adk.agents import ParallelAgent

parallel_gather = ParallelAgent(
name="multi_source_gather",
sub_agents=[
github_agent,
jira_agent,
confluence_agent,
],
description="并发从 GitHub、Jira 和内部知识库拉取相关信息",
)

3. LLM 动态路由(Router)

1
2
3
4
5
6
7
8
9
router_agent = Agent(
name="gateway_router",
model="gemini-2.0-flash",
instruction="""审视用户的具体意图,自动分发给最专业的下属智能体:
- 属于云资源与服务器问题 -> 转交 infrastructure_agent
- 属于代码与语法报错问题 -> 转交 code_agent
- 属于账号与费用账单问题 -> 转交 billing_agent""",
sub_agents=[infra_agent, code_agent, billing_agent],
)

杀手级特性:Google 第一方生态能力开箱即用

Google ADK 最核心的护城河在于与 Google 底层技术能力的零胶水打通:

1. Google Search Grounding(真实联网事实检索)

大模型最怕输出虚假时效信息。通过引入 google_search,模型会直接利用 Google 搜索引擎的最新索引对生成内容进行事实接地(Grounding),并返回带真实来源 URL 的元数据:

1
2
3
4
5
6
7
8
from google.adk.tools import google_search

search_grounded_agent = Agent(
name="fact_search_agent",
model="gemini-2.0-flash",
tools=[google_search],
instruction="必须严格基于 Google 搜索的最新真实结果回答,附带权威引用。",
)

2. 安全沙箱代码执行(Code Execution)

在处理复杂数据分析或算法推演时,可以让模型在 Google 隔离的安全沙箱中直接执行 Python 脚本,以执行结果作为最终答案:

1
2
3
4
5
6
7
8
from google.adk.tools import code_execution

python_solver_agent = Agent(
name="math_solver",
model="gemini-2.0-flash",
tools=[code_execution],
instruction="当涉及复杂数学推演或数据计算时,必须编写并运行 Python 代码验证。",
)

调试与企业级上云:ADK Web 与 Vertex AI

1. 本地一键可视化控制台

ADK 自带轻量级 Web 调试终端,启动后可直接在浏览器中观察每一步的工具调用详情:

1
2
adk web --port 8000
# 访问 http://localhost:8000 即可进入图形化交互界面

2. 企业级云端托管(Vertex AI Agent Engine)

不需要自己搭建复杂的高可用容器集群,通过替换为 VertexAIRunner 即可直接将 Agent 托管至 Google Cloud 的无服务器智能体引擎上:

1
2
3
4
5
6
7
from google.adk.runners import VertexAIRunner

cloud_runner = VertexAIRunner(
agent=root_agent,
project="corp-ai-prod-2026",
location="us-central1",
)

优缺点分析与工程选型边界

核心优势

  1. 原厂深度调优:专门针对 Gemini 系列模型进行上下文和工具调度优化,Token 损耗更低、首字延迟更低。
  2. 第一方高质量工具:开箱即用 Google 搜索 Grounding 与沙箱代码执行,省去自建爬虫与 Docker 隔离的巨大成本。
  3. 架构整洁克制:接口语义清晰,代码量极少,学习成本远低于 LangChain。
  4. 云原生一键投产:与 GCP Vertex AI 原生打通,具备企业级 IAM 权限与合规审计能力。

现实痛点与妥协

  1. 深度绑定 Google 生态:如果企业主力采购的是 Azure OpenAI 或国内千问/GLM 模型,ADK 的吸引力会大打折扣。
  2. 开源社区刚起步:相较于 LangGraph 庞大的第三方插件生态,ADK 的开源三方组件仍在持续扩展中。

关联导航