Skip to content

智能体

Supported in ADKPythonTypeScriptGoJava

Agent Development Kit (ADK) 中的 AgentLlmAgent 是一个自包含的执行单元,旨在自主行动以实现特定目标。智能体可以执行任务、与用户交互、使用外部工具以及与其他智能体协调。Agent 的基本组件包括人工智能(AI)模型、任务指令,以及可选的一组可供智能体使用的工具。随着智能体任务和复杂度的增长,你可以使用 ADK 开发框架将其扩展为工作流,从而允许你组合和编排多个智能体及代码执行任务。

ADK 中的智能体和工作流

图 1. ADK 中的简单智能体与智能体工作流

对于大多数开发者来说,仅使用模型、指令和工具来构建智能体是一个很好的起点。随着智能体能力和复杂度的增长,你很可能希望分解智能体应用的能力,以便更好地管理其行为、在模型运行上下文限制内工作,以及模块化代码以保持可管理性。ADK 智能体工作流架构允许你从单体结构演进到更模块化的代码和项目结构。

从单一智能体演进到工作流

在 ADK 中,任何包含多个智能体或可执行 Node 的智能体应用都被视为工作流。ADK 不强加任何硬性要求来从单一智能体架构迁移到多智能体或基于图的工作流架构。你可以根据项目需求,或在发现单一智能体方法的局限性时,决定何时进行这样的变更,例如:

  • 指令遵循性能: 当多步骤指令集达到一定长度或复杂度时,你可能会发现单一智能体无法可靠地完成所有指令,或无法以所需的质量或速度执行。
  • 上下文限制: 你可能会发现执行智能体任务所需的数据量超过了所用 AI 模型的上下文窗口限制。
  • 智能体代码模块化: 随着智能体代码复杂度和组织结构的增长,你可能希望分解智能体能力,以使代码更易于管理,或使智能体代码可在其他智能体项目中复用。
  • 混合确定性与非确定性任务: 当构建用于解决更复杂问题的智能体时,你可能希望设计和构建能够交织 AI 模型的非确定性功能与确定性代码的智能体,而不是依赖非确定性 AI 模型来管理任务的完整执行。更多详情请参见基于图的工作流

有关 ADK 工作流和智能体项目架构的更多信息,请参见工作流部分。

智能体特性

ADK 智能体的能力可以通过以下特性进行扩展和拓展:

  • AI 模型:通过集成 Google 及其他提供商的生成式 AI 模型,更换智能体的底层智能。

  • 预构建工具与集成:为你的智能体配备广泛的工具、插件和其他集成,以便与现实世界互动,包括网站、MCP 工具、应用程序、数据库、编程接口等。

  • 自定义工具:为你自己的特定任务创建工具,以精确且受控地解决特定问题。

  • Artifacts(工件):使智能体能够创建和管理持久化输出,如文件、代码或文档,这些输出在对话生命周期之外仍可存在。

  • 技能 (Skills):使用预构建或自定义的智能体技能,在 AI 上下文窗口限制内高效地扩展智能体能力。

  • 插件 (Plugins):将复杂的预打包行为和第三方服务直接集成到智能体工作流中。

  • 回调 (Callbacks):在智能体执行生命周期的特定事件中挂接钩子,以添加日志记录、监控或自定义副作用,而无需更改核心智能体逻辑。

下一步

现在你已经对 ADK 中可用的不同智能体类型有了大致了解,可以深入了解它们的工作原理以及如何有效使用它们:

  • 简单智能体: 探索如何配置由 AI 模型驱动的智能体,包括设置指令、提供工具以及启用规划和代码执行等高级功能。
  • 图工作流: 发现如何将智能体从纯语言指令演进为可组合、可靠的执行路径,将 AI 推理与确定性代码逻辑相结合。
  • 多智能体工作流: 探索如何构建组合多个智能体、执行节点以及各种任务执行控制机制的智能体应用,以满足项目需求。