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. 原生流式支持: 通过原生支持双向流式传输(文本和音频)构建实时交互体验。这与底层功能(如 Gemini Developer API 的多模态实时 API,或用于 Vertex AI 的 API)无缝集成,通常只需简单的配置更改即可启用。
  6. 内置智能体评估: 系统地评估智能体性能。该框架包括创建多轮评估数据集的工具,并可以在本地(通过 CLI 或开发 UI)运行评估以衡量质量并指导改进。
  7. 广泛的 LLM 支持: 虽然针对 Google 的 Gemini 模型进行了优化,但该框架设计灵活,通过其 BaseLlm 接口允许集成各种 LLM(可能包括开源或微调模型)。
  8. 资源管理: 使智能体能够处理文件和二进制数据。该框架提供机制(ArtifactService、上下文方法)让智能体在执行过程中保存、加载和管理版本化的资源,如图片、文档或生成的报告。
  9. 可扩展性和互操作性: ADK 促进开放生态系统。在提供核心工具的同时,它允许开发者轻松集成和重用来自其他流行智能体框架(包括 LangChain 和 CrewAI)的工具。
  10. 状态和记忆管理: 自动处理由 SessionService 管理的短期对话记忆(Session 中的 State)。为长期 Memory 服务提供集成点,允许智能体在多个会话中回忆用户信息。

intro_components.png

开始使用