Skip to content

Agent Development Kit (ADK)

无缝构建、评估和部署智能体!

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

intro_components.png

核心概念

ADK 围绕几个关键原语和概念构建,这使其强大而灵活。以下是基本要素:

  • 智能体: 为特定任务设计的基本工作单元。智能体可以使用语言模型(LlmAgent)进行复杂推理,或作为执行的确定性控制器,这些被称为"工作流智能体"(SequentialAgentParallelAgentLoopAgent)。
  • 工具: 赋予智能体超越对话的能力,让它们能够与外部 API 交互、搜索信息、运行代码或调用其他服务。
  • 回调: 你提供的在智能体处理过程中特定点运行的自定义代码片段,用于检查、日志记录或行为修改。
  • 会话管理(SessionState): 处理单个对话(Session)的上下文,包括其历史记录(Events)和智能体用于该对话的工作内存(State)。
  • 记忆: 使智能体能够在多个会话中回忆用户信息,提供长期上下文(区别于短期会话 State)。
  • 资源管理(Artifact): 允许智能体保存、加载和管理与会话或用户相关的文件或二进制数据(如图片、PDF)。
  • 代码执行: 智能体(通常通过工具)生成和执行代码以执行复杂计算或操作的能力。
  • 规划: 一种高级能力,智能体可以将复杂目标分解为更小的步骤,并规划如何实现它们,如 ReAct 规划器。
  • 模型:LlmAgent 提供动力的底层 LLM,支持其推理和语言理解能力。
  • 事件: 表示会话期间发生的事情(用户消息、智能体回复、工具使用)的基本通信单元,形成对话历史。
  • 运行器: 管理执行流程的引擎,基于事件协调智能体交互,并与后端服务协调。

注意: 多模态流式处理、评估、部署、调试和追踪等功能也是更广泛的 ADK 生态系统的一部分,支持实时交互和开发生命周期。

主要功能

ADK 为开发者构建智能体应用程序提供了几个关键优势:

  1. 多智能体系统设计: 轻松构建由多个分工明确的智能体按层级结构组成的应用程序。智能体可以协调复杂任务,使用 LLM 驱动的移交或显式的 AgentTool 调用来委托子任务,从而实现模块化和可扩展的解决方案。
  2. 丰富的工具生态: 为智能体配备多样化的能力。ADK 支持集成自定义函数(FunctionTool),将其他智能体用作工具(AgentTool),利用内置功能(如代码执行),并与外部数据源和 API(如搜索、数据库)进行交互。对长时间运行工具的支持使处理异步操作变得高效。
  3. 灵活的编排: 使用内置的工作流智能体(SequentialAgentParallelAgentLoopAgent)以及 LLM 驱动的动态路由来定义复杂的智能体工作流。这既允许可预测的流水线,也允许自适应的智能体行为。
  4. 集成的开发者工具: 轻松在本地开发和迭代。ADK 包含命令行界面(CLI)和开发者 UI 等工具,用于运行智能体、检查执行步骤(事件、状态更改)、调试交互以及可视化智能体定义。
  5. 原生流式处理支持: 使用 ADK Gemini Live API 工具包 构建实时交互体验,该工具包提供对双向流(文本和音频)的原生支持。这与底层的 Gemini Developer API 的 Gemini Live API(或 Vertex AI)无缝集成,通常只需简单的配置更改即可启用。
  6. 内置智能体评估: 系统地评估智能体性能。该框架包含创建多轮评估数据集并在本地运行评估(通过 CLI 或开发 UI)的工具,以衡量质量并指导改进。
  7. 广泛的 LLM 支持: 虽然针对 Google 的 Gemini 模型进行了优化,但该框架设计灵活,允许通过其 BaseLlm 接口集成各种 LLM(可能包括开源或微调模型)。
  8. 制品管理: 使智能体能够处理文件和二进制数据。框架提供了机制(ArtifactService、上下文方法),供智能体在执行过程中保存、加载和管理版本化制品,如图像、文档或生成的报告。
  9. 可扩展性和互操作性: ADK 促进开放生态系统。在提供核心工具的同时,它允许开发者轻松集成和重用第三方工具和数据连接器。
  10. 状态和记忆管理: 自动处理由 SessionService 管理的短期会话记忆(Session 内的 State)。为长期 Memory 服务提供集成点,允许智能体在多个会话中回忆用户信息。

intro_components.png

开始使用