具有记忆和 MCP 的 ADK Agentic 模式

1. 您将学到的内容

欢迎参加 ADK 大师班 - 开启多智能体系统之旅

您即将进入激动人心的 AI 智能体世界。忘掉只能回答问题的简单聊天机器人吧。我们将深入了解 Agent Development Kit (ADK),构建复杂的自主系统,这些系统可以推理、规划和使用工具来完成复杂的任务。

翻唱版

完成本教程后,您将能够:

  • 构建您的首个 AI 智能体:从零开始构建一个功能齐全的智能体,该智能体可以了解用户的需求,使用 Google 搜索等工具,并生成详细且有用的回答。
  • 构建多智能体系统:了解“智能体即工具”模式,这是一种革命性的概念,智能体将任务委托给其他专业智能体,从而创建一个协同工作的 AI 专家团队。
  • 编排复杂的工作流:超越简单的委托,掌握 路由器顺序链循环并行执行 等高级模式,构建强大、高效且智能的应用,这些应用几乎可以处理任何请求。
  • 为智能体提供记忆功能:了解对话记忆的关键作用,使智能体能够处理后续问题、从反馈中学习,并无缝管理多步骤任务。
  • 与 MCP 连接:与 MCP 工具箱连接。

现在就开始吧!🚀

2. 设置 GCP 和 Gemini API 密钥

设置 GCP 项目和 Gemini API 密钥

为了让 AI 智能体能够正常运行,我们需要两样东西:一个 Google Cloud 项目来提供基础,以及一个 Gemini API 密钥来访问 Google 的强大模型。

第 1 步:启用结算账号

如需运行此 Codelab,您需要一个有一定额度的结算账号。使用此 Codelab 顶部的横幅中的额度开始使用。如果您已连接到结算账号,则可以跳过此步骤。

第 2 步:创建新的 GCP 项目

  • 前往 Google Cloud 控制台并创建一个新项目。

创建新的 GCP 账号

  • 前往 Google Cloud 控制台并创建一个新项目。
  • 打开左侧面板,点击 Billing,检查结算账号是否已关联到此 GCP 账号。

将结算账号与 GCP 账号相关联

如果您看到此页面,请选中 manage billing account,选择 Google Cloud 试用版并关联到该账号。

第 3 步:查找您的 Google Cloud 项目 ID

👉点击 Google Cloud 控制台顶部的“激活 Cloud Shell”(它是 Cloud Shell 窗格顶部的终端形状图标),cloud-shell.png

👉点击“打开编辑器”按钮(它看起来像一个打开的文件夹,里面有一支铅笔)。这会在窗口中打开 Cloud Shell 代码编辑器。您会在左侧看到文件浏览器。open-editor.png

👉查找您的 Google Cloud 项目 ID:

  • 打开 Google Cloud 控制台:链接
  • 从页面顶部的项目下拉列表中选择要在此研讨会中使用的项目。
  • 您的项目 ID 会显示在信息中心的项目信息卡片中

03-04-project-id.png

👉💻 在终端中,使用以下命令验证您是否已通过身份验证,以及项目是否已设置为您的项目 ID:

gcloud auth list

👉💻 从 GitHub 克隆启动项目:

git clone https://github.com/cuppibla/adk_tutorial.git

👉💻 运行初始化脚本,此脚本会提示您输入 Google Cloud 项目 ID 。当 setup_venv.sh 脚本提示时,输入您在上一步中找到的 Google Cloud 项目 ID。

cd ~/adk_tutorial
./setup_venv.sh

gcloud services enable  compute.googleapis.com \
                        artifactregistry.googleapis.com \
                        run.googleapis.com \
                        iam.googleapis.com \
                        aiplatform.googleapis.com \
                        cloudresourcemanager.googleapis.com

3. 会话 1:ADK Web 中的首个智能体

运行以下命令打开 ADK Web:

cd ~/adk_tutorial
source .adk_env/bin/activate
adk web

运行这些命令后,您应该会在终端中看到输出,表明 ADK Web 服务器已启动,类似于以下内容:

+-----------------------------------------------------------------------------+
| ADK Web Server started                                                      |
|                                                                             |
| For local testing, access at http://localhost:8000.                         |
+-----------------------------------------------------------------------------+

INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)

👉 接下来,如需从浏览器访问 ADK 开发者界面,请执行以下操作:

在 Cloud Shell 工具栏(通常位于右上角)中,从“网页预览”图标(通常看起来像眼睛或带有箭头的正方形)中选择“更改端口”。在弹出式窗口中,将端口设置为 8000 ,然后点击“更改并预览”。然后,Cloud Shell 会打开一个新的浏览器标签页或窗口,其中显示 ADK 开发者界面。

webpreview

👉 您的召唤仪式已完成,智能体现在正在运行。浏览器中的 ADK 开发者界面 是您与 Familiar 的直接连接。

选择并行工作流智能体 :在界面顶部的下拉菜单中,选择 parallel_agent

您可以在此处选择 single_agent单个代理的轨迹图片

您可以在此处查看跟踪记录:单个代理的轨迹图

👉 测试提示

Plan a trip from Sunnyvale to San Francisco this weekend, I love food and art.

4. 会话 2:工作流智能体:顺序智能体、并行智能体、循环智能体

并行智能体

选择并行工作流智能体 :在界面顶部的下拉菜单中,选择 parallel_agent

👉 测试提示

Plan my trip to San Francisco, I want to find some good concert, restaurant and museum.

您可以在此处选择 parallel_agent并行代理的轨迹图

您可以在此处查看跟踪记录:并行代理的轨迹图

顺序智能体

选择顺序工作流智能体 :在界面顶部的下拉菜单中,选择 sequential_agent

👉 测试提示

Find a good sushi near Standford and tell me how to get there.

您可以在此处选择 sequential_agent顺序智能体的轨迹图

您可以在此处查看跟踪记录:sequential_agent 的跟踪图片

循环智能体

选择循环工作流智能体 :在界面顶部的下拉菜单中,选择 loop_agent

👉 测试提示

Plan a trip from Sunnyvale to San Francisco today.

您可以在此处选择 loop_agent循环智能体的跟踪图片

您可以在此处查看跟踪记录:循环智能体的跟踪图片

5. 会话 3:自定义智能体

打开 ADK Web 界面后,您可以选择 Custom_Agent 智能体。

👉 测试提示

Plan a trip from Sunnyvale to San Francisco this weekend, I love food and art. Make sure within budget of 100 dollars.

您可以在此处选择 Custom_AgentCustom_Agent 的跟踪图片

您可以在此处查看跟踪记录:Custom_Agent 的跟踪图片

6. 会话 4:编排器模式 - 路由智能体

打开 ADK Web 界面后,您可以选择 routing_agent

👉 测试提示

Plan a trip from Sunnyvale to San Francisco this weekend, I love concert, restaurant and museum.

您可以在此处选择 routing_agent路由代理的跟踪图片

您可以在此处查看跟踪记录:路由代理的跟踪图片

7. 会话 5:智能体即工具

打开 ADK Web 界面后,您可以选择 Agent_as_tool 智能体。

👉 测试提示

Plan a trip from Sunnyvale to San Francisco this weekend, I love concert, restaurant and museum.

您可以在此处选择 agent_as_tool将代理作为工具的追踪图片

您可以在此处查看跟踪记录:路由代理的跟踪图片

8. 会话 6:具有长期记忆的智能体

👉💻 如需测试长期记忆,请前往文件夹并使用运行程序来启动智能体:

cd ~/adk_tutorial
source .adk_env/bin/activate
cd ~/adk_tutorial/f_agent_with_memory
python main.py

👉 测试提示

I like Art and Italian food.

然后按“Ctrl+C”结束会话。重启会话:

cd ~/adk_tutorial
source .adk_env/bin/activate
cd ~/adk_tutorial/f_agent_with_memory
python main.py

👉 测试提示

Plan a trip to San Francisco based on my preference.

9. 会话 7:使用 MCP 为智能体赋能

第 1 步:准备本地数据库

👉💻 在终端中运行以下命令

cd ~/adk_tutorial
source .adk_env/bin/activate
chmod +x setup_trip_database.py
./setup_trip_database.py

第 2 步:安装并运行 MCP 工具箱服务器

👉💻 在终端中运行以下命令

cd ~/adk_tutorial/mcp_tool_box
export VERSION=0.16.0
curl -O https://storage.googleapis.com/mcp-toolbox-for-databases/v$VERSION/linux/amd64/toolbox

下载完成后,运行以下命令

chmod +x toolbox

第 3 步

在一个终端中 运行以下命令

cd ~/adk_tutorial
source .adk_env/bin/activate
cd ~/adk_tutorial/mcp_tool_box
./toolbox --tools-file "trip_tools.yaml" --port 7001

在另一个终端中 运行以下命令

cd ~/adk_tutorial
source .adk_env/bin/activate
cd ~/adk_tutorial/g_agents_mcp
python main.py