首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Google ADK AI Agent|快速构建简化开发、提升效率的深度指南

一位初学者眼中的震撼Agentic AI系统入门

“不是会员?别担心 — 访问完整文章法语版英语版”

Google 刚刚发布了Agent Development Kit (ADK)— 如果你对构建 AI agents 有哪怕一丝好奇,这绝对值得你重点关注。

你可能已经体验过像AutoGenCrewAI这样的框架,它们可以让你以强大的方式将大型语言模型串联起来。ADK 处于类似领域,但采用了全新的方法,强调实时多模态能力agent 协作以及极简的开发者体验

它不仅仅是一个研究玩具。ADK 构建于 Google 用于生产级 agent 的同样工程实践基础上,更像是在用一个现代开发工具包而不是某个抽象框架。

最疯狂的是,你可以用不到100 行代码构建简单的多 agent 系统,支持实时音频和视频,支持云端或本地部署,还有内置的 UI playground。

在这篇文章中,我将带你走过我如何用 ADK 构建一个智能旅游规划 agent,包含多个子 agent——什么奏效了,什么让我惊讶,以及为什么我认为如果你对 AI 开发的未来感兴趣,这值得一试。

先从 ADK 是什么说起。

Google 的 Agent Development Kit (ADK) 是什么?

Google 的Agent Development Kit (ADK)是一个全新的开源框架,旨在让构建高级 AI agents 更简单、更快速、更易入门。

你无需拼凑一堆工具和 API,ADK 为你提供一个统一且靠谱的框架。

它的独特之处包括:

模型无关(Model-Agnostic):你可以使用任何 AI 模型,包括 Google 自家的 Gemini 模型,提供你自由选择最适合的可能。

随处部署(Deploy Anywhere):无论你是在本地构建还是部署到 Google Cloud,ADK 都让你不受限制。

设计即互操作性(Interoperable by Design):容易集成现有服务、工具,甚至与其他框架构建的 agent 配合使用。

现在我们已经了解了 Google ADK 的优点,接下来就动手实践。不论你是刚入门,还是想挑战 agent 能力极限,这才是乐趣开始的地方。** Let's get started!**

第一步:搭建环境

在写代码前,先搭建一个干净的环境。Google 的 ADK 作为一个Python 包发布,最好用虚拟环境让环境整洁、互不干扰。

在你的项目目录运行:

python -m venv .venv  # Windows 或 'python' 指向正确版本时使用

python3 -m venv .venv # macOS/Linux 使用

根据操作系统激活环境:

# macOS / Linux

source .venv/bin/activate

# Windows (CMD)

.venv\Scripts\activate.bat

# Windows (PowerShell)

.venv\Scripts\Activate.ps1第二步:安装 ADK

环境激活后,运行:

pip install google-adk

确认安装成功(可选但推荐):

pip show google-adk

如果安装无误,你会看到类似下面的输出:

这说明 ADK 配置完成,准备就绪!

第三步:搭建项目结构

ADK 安装完后,接下来创建一个 Python 项目来承载你的 agents。

我建了一个名为travel_planner的文件夹。里面新建了子目录subagents存放 agent 模块,和tools存放工具函数及 schema。这样的结构保持代码整洁模块化,项目扩大后更方便开发和维护。

这是我旅游规划项目的完整目录结构:

travel_planner/

└── travel_planner/

  ├── .env                    # 存放环境变量,比如 API Key

  ├── agent.py                # 主协调器,负责分配任务给子 agents

  ├── subagents/              # 存放不同子 agent 模块

  │   ├── flight_agent.py     # 处理航班搜索和建议

  │   └── hotel_agent.py      # 处理酒店搜索和预订

  ├── tools/                  # 工具函数和工具 schema

  │   ├── schemas.py          # 用于确保 agents 之间数据一致的 Pydantic 或自定义 schema

  └── __init__.py             # 让 travel_planner 成为 Python 包

别担心,文件一时不用都建好,后面我们会逐步写完。

第四步:获取 Google AI Studio 的 API Key

准备写代码前,先配置环境,安全连接驱动 agent 的 LLM ——Gemini

本文使用的是 Google AI Studio 上的Gemini,但事实上,借助LiteLLM,你可以连接包括OpenAI、Anthropic在内的各种 LLM。

在项目根目录新建一个.env文件,保存认证凭据和配置。

但先得去Google AI StudioAPI Key,这是让你的 agent 可以安全调用 Gemini 模型的通行证。

1.打开Google AI Studio(确保已登录 Google 账号)

2.点击“Get API Key”。

1.点击“Create API key”。

1.点击“Create API key in new project”。(或者选择已有项目)

1.复制生成的 API key。

重要提示:切勿将 API key 提交到版本库或公开分享,把它当作密码一样保护。

第五步:配置 .env 文件

用喜欢的编辑器打开项目,我用的是Visual Studio Code

打开.env文件,写入:

GOOGLE_GENAI_USE_VERTEXAI=FALSE

GOOGLE_API_KEY=YOUR_ACTUAL_API_KEY_HERE

YOUR_ACTUAL_API_KEY_HERE替换成你刚才复制的 API key。

第六步:定义旅行请求的数据结构

确保我们的 agents 使用统一的数据格式。

Pydantic定义一个共享的 schema,描述“旅行请求”需要包含的字段,比如出发地、目的地、时间和预算等关键信息。

tools目录下新建schemas.py,内容如下:

from pydantic import BaseModel

class TravelInfo(BaseModel):

  origin: str

  destination: str

  start_date: str

  end_date: str

  budget_amount: float

  budget_currency: str

这段代码为所有旅行请求设定了规则。每个 agent 都会使用它确保数据准确无误。可以把它看作系统之间通用的“语言”。

如果你不熟悉Pydantic不用担心,我们这里只用它的基础功能来保持代码规范,避免低级错误。

第七步:构建子 Agent

准备好查询工具后,开始创建子 agent!这些是专注于特定任务的智能体,比如查航班、查酒店。我们要定义用 Gemini 驱动的Flight AgentHotel Agent,让它们独立处理决策和逻辑。

使用 ADK 提供的Agent类,轻松集成 Gemini API。每个 agent 各司其职,配合完成整体任务。

Agent 的核心组成?

简单说说 agent 的几个关键组成:

name:agent 的识别名,唯一标识。

model:这里用的是"gemini-2.0-flash-exp",但你可以自由选用任何支持的 LLM 模型。

description:简述 agent 的职能,类似岗位说明。

instructions:给 agent 的行为指导,告诉它该做什么,怎么做。

tools:agent 用来执行任务的能力模块。为简化示例,此处不实现具体搜索工具,而让 agents 基于输入信息给出模拟建议。

下面,开始编写 agent 吧!

1.Flight Agent (subagents/flight_agent.py)

subagents文件夹新建flight_agent.py,写入以下代码:from google.adk import Agent

flight_agent = Agent( name="flight_agent", model="gemini-2.0-flash-exp", description="根据出发地、目的地、出行日期和预算推荐航班。", instruction=""" 你是一个航班预订助手。协调者会提供给你: - origin - destination - start_date - end_date - budget_amount - budget_currency

返回1-2个模拟航班选项,包括: - Airline name - Departure and return date/time - Price in the specified currency - Class (economy/business)

确保总价在预算范围内。 """ )

1.Hotel Agent (subagents/hotel_agent.py)

Similarly, create another filehotel_agent.pyin thesubagentsfolder and add this code:

from google.adk import Agent

hotel_agent = Agent(

  name="hotel_agent",

  model="gemini-2.0-flash-exp",

  description="根据目的地和预算,为指定的旅行日期查找酒店。",

  instruction="""

                你是一个酒店预订助手。协调者会提供给你:

                - destination

                - start_date

                - end_date

                - budget_amount

                - budget_currency

返回1-2个模拟酒店建议,包括:

                - Hotel name

                - Nightly rate and total cost in the given currency

                - Main features

确保总价符合预算。

               """

)

发生了什么?

Flight Agent:该代理专注于寻找航班。它使用提供的信息(如origindestinationstart_dateend_datebudget)来推荐最佳航班选项。

Hotel Agent:该代理专注于酒店搜索。它使用相同数据(目的地、日期、预算)推荐适合用户价格范围的酒店。

第9步:构建Coordinator Agent

现在你已经有了Flight AgentHotel Agent,是时候把它们结合起来,打造Coordinator Agent!把它想象成幕后的大脑。

这是直接与用户互动的代理。它接受自然语言输入,比如*"计划下周去曼谷的3天旅行,预算700美元"*,提取关键信息,然后将具体任务分配给相应的子代理。

Coordinator Agent将:

理解用户:接收自然语言输入,提取地点、时间和预算等有用信息。

填补空缺:如果缺少信息(如日期或货币),则询问用户或使用智能默认值。

召集团队:一旦收集齐所有信息,便将任务分发给FlightHotel代理。

整理结果:最终,将航班和酒店建议汇总,生成含有旅行摘要、估计费用及示例日程的计划。

下面是在**travel_planner/agent.py中定义Coordinator Agent**的代码(注意该文件不在其他代理同一文件夹内):

from google.adk import Agent

from travel_planner.subagents.flight_agent import flight_agent

from travel_planner.subagents.hotel_agent import hotel_agent

from travel_planner.tools.schemas import TravelInfo

from datetime import datetime, timedelta

today = datetime.today().date()

coordinator_agent = Agent(

  name="TravelCoordinator",

  model="gemini-2.0-flash-exp",

  description="主协调代理,负责收集旅行偏好并调用子代理查询。",

  instruction=f"""

                  你是一个旅行规划协调者。

                  你的任务是收集用户的旅行偏好,并协调子代理提供航班、酒店建议及日程安排。

                  你将接收用户的自然语言输入并需提取以下信息:

注意最大预算应同时用于航班和酒店建议,总费用不得超出预算。

                  如果用户未指定start_date,但提到“下周”、“下个月”或“明年”等,按照今天日期{today}转换为日期格式。

第1步:从用户输入中提取以下信息:

                  - origin (出发地)

                  - destination (目的地)

                  - start_date (格式: YYYY-MM-DD)

                  - end_date (格式: YYYY-MM-DD)

                  - budget_amount (数值)

                  - budget_currency (如USD, LKR, $)

第2步:如有缺失或不明确:

                  - start_date:如未提供,询问用户是否使用{today}或者指定偏好的开始日期。

                  - end_date:若仅给出天数,根据{today}或提供的start_date计算end_date。如无start_date,询问用户偏好或默认今日。

                  - 预算货币:若未指明,默认使用“USD”,除非另有说明。

第3步:信息完整后:

                  - 确认旅行偏好(origin、destination、start_date、end_date、预算)。

                  - 若有歧义,询问用户确认。

第4步:将数据发送给相应代理:

                  - `flight_agent`获取航班建议

                  - `hotel_agent`获取酒店建议

第5步:呈现综合结果,包括:

                  - 旅行摘要(起止地、时间、预算)

                  - 请注意航班与酒店总费用不得超预算

                  - 航班建议

                  - 酒店建议

                  - 预计总费用

                  - 建议的行程安排:包括目的地的活动和游览地点

请简明、清晰且友好地引导用户。如遇缺失信息,及时询问用户。

               """,

  sub_agents=[flight_agent, hotel_agent]

)

root_agent = coordinator_agent

Coordinator Agent 的核心工作原理是什么?

Coordinator Agent中,名称、模型、描述和说明与其他代理类似。新的关键元素是**sub_agents**字段。

sub_agents即是Flight AgentHotel Agent。协调者根据用户请求分别调用它们处理航班和酒店搜索,然后将结果整合为完整的旅行计划。

Coordinator Agent被定义为root agent,即系统中所有交互的主要入口。

第10步:创建__init__.py

快完成了!

为了让你的**travel_planner目录成为一个标准Python包,创建一个名为__init__.py**的文件。

这里我们不留空,而是导入根代理以便包外调用。

在**travel_planner/__init__.py**中添加:

from . import agent

如此,你的模块化多代理旅行规划系统就准备就绪了!

如何运行你的Agent:多种交互方式

既然系统与代理都准备好了,接下来看看如何运行它们!Agent Development Kit (ADK)提供多种运行方式,每种都有不同的交互体验。简单介绍四种主要方法。

ADK CLI:想快速运行代理?用命令行即可,快捷简洁,直接在终端操作。

ADK Web:这很酷!具备基于Angular的交互式Web UI。可以聊天,甚至用语音或视频互动。界面友好,适合展示代理效果。

ADK API Server:需要集成代理到其他应用或系统?API服务器将其暴露为REST接口,方便调用。

编程调用:喜欢编程?可直接程序调用代理,完全掌控执行时机与方式。

根据需求选择适合的方式。示范中,我会用ADK Web,因为它提供可视化、实时的交互体验。但若更习惯终端,也可用ADK CLI命令adk run travel_planner!

亲眼见证:用ADK Web启动你的旅行代理!

这部分用ADK Web演示Travel Coordinator代理。通过流畅的界面互动,测试其协调航班与酒店功能。

终端进入父目录(travel_planner),运行:

adk web

你会看到如下提示:

按住CTRL(Mac上是CMD),点击http://localhost:8000,打开浏览器访问服务器。

即可体验如下交互界面。

在 UI 的左上角,你可以通过下拉菜单选择你的 agent。请选择"travel_planner"。

现在,你可以直接通过文本框与Travel Planneragent 进行聊天。你甚至可以使用麦克风进行语音交互!

总结

现在,你的多 agent 旅行规划系统已经运行起来了!你已经了解了 Agent Development Kit (ADK) 如何简化构建和管理智能 agent 的过程,从设置到用户交互。

我尽量以最简单的方式进行讲解,所以内容可能显得有点长。但逐步拆解可以确保你在进入更高级概念前,能有扎实的理解。

系统搭建完成后,真正的乐趣才刚刚开始。你可以通过添加更多 agent、集成新工具或微调功能来扩展系统。ADK 的灵活性允许你将系统引向任何方向,无论是完善现有功能,还是尝试全新玩法。

欢迎你探索运行 agent 的各种方式,从简洁的 Web 界面到快捷的 CLI 命令。可能性无限,创新的力量掌握在你手中。

相关阅读,

tags: #ai #technology #google #agentic-ai #development

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OAXdqd70YkT7PjBNK_pfjDwQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券