Agent Development Kit (ADK)¶
无缝构建、评估和部署智能体!
ADK 旨在帮助开发者构建、管理、评估和部署 AI 驱动的智能体。它为创建会话式和非会话式智能体提供了一个强大而灵活的环境,能够处理复杂的任务和工作流程。

核心概念¶
ADK 围绕几个关键原语和概念构建,这使其强大而灵活。以下是基本要素:
- 智能体: 为特定任务设计的基本工作单元。智能体可以使用语言模型(
LlmAgent)进行复杂推理,或作为执行的确定性控制器,这些被称为"工作流智能体"(SequentialAgent、ParallelAgent、LoopAgent)。 - 工具: 赋予智能体超越对话的能力,让它们能够与外部 API 交互、搜索信息、运行代码或调用其他服务。
- 回调: 你提供的在智能体处理过程中特定点运行的自定义代码片段,用于检查、日志记录或行为修改。
- 会话管理(
Session和State): 处理单个对话(Session)的上下文,包括其历史记录(Events)和智能体用于该对话的工作内存(State)。 - 记忆: 使智能体能够在多个会话中回忆用户信息,提供长期上下文(区别于短期会话
State)。 - 资源管理(
Artifact): 允许智能体保存、加载和管理与会话或用户相关的文件或二进制数据(如图片、PDF)。 - 代码执行: 智能体(通常通过工具)生成和执行代码以执行复杂计算或操作的能力。
- 规划: 一种高级能力,智能体可以将复杂目标分解为更小的步骤,并规划如何实现它们,如 ReAct 规划器。
- 模型: 为
LlmAgent提供动力的底层 LLM,支持其推理和语言理解能力。 - 事件: 表示会话期间发生的事情(用户消息、智能体回复、工具使用)的基本通信单元,形成对话历史。
- 运行器: 管理执行流程的引擎,基于事件协调智能体交互,并与后端服务协调。
注意: 多模态流式处理、评估、部署、调试和追踪等功能也是更广泛的 ADK 生态系统的一部分,支持实时交互和开发生命周期。
主要功能¶
ADK 为开发者构建智能体应用程序提供了几个关键优势:
- 多智能体系统设计: 轻松构建由多个专门智能体组成的分层应用程序。智能体可以协调复杂任务,使用 LLM 驱动的转移或显式
AgentTool调用来委派子任务,从而实现模块化和可扩展的解决方案。 - 丰富的工具生态系统: 为智能体配备多样化的能力。ADK 支持集成自定义函数(
FunctionTool),将其他智能体作为工具(AgentTool),利用内置功能(如代码执行),并与外部数据源和 API(例如搜索、数据库)进行交互。对长时间运行工具的支持可以有效地处理异步操作。 - 灵活的编排: 使用内置的工作流智能体(
SequentialAgent、ParallelAgent、LoopAgent)和 LLM 驱动的动态路由来定义复杂的智能体工作流。这允许实现可预测的流水线和自适应智能体行为。 - 集成的开发者工具: 轻松在本地开发和迭代。ADK 包括命令行界面(CLI)和开发者 UI 等工具,用于运行智能体、检查执行步骤(事件、状态更改)、调试交互以及可视化智能体定义。
- 原生流式支持: 构建实时、交互式体验,原生支持双向流式传输(文本和音频)。这可以与底层能力(如Gemini 开发者 API 的多模态实时 API(或Vertex AI)无缝集成,通常只需简单的配置更改即可启用。
- 内置智能体评估: 系统性地评估智能体性能。该框架包括创建多轮评估数据集和在本地运行评估(通过 CLI 或开发 UI)的工具,以衡量质量和指导改进。
- 广泛的 LLM 支持: 虽然针对 Google 的 Gemini 模型进行了优化,该框架设计为灵活的,允许通过其
BaseLlm接口与各种 LLM 集成(可能包括开源或微调过的模型)。 - 工件管理: 使智能体能够处理文件和二进制数据。该框架提供机制(
ArtifactService、上下文方法),供智能体在执行期间保存、加载和管理版本化的工件,如图像、文档或生成的报告。 - 扩展性和互操作性: ADK 促进开放生态系统。在提供核心工具的同时,它允许开发者轻松集成和重用第三方工具和数据连接器。
- 状态和记忆管理: 自动处理由
SessionService管理的短期对话记忆(Session中的State)。为长期Memory服务提供集成点,允许智能体在多个会话中回忆用户信息。

开始使用¶
- 准备构建你的第一个智能体?试试快速入门