← 播客精读
Ivan Nardini 在活动现场演讲 Google ADK

用 Google ADK + Claude + MCP 构建多 Agent 系统

Ivan Nardini · Google Cloud AI/ML Developer Advocate · 从零到生产部署全流程 · 约 30 分钟

讲者 Ivan Nardini,Google Cloud AI/ML Developer Advocate,现场演示如何用 ADK 从零构建并部署多 Agent 系统。
信息来源:技术活动现场演讲,约 30 分钟,2026 年 6 月。通过 X 推文 传播。配图来自视频截帧和基于演讲内容自制的示意图。 约 26 分钟 ·

本文要点(TL;DR)

关于配图:本文配图分两类——① 取自演讲视频的真实画面(现场幻灯片、VS Code 代码、Vertex AI 控制台截帧);② 根据演讲内容重新绘制的中文示意图(图注中标注"基于演讲内容整理")。

1. 问题:构建 AI Agent 很强大,但上生产很痛苦

Ivan 开场直接点明三个痛点:

Building AI Agents - 三大挑战
图 2:"What if..." — 如果有一套 Toolkit + Protocols + Agent Platform 来解决这些问题?
挑战具体表现
碎片化格局框架太多(LangChain、CrewAI、ADK...),选型和集成成本高
跨框架集成难不同框架构建的 Agent 之间无法共享工具、记忆、计划
运维和治理缺失部署、扩缩容、监控、日志、评估全部要自己搭

Google 的回答是一套四层技术栈:

Google Agentic Stack
图 3:Google Agentic 技术栈 — ADK + MCP + Vertex AI Agent Engine 三层架构
Google Agentic 技术栈四层架构
图 4:Google Agentic 技术栈四层架构 — 从开发到部署到跨框架互通(基于演讲内容整理)

2. 在 Vertex AI 上使用 Claude

在写第一行代码之前,Ivan 先演示了如何在 Google Cloud 上获取 Claude 模型的访问权限。

Vertex AI Model Garden 中的 Claude 模型
图 5:Vertex AI Model Garden — 合作伙伴区可以找到 Anthropic 的 Claude 系列模型

Vertex AI 的 Model Garden 是一个集中式模型目录,Claude 系列模型(包括演讲当天刚发布的 Claude 4)都在合作伙伴区域。启用后可以通过 API 或 Vertex AI Studio(一个在线 prompt 测试界面)直接使用。

3. ADK 核心概念:三个文件搞定一个 Agent

ADK 核心概念 - LlmAgent 和 Tools
图 6:ADK 核心概念速览 — LlmAgent(大脑)、Tools(技能)、Runner(执行器)、Session(对话状态)

ADK 的设计哲学是 code-first,尽可能贴近软件工程的最佳实践。核心概念只有四个:

概念作用类比
LlmAgentAgent 的大脑,接入 LLM(Claude / Gemini 等),通过 name、model、instruction、tools 四个参数定义招一个员工
Tools (FunctionTool)Agent 的技能,可以是 Python 函数,ADK 自动生成 schema 给 LLM给员工技能手册
Runner执行器,把 Agent 和工具组合起来协调运行工位管理员
Session & State会话 = 对话,State = 跨轮次传递的数据字典对话记忆
ADK 核心概念 - Runner 和 Session
图 7:Runner 负责执行 Agent,Session 管理对话状态和记忆

Birthday Planner Agent:实战第一个 Agent

Ivan 现场演示的第一个 Agent 是一个"生日派对策划师"。整个项目只需要三个文件:

birthday_planner_agent/
├── agent.py      # Agent 逻辑
├── .env           # 环境变量(模型凭证等)
└── __init__.py    # Python 包标识

agent.py 的核心代码:

root_agent = LlmAgent(
    name="BirthdayPlannerAgent",
    model="claude-3-7-sonnet@20250219",
    description="Helps plan birthday parties and activities.",
    instruction=(
        "You are a friendly and creative Birthday Planner assistant.\n"
        "Your goal is to help the user brainstorm ideas for a birthday party.\n"
        "1. First, ask for the age of the birthday person.\n"
        "2. After receiving the age, ask about their interests or hobbies.\n"
        "3. Once you have both, provide 3-5 suitable and creative "
        "birthday party theme or activity suggestions.\n"
    ),
    tools=[],
)

启动方式只需一行命令:

adk run birthday_planner_agent
VS Code 中的 Agent 代码 + adk run 命令
图 8:VS Code 中的 agent.py 代码和终端运行 adk run 启动 Agent

4. 用 MCP 集成外部工具:两行代码搞定

Agent 能聊天了,但还不够——我们想让它能操作日历。Ivan 引入了一个 Calendar Service Agent,通过 MCP 连接到日历服务。

ADK & MCP 双向集成
图 9:ADK 与 MCP 的双向关系 — 既可以消费外部 MCP server,也可以把 ADK 工具暴露为 MCP server

ADK 和 MCP 的集成有两种方向:

  1. ADK 作为 MCP 客户端:把外部已有的 MCP server 当作 Agent 的工具使用
  2. ADK 暴露为 MCP Server:把 ADK 中定义的工具通过 MCP 协议暴露给其他 Agent

在代码层面,集成一个 MCP server 只需要两行:

# 连接已有的 MCP server
calendar_mcp = MCPServer(url="http://localhost:8080")
calendar_tools = calendar_mcp.get_tools()

# 创建带 MCP 工具的 Agent
calendar_agent = LlmAgent(
    name="CalendarAgent",
    model="claude-3-5-sonnet",
    tools=calendar_tools,  # MCP 工具自动转成 ADK 工具
    ...
)

背后发生的事:ADK 获取 MCP server 的工具定义,自动转换成 Agent 可调用的 FunctionTool。不需要手动写 schema 或适配层。

5. 多 Agent 编排:用 AgentTool 组合子 Agent

有了 Birthday Planner 和 Calendar Agent,Ivan 引入了一个 Event Organizer 编排 Agent 来协调它们。

多 Agent 编排 - EventOrganizerAgent
图 10:EventOrganizerAgent 代码 — 用 AgentTool 把子 Agent 当工具传入编排器

编排器的写法出奇地简单:

organizer = LlmAgent(
    name="EventOrganizerAgent",
    model="gemini-2.0-flash",
    description="Main coordinator for event planning.",
    instruction=(
        "You are an expert Event Organizer.\n"
        "You have a team of specialist agents:\n"
        f"- '{planner_agent_instance.name}': This agent is an expert...\n"
        f"- '{calendar_agent_instance.name}': This agent handles all...\n"
        "Your primary job is to understand the user's request and delegate...\n"
    ),
    tools=[
        agent_tool.AgentTool(agent=planner_agent_instance),
        agent_tool.AgentTool(agent=calendar_agent_instance),
    ],
)

把子 Agent 用 AgentTool 包一下,和普通工具一样传给编排 Agent 就行了。编排 Agent 根据用户请求自动选择调用哪个子 Agent。

注意一个细节:编排 Agent 用的是 Gemini,子 Agent 用的是 Claude。ADK 支持在同一个多 Agent 系统中混用不同模型。

ADK 还提供了一个 Web UI 用于调试多 Agent 系统,可以实时看到编排器把请求路由到了哪个子 Agent。

6. Agent Engine:一行代码部署到生产

Agent 在本地跑通了,怎么上生产?

Agent Engine 对比表
图 11:有 vs 没有 Agent Engine 的对比 — 代码、运维、可观测性三个维度
维度没有 Agent Engine有 Agent Engine
开发代码用 FastAPI/Django 包装 → Docker 容器 → 配 GCP一行 agent_engines.create()
基础设施自己管部署、扩缩容Vertex 自动管理,含安全和区域扩展
可观测性手动加日志/监控/追踪/评估内置 Cloud Logging、Monitoring、Tracing + Gen AI Evaluation
有 vs 没有 Agent Engine
图 12:有 vs 没有 Agent Engine 的三维度对比(基于演讲内容整理)

部署代码也非常精简:

AGENTS_TO_DEPLOY = [
    birthday_planner_agent,
    calendar_agent,
    organizer_agent,
]

BASE_REQUIREMENTS = [
    "google-cloud-aiplatform[adk, agent_engines]==1.93.0",
    "anthropic[vertex]==0.51.0",
    "fastmcp==2.3.4",
    ...
]

# 一行部署
deploy_single_agent(agent_object, requirements)
部署代码和终端输出
图 13:deploy_agents.py 代码 — 定义要部署的 Agent 列表 + 依赖,终端显示部署过程

部署完成后,在 Vertex AI 控制台可以看到 Agent 的运行状态:

Vertex AI 控制台 Agent Engine 列表
图 14:Vertex AI 控制台 — 已部署的 Agent 列表,可以看到框架、创建时间、描述

控制台提供:

7. A2A 协议:让不同框架的 Agent 互相对话

最后一个挑战:如果你用 ADK 构建了一些 Agent,同事用 LangChain 构建了另一些,它们怎么协作?

多 Agent 世界的挑战
图 15:多框架 Agent 世界的挑战 — 黑盒 Agent 之间无法共享工具、记忆、计划

A2A(Agent-to-Agent Protocol)是 Google 提出的开放协议,基于 HTTP 和 JSON-RPC,设计上就考虑了企业级的安全和治理需求。

A2A 核心概念
图 16:A2A 核心概念 — Agent Skill(能力声明)和 Agent Card(数字名片)

核心概念只有两个:

概念作用类比
Agent Skill描述 Agent 的具体能力或功能简历上的技能列表
Agent CardJSON 格式的数字名片(.well-known/agent.json),告诉其他 Agent "我是谁、我能做什么"名片

有了 Agent Card,任何框架构建的 Agent 都能通过标准 HTTP 协议发现对方、了解对方的能力、发起协作请求。

8. 关键收获

开发者体验是一等公民

ADK 的整个设计围绕"让开发者写最少的代码"展开:

模型无关性

同一个 ADK 项目可以混用 Claude 和 Gemini,编排 Agent 用 Gemini,子 Agent 用 Claude,根据任务特点选择最合适的模型。

从开发到生产的完整路径

不是只给你一个 SDK 就完事了——ADK + MCP + Agent Engine + A2A 覆盖了从本地开发到生产部署到跨系统互通的全链路。

开放生态

ADK 和 A2A 都是开源的,Agent Engine 支持 LangChain、CrewAI 等多种框架,MCP 是社区标准——不锁定任何特定技术栈。

示例代码 QR 码
图 17:演讲中分享的示例代码和即将举办的 Anthropic + Google Cloud 联合 A2A 线上研讨会

本文基于 Ivan Nardini(Google Cloud AI/ML Developer Advocate)的现场演讲整理,原始来源见 X 推文
图文整理:AI 辅助

链接已复制