第 13 章 Google ADK总结Agents CLI

第 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 全书的三个核心认知

如果只让你带走三句话:

  1. 把 if-else 还给代码,把判断留给 LLM。这是 ADK 2.0 图工作流的灵魂,也是生产级 Agent 的第一原则。

  2. 意图理解智能,执行确定。该让 LLM 判断的地方(理解用户、分派任务)用 LLM,该确定执行的地方(流程、分支、工具)用代码。

  3. 开放协议赢,封闭生态输。模型中立、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__.py

13.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 行动清单:读完这本书,你应该能独立搭建什么

如果这本书有效,读完你应该能:

  1. 独立选型:用五维坐标系评估任何 Agent 框架,判断是否适合你的场景
  2. 从零搭建 Agent:安装 ADK,创建单 Agent,接入工具和模型(不绑 Google)
  3. 多 Agent 团队:设计 Coordinator + 子 Agent 架构,处理模糊分发
  4. 图工作流:把确定性的业务流程固化成图,把 if-else 还给代码
  5. 动态工作流 + HITL:处理循环、并行、人工审批
  6. 连接生态:用 LiteLlm 接任意模型、MCP 接任意工具、A2A 接任意 Agent
  7. 部署上云:Docker 容器化,部署到任意环境
  8. 可观测:配置日志/指标/追踪,定位问题根因
  9. 可评估:建评估集、写自定义指标、接入 CI 回归
  10. 保安全:工具确认、认证、回调校验、纵深防御

这就是"为什么 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 文档地图,方便你继续深入。