Skip to content

高频面试题

什么是 Google ADK?

ADK 不是一个协议,而是构建、调试、评估和部署 Agent 的开发框架;面试重点是把框架、运行时、工具、上下文和协议集成讲清楚。

适合阶段:Agent 框架 / 工程落地面核心能力:Agent Framework · Runtime · Tools · Context · Evaluation · A2A

面试官角度分析,想考什么

  • Google ADK 是什么?
    考 Agent Development Kit,用来构建、运行、评估和部署 Agent,不是 A2A 协议本身。

  • 核心组件和它解决什么问题?
    考 Agent、Tools、Session/State/Memory、Runtime、Evaluation 等工程化能力。

  • 和 A2A、MCP 什么关系,何时适合用?
    考可集成协议但不是替代;适合 Google/Gemini 生态和生产运行时诉求。

可直接抄走的 30 秒参考答案

text
Google ADK 是 Agent Development Kit,一个开源的 Agent 开发框架,用来构建、调试、运行、评估和部署生产级 AI Agent。它把 Agent 的模型、指令、工具、Session、State、Memory、Artifacts、Callbacks、Runtime、Evaluation 和部署能力组织在一起。它不是 A2A 或 MCP 这种协议,而是可以集成它们:ADK Agent 内部可以通过 MCP 调工具,对外可以通过 A2A 和其他 Agent 协作。

面试回答详解,知其所以然

ADK 全称是 Agent Development Kit。它的定位不是“又一个聊天 API”,而是帮助开发者把 Agent 从原型推进到可运行、可调试、可评估、可部署的工程系统。

1. ADK 的定位

官方文档把 ADK 定位为开源 Agent 开发框架,用于构建、调试和部署可靠的生产级 Agent,支持 Python、TypeScript、Go、Java、Kotlin 等语言。它尤其贴近 Google / Gemini / Vertex AI / Cloud Run 等生态,但也提供多模型和多工具集成能力。

可以这样理解:

text
LLM API = 模型能力
ADK = Agent 应用框架和运行时
A2A / MCP = Agent 协作与工具接入协议

2. 一个 ADK Agent 通常由什么组成

ADK 中的 Agent 可以理解成一个自包含执行单元,通常包括:

  • Model:底层模型,可以是 Gemini,也可以通过集成使用其他模型。
  • Instruction:Agent 的任务说明、角色约束和行为边界。
  • Tools:Agent 可调用的函数、OpenAPI 工具、MCP 工具或其他外部能力。
  • Session:一次对话或任务线程,保存事件历史。
  • State:当前 session 内的临时数据,例如用户偏好、表单状态或中间变量。
  • Memory:跨 session 的可搜索长期信息。
  • Artifacts:Agent 生成或消费的文件、报告、媒体和其他产物。
  • Callbacks:在模型调用、工具调用、事件处理等节点插入控制逻辑。
  • Runtime:负责执行 Agent、维护事件循环、处理工具调用和上下文。

3. ADK 解决的工程问题

单纯调用模型 API 很快能做出 demo,但生产 Agent 还需要:

  • 多轮上下文组织,而不是把所有历史无脑塞进 prompt。
  • 工具调用、鉴权、确认和错误处理。
  • 多 Agent 或工作流编排,例如顺序、并行、循环、路由和人类输入。
  • 事件、状态、artifact 的生命周期管理。
  • 本地调试、Web UI、命令行、API Server 和部署。
  • 评估、用户模拟、环境模拟、指标和优化。
  • 日志、指标、trace 和安全治理。

ADK 的价值就是把这些常见能力产品化为框架能力,让开发者少写胶水代码。

4. ADK 和 A2A / MCP 的关系

ADK 是框架,A2A 和 MCP 是协议,层次不同。

  • ADK 构建 Agent:定义 Agent 的模型、指令、工具、状态和运行方式。
  • MCP 接工具:ADK Agent 可以通过 MCP 使用外部工具和资源。
  • A2A 接 Agent:ADK Agent 可以暴露成 A2A Agent,也可以消费其他 A2A Agent。

一个典型关系是:

text
ADK Agent
  -> 内部通过 MCP 调工具
  -> 对外通过 A2A 暴露协作能力
  -> 部署到 Cloud Run / GKE / Agent Runtime

所以不要说“ADK 替代 A2A”或“ADK 替代 MCP”。ADK 更像应用框架,A2A/MCP 更像互操作协议。

5. ADK 的生产能力

ADK 面向生产落地时,面试可以重点讲这些能力:

  • 上下文管理:用 Session、State、Memory、Artifacts 和事件组织上下文,避免上下文窗口被无关历史填满。
  • 工具治理:支持函数工具、OpenAPI 工具、MCP 工具、鉴权和动作确认。
  • 工作流编排:支持 agent team、graph workflow、sequential、parallel、loop、routing 等模式。
  • 运行和部署:支持本地运行、命令行、API Server、Agent Runtime,以及 Cloud Run/GKE 等部署方式。
  • 评估与观测:支持评估 criteria、用户模拟、环境模拟、自定义指标、日志、指标和 trace。

6. 适合与不适合场景

  • 适合:要在 Google Cloud / Gemini 生态里构建生产 Agent,需要状态、工具、多 Agent、评估和部署闭环。
  • 适合:团队希望用框架统一 Agent 工程结构,而不是每个项目手写 runtime。
  • 不适合:只做一次简单 prompt 调用,直接模型 API 更轻。
  • 不适合:已经深度绑定其他 Agent 框架且没有迁移需求,贸然切换成本可能大。

面试官追问3个问题

追问一:ADK 和 A2A 最大区别是什么?

  • 考察点:框架和协议分层。
  • 回答方向:ADK 是开发框架和运行时,帮你构建 Agent;A2A 是 Agent 间互操作协议,帮 Agent 互相发现和委托任务。ADK Agent 可以实现或消费 A2A。

追问二:ADK 为什么需要 Session、State、Memory?

  • 考察点:上下文管理。
  • 回答方向:Session 管当前会话事件,State 管当前会话临时数据,Memory 管跨会话可检索知识。三者分开有利于控制上下文、持久化和权限。

追问三:ADK 生产化最重要的能力是什么?

  • 考察点:工程落地意识。
  • 回答方向:不是某个单点能力,而是 runtime、工具治理、上下文管理、评估、观测、部署和安全闭环。生产 Agent 要能 debug、评估、回滚和审计。

扩展知识

ADK 和 LangGraph、AutoGen 的区别怎么说

不要把框架对比说成绝对胜负。可以按维度讲:

  • ADK:更贴近 Google 生态、生产运行、A2A/MCP 集成和多语言 SDK。
  • LangGraph:强在显式状态图、可控工作流和 Python/JS 生态。
  • AutoGen:强在多 Agent 对话和研究型协作范式。

真正选型要看团队生态、部署平台、状态复杂度、评估要求和已有代码资产。

ADK 不是只服务 Gemini

ADK 与 Gemini / Vertex AI 结合紧密,但文档也提供了 OpenAI、Claude、Ollama、vLLM、LiteLLM 等模型集成入口。面试里可以说“默认生态偏 Google,但框架目标不是只能调用一个模型”。

基于 MIT 协议开源