ADK 代理程式模式,搭配記憶體和 MCP

1. 學習內容

歡迎參加 ADK 大師班 - 邁向多代理系統的旅程

您即將踏入精彩的 AI 代理世界。忘掉只能回答問題的簡單聊天機器人吧!我們正深入研究 Agent Development Kit (ADK),建構可推理、規劃及使用工具完成複雜工作的先進自主系統。

翻唱

完成本教學課程後,您將能夠:

  • 建構第一個 AI 服務專員:從無到有,建構出功能齊全的服務專員,瞭解使用者需求、使用 Google 搜尋等工具,並生成詳細實用的回應。
  • 建構多代理系統:瞭解「代理即工具」模式,這項革命性概念是指代理會將工作委派給其他專業代理,建立可協同運作的 AI 專家團隊。
  • 自動化調度管理複雜工作流程:除了簡單的委派作業,您還可以運用路由器連續鏈結迴圈平行執行等進階模式,建構強大、有效率的智慧型應用程式,處理幾乎所有要求。
  • 為代理提供記憶體:瞭解對話記憶體的重要角色,讓代理處理後續問題、從意見回饋中學習,以及順暢管理多步驟工作。
  • 使用 MCP 連線:使用 MCP 工具箱連線。

我們開始吧!🚀

2. 設定 GCP 和 Gemini API 金鑰

設定 GCP 專案和 Gemini API 金鑰

如要為 AI 代理程式提供支援,我們需要兩項資源:提供基礎的 Google Cloud 專案,以及用來存取 Google 強大模型的 Gemini API 金鑰。

步驟 1:啟用帳單帳戶

  • 請先申請帳單帳戶並取得 $5 美元抵免額,以便部署應用程式。請務必使用 Gmail 帳戶。

步驟 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

👉按一下「Open Editor」(開啟編輯器) 按鈕 (類似於開啟資料夾和鉛筆的圖示)。這會在視窗中開啟 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 Server 已啟動的輸出內容,類似如下:

+-----------------------------------------------------------------------------+
| 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 開發人員 UI,請按照下列步驟操作:

在 Cloud Shell 工具列 (通常位於右上角) 中,按一下「網頁預覽」圖示 (通常看起來像眼睛或帶有箭頭的方塊),然後選取「變更通訊埠」。在彈出式視窗中將通訊埠設為 8000,然後按一下「變更並預覽」。Cloud Shell 隨即會開啟新的瀏覽器分頁或視窗,顯示 ADK 開發人員使用者介面。

webpreview

👉 召喚儀式完成,代理程式現已啟動。瀏覽器中的 ADK 開發人員使用者介面可直接連線至 Familiar。

選擇平行工作流程代理程式:在 UI 頂端的下拉式選單中,選擇 parallel_agent

你可以在這裡選取 single_agent單一代理商的追蹤圖片

您可以在這裡查看追蹤記錄:單一代理商的追蹤圖片

👉 測試提示:

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

4. 第 2 堂:工作流程代理程式:循序代理程式、平行代理程式、迴圈代理程式

平行代理程式

選擇平行工作流程代理程式:在 UI 頂端的下拉式選單中,選擇 parallel_agent

👉 測試提示:

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

你可以在這裡選取 parallel_agent平行代理程式的追蹤圖片

您可以在這裡查看追蹤記錄:平行代理程式的追蹤圖片

Sequential Agent

選擇循序工作流程代理程式:在 UI 頂端的下拉式選單中,選擇 sequential_agent

👉 測試提示:

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

你可以在這裡選取 sequential_agent循序代理的追蹤圖片

您可以在這裡查看追蹤記錄:sequential_agent 的追蹤圖片

Loop Agent

選擇迴圈工作流程代理程式:在使用者介面頂端的下拉式選單中,選擇 loop_agent

👉 測試提示:

Plan a trip from Sunnyvale to San Francisco today.

你可以在這裡選取 loop_agent迴圈代理的追蹤圖片

您可以在這裡查看追蹤記錄:迴圈代理的追蹤圖片

5. 工作階段 3:自訂代理程式

ADK 網頁介面開啟後,即可選取 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_Agenttracing picture of Custom_Agent

您可以在這裡查看追蹤記錄:tracing picture of Custom_Agent

6. 第 4 堂:自動化調度管理工具模式 - 轉送代理程式

ADK 網頁介面開啟後,即可選取 routing_agent

👉 測試提示:

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

你可以在這裡選取 routing_agent追蹤路徑代理程式的圖片

您可以在這裡查看追蹤記錄:追蹤路徑代理程式的圖片

7. 第 5 堂:代理程式即工具

ADK 網頁介面開啟後,即可選取 Agent_as_tool 代理程式。

👉 測試提示:

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

你可以在這裡選取 agent_as_tooltracing picture of 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.

然後按下「crtl+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 Toolbox 伺服器

👉💻 在終端機中執行下列指令

cd ~/adk_tutorial/mcp_tool_box
export VERSION=0.16.0
curl -O https://storage.googleapis.com/genai-toolbox/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