第 13 章 总结与进阶路线
第 13 章 总结与进阶路线
这是全书的最后一章。我们先把十二章的内容压缩成一张知识地图,让你能看到全貌。然后,看向更远的地方——ADK 还有很多本书没有展开的能力,它们是你进阶的方向。
13.1 全书知识地图
13.1.1 一条主线,十个能力
我们用一条主线项目(云销客服)串起了 ADK 的核心能力。把它们排成一张表:
| 能力 | 章节 | 一句话 |
|---|---|---|
| 框架选型 | 第 1 章 | 五维坐标系:可控性/可观测性/多智能体/生态/生产 |
| Agent 基础 | 第 2 章 | Agent 就是 Python 对象,代码优先 |
| 工具与上下文 | 第 3 章 | 工具是手,Session/State 是记忆 |
| 多智能体 | 第 4 章 | Coordinator + 子 Agent,模糊分发 |
| 图工作流 | 第 5 章 | 确定性流程,把 if-else 还给代码 |
| 动态工作流 + HITL | 第 6 章 | 循环/并行/暂停等人 |
| 模型中立与协议 | 第 7 章 | LiteLlm 接 100+ 模型,MCP/A2A 连接一切 |
| 部署 | 第 8 章 | Docker 底座,部署自由 |
| 可观测性 | 第 9 章 | 日志/指标/追踪,Agent 不黑盒 |
| 评估 | 第 10 章 | 轨迹 + 响应 + 质量,质量可量化 |
| 安全 | 第 11 章 | 代码强制,多层防御 |
| 复盘与边界 | 第 12 章 | 什么时候该用、什么时候不该用 |
13.1.2 全书的三个核心认知
如果只让你带走三句话:
把 if-else 还给代码,把判断留给 LLM。这是 ADK 2.0 图工作流的灵魂,也是生产级 Agent 的第一原则。
意图理解智能,执行确定。该让 LLM 判断的地方(理解用户、分派任务)用 LLM,该确定执行的地方(流程、分支、工具)用代码。
开放协议赢,封闭生态输。模型中立、MCP、A2A——ADK 赌的是开放的未来。
13.2 进阶方向一:Agents CLI 辅助开发(vibe coding)
13.2.1 什么是 Agents CLI
ADK 提供 Agents CLI 工具,把 ADK 的专业知识"注入"到你常用的 AI 编程环境(Claude Code、Cursor、Antigravity 等),让 AI 编程助手具备 ADK 相关的开发能力——这就是"AI 辅助编写智能体"(vibe coding)。
uvx google-agents-cli setup这个命令安装 agents-cli + ADK Python + 技能。之后你的 AI 编程助手就能:
- 生成 ADK 项目脚手架
- 写符合规范的 Agent 代码
- 做评估和部署
13.2.2 快速创建项目
adk create 生成标准项目结构:
adk create my_agent生成:
my_agent/
agent.py
.env
__init__.py13.2.3 ADK 的命令行全家桶
| 命令 | 作用 |
|---|---|
adk create <name> |
创建项目 |
adk run <agent> |
命令行交互运行 |
adk run <agent> "message" |
单条消息运行 |
adk web |
启动 Web 开发界面 |
adk api_server |
启动 REST API server |
adk eval |
运行评估 |
adk deploy cloud_run/gke/agent_engine |
部署 |
adk conformance test |
回归测试 |
adk telemetry enable |
开启遥测 |
13.2.4 CLI 的会话管理
adk run 支持会话持久化:
# 保存会话
adk run --save_session path/to/my_agent
# 恢复会话
adk run --resume path/to/my_agent/my_session.session.json path/to/my_agent
# 非交互回放
adk run --replay path/to/input.json path/to/my_agent还有存储选项:--session_service_uri(默认 SQLite)、--artifact_service_uri、--memory_service_uri。
13.3 进阶方向二:Visual Builder 可视化构建器
Visual Builder 是 ADK Web 界面中的可视化工作流设计环境,用图形界面创建和管理 Agent,内置 AI 驱动的开发助手。
用 adk web 启动后,左上角 + 新建 Agent → 命名并 Create → 左面板编辑组件值、中央面板添加组件、右面板用自然语言提示词修改 Agent。
它生成的代码是 Agent Config 格式(.yaml 配置 + Python 工具代码):
DiceAgent/
root_agent.yaml # main agent code
sub_agent_1.yaml # sub agents (if any)
tools/ # tools directory
__init__.py
dice_tool.py # tool code支持的组件:
- Agents:Root Agent、LLM Agent、Sequential Agent、Loop Agent、Parallel Agent
- Tools:Prebuilt tools、Custom tools
- Components:Callbacks(流程控制组件)
Visual Builder 适合快速原型和非程序员参与设计。生产环境的安全细节:它通过本地 API 端点保存配置,headless/API-only 部署(如
adk deploy cloud_run)不注册这些端点,防止未授权文件写入。
13.4 进阶方向三:REST API 深度集成
第 8 章我们用了 REST API 的基础端点。这里补充更完整的图景。
13.4.1 端点全景
| 方法 | 路径 | 作用 |
|---|---|---|
| GET | /list-apps |
列出所有 agent 应用 |
| POST | /apps/{app}/users/{user}/sessions/{session} |
创建会话 |
| PATCH | /apps/{app}/users/{user}/sessions/{session} |
更新会话 state |
| GET | /apps/{app}/users/{user}/sessions/{session} |
获取会话 |
| DELETE | /apps/{app}/users/{user}/sessions/{session} |
删除会话 |
| POST | /run |
运行 Agent(返回全部事件) |
| POST | /run_sse |
运行 Agent(SSE 流式) |
| GET | /docs |
Swagger UI |
13.4.2 完整请求
{
"appName": "yunxiao",
"userId": "u_123",
"sessionId": "s_abc",
"newMessage": {
"role": "user",
"parts": [{ "text": "查一下订单状态" }]
},
"streaming": true
}13.4.3 多模态输入
newMessage.parts 里可以加 inlineData 发送图片:
{
"role": "user",
"parts": [
{ "text": "这个商品能退吗?" },
{
"inlineData": {
"displayName": "product.jpg",
"data": "",
"mimeType": "image/jpeg"
}
}
]
} 13.5 进阶方向四:在线/语音 Agent(Live)
13.5.1 什么是 Live Agent
Live agent 与用户保持双向连接:双方可以同时说话/倾听/回应,用户可中途打断。支持文本、音频、视频输入。它和其他 ADK agent 使用相同的抽象——只是用 runner.run_live() 而不是 run_async。
三种"流式"的区别(容易混淆):
- 服务端流式:服务端到客户端单向,用户不能打断
- Token 级流式:文本逐词到达(
run_async路径) - 双向流式:双方同时收发,可打断(
run_live())
13.5.2 创建 Live Agent
import os
from google.adk.agents import Agent
from google.adk.runners import Runner
from google.adk.sessions import InMemorySessionService
from google.adk.tools import google_search
APP_NAME = "live-agent"
agent = Agent(
name="google_search_agent",
model=os.getenv("DEMO_AGENT_MODEL", "gemini-live-2.5-flash-native-audio"),
tools=[google_search],
instruction="You are a helpful assistant that can search the web.",
)
runner = Runner(
app_name=APP_NAME,
agent=agent,
session_service=InMemorySessionService(),
)13.5.3 语音配置
from google.genai import types
from google.adk.agents import Agent
from google.adk.models.google_llm import Gemini
from google.adk.agents.run_config import RunConfig
agent = Agent(
model=Gemini(
model="gemini-live-2.5-flash-native-audio",
speech_config=types.SpeechConfig(
voice_config=types.VoiceConfig(
prebuilt_voice_config=types.PrebuiltVoiceConfig(voice_name="Puck")
),
language_code="en-US",
),
),
instruction="You are a helpful assistant.",
)Live Agent 是 ADK 一个很前沿的能力(目前标注 experimental),适合语音客服、实时交互等场景。
13.6 附录预告:多语言与文档地图
ADK 是多语言 SDK,支持 Python、TypeScript、Go、Java、Kotlin 五门语言。它们的成熟度不同:
| 语言 | 状态 | 说明 |
|---|---|---|
| Python | 最成熟,主语言 | 所有功能首选,独立 adk CLI |
| TypeScript | 2.0 GA (2026-08-21) | npx adk |
| Go | 2.0 GA (2026-06-30) | 内嵌 launcher,adkgo 部署 |
| Java | 支持 | Maven/Gradle |
| Kotlin | 较新 | 实验性 |
详细的多语言速查见附录 A,文档地图见附录 B。
13.7 行动清单:读完这本书,你应该能独立搭建什么
如果这本书有效,读完你应该能:
- 独立选型:用五维坐标系评估任何 Agent 框架,判断是否适合你的场景
- 从零搭建 Agent:安装 ADK,创建单 Agent,接入工具和模型(不绑 Google)
- 多 Agent 团队:设计 Coordinator + 子 Agent 架构,处理模糊分发
- 图工作流:把确定性的业务流程固化成图,把 if-else 还给代码
- 动态工作流 + HITL:处理循环、并行、人工审批
- 连接生态:用 LiteLlm 接任意模型、MCP 接任意工具、A2A 接任意 Agent
- 部署上云:Docker 容器化,部署到任意环境
- 可观测:配置日志/指标/追踪,定位问题根因
- 可评估:建评估集、写自定义指标、接入 CI 回归
- 保安全:工具确认、认证、回调校验、纵深防御
这就是"为什么 Google ADK 是最好的 Agent 框架"的完整答案——不是因为它完美,而是因为它把"从原型到生产"的每一步都做成了可能。
本章小结
- 一条主线,十个能力:云销客服串起选型到生产全流程
- 三个核心认知:if-else 还给代码 / 意图理解智能执行确定 / 开放协议赢
- 四个进阶方向:Agents CLI(vibe coding)、Visual Builder、REST API、Live 语音 Agent
- 行动清单:读完能独立完成从选型到生产的十件事
全书完结
到这里,《为什么 Google ADK 是最好的 Agent 框架》就结束了。感谢你读完。
如果你带着一个问题离开这本书,我希望是这一个:你的下一个 Agent 系统,会把哪些"逻辑"留给 LLM,把哪些"逻辑"还给代码?
答案的分寸,决定了你的 Agent 是玩具,还是生产系统。
附录预告:附录 A 提供 ADK 2.0 五语言速查;附录 B 提供 adk.wiki / adk.dev 文档地图,方便你继续深入。