使用 ADK 建構 GraphRAG 代理

1. 總覽

在本程式碼研究室中,您將建構精密的投資研究多代理系統,結合 Google 的 Agent Development Kit (ADK)、Neo4j 圖形資料庫和 Model Context Protocol (MCP) 工具箱的強大功能。本實作教學課程將示範如何建立智慧型代理程式,透過圖形關係瞭解資料內容,並提供準確度極高的查詢回覆。

為何要使用 GraphRAG + 多代理系統?

GraphRAG (圖形式檢索增強生成) 運用知識圖譜豐富的關係結構,強化傳統 RAG 方法。GraphRAG 代理程式不僅能搜尋類似文件,還可執行下列操作:

  • 遍歷實體間的複雜關係
  • 透過圖表結構瞭解脈絡
  • 根據連結的資料提供可解釋的結果
  • 在知識圖譜中執行多跳推理

多代理系統可讓您:

  • 將複雜問題分解為專門的子任務
  • 建構可維護的模組化 AI 應用程式
  • 啟用平行處理功能,有效運用資源
  • 透過自動化調度管理建立階層式推理模式

建構項目

您將建立完整的投資研究系統,包含:

  1. 圖形資料庫代理程式:執行 Cypher 查詢並瞭解 Neo4j 結構定義
  2. 投資人研究代理程式:發掘投資人關係和投資組合
  3. 投資研究代理程式:透過 MCP 工具存取完整的知識圖譜
  4. 根代理程式:智慧調度所有子代理程式

系統會回答複雜問題,例如:

  • 「YouTube 的主要競爭對手是誰?」
  • 「2023 年 1 月有哪些公司獲得正面評價?」
  • 「誰投資了字節跳動?他們還投資了哪些公司?」

架構總覽

26c67ab72ef077a4.jpeg

在本程式碼研究室中,您將學習建構企業級 GraphRAG 代理程式的概念基礎和實作方式。

課程內容

  • 如何使用 Google 的 Agent Development Kit (ADK) 建構多代理系統
  • 如何將 Neo4j 圖形資料庫與 ADK 整合,用於 GraphRAG 應用程式
  • 如何為預先驗證的資料庫查詢導入 Model Context Protocol (MCP) Toolbox
  • 如何為智慧型代理建立自訂工具和函式
  • 如何設計代理程式階層和自動化調度管理模式
  • 如何編寫虛擬服務專員指令,發揮最佳成效
  • 如何有效偵錯多代理互動

軟硬體需求

  • Chrome 網路瀏覽器
  • Gmail 帳戶
  • 已啟用計費功能的 Google Cloud 專案
  • 基本熟悉終端機指令和 Python (有幫助,但非必要)

本程式碼研究室適合各種程度的開發人員 (包括初學者),並在範例應用程式中使用 Python 和 Neo4j。雖然基本瞭解 Python 和圖形資料庫會有幫助,但您不需要有相關經驗,也能瞭解概念或跟著操作。

2. 瞭解 GraphRAG 和多代理系統

在深入瞭解實作方式之前,請先瞭解這項系統背後的主要概念。

Neo4j 是領先的原生圖形資料庫,可將資料儲存為節點 (實體) 和關係 (實體之間的連結) 網路,因此非常適合用於需要瞭解連結的用途,例如推薦、詐欺偵測、知識圖譜等。與依賴嚴格資料表或階層式結構的關聯式或文件型資料庫不同,Neo4j 的彈性圖形模型可直覺且有效率地呈現複雜的互連資料。

Neo4j 不像關聯式資料庫那樣以資料列和資料表整理資料,而是使用圖形模型,將資訊表示為節點 (實體) 和關係 (這些實體之間的連結)。這個模型非常適合處理本質上相關聯的資料,例如人物、地點、產品,或以我們的例子來說,就是電影、演員和類型。

舉例來說,在電影資料集中:

  • 節點可代表 MovieActorDirector
  • 關係可以是 ACTED_INDIRECTED

b340d5e06fac5f47.jpeg

這種結構可讓您輕鬆提出下列問題:

  • 這位演員演過哪些電影?
  • 誰曾與克里斯多福諾蘭合作?
  • 根據共同演員或類型,找出類似的電影。

什麼是 GraphRAG?

檢索增強生成 (RAG) 技術可從外部來源檢索相關資訊,提升 LLM 回覆品質。傳統 RAG 通常會:

  1. 將文件嵌入向量
  2. 搜尋類似向量
  3. 將擷取的文件傳給 LLM

GraphRAG 則使用知識圖譜擴充這項技術:

  1. 嵌入實體和關係
  2. 遍歷圖形連線
  3. 擷取多重躍點情境資訊
  4. 提供結構化且可解釋的結果

為什麼要使用 AI 代理的圖表?

請思考這個問題:「YouTube 的競爭對手是誰?哪些投資人同時資助 YouTube 和競爭對手?」

傳統 RAG 方法的運作方式:

  • 搜尋有關 YouTube 競爭對手的檔案
  • 分別搜尋投資人資訊
  • 難以連結這兩項資訊
  • 可能遺漏隱含關係

GraphRAG 方法的運作方式:

MATCH (youtube:Company {name: "YouTube"})-[:COMPETES_WITH]->(competitor:Company)
MATCH (investor:Investor)-[:INVESTED_IN]->(youtube)
MATCH (investor)-[:INVESTED_IN]->(competitor)
RETURN youtube, competitor, investor

圖表自然地呈現關係,因此多重跳躍查詢簡單又有效率。

ADK 中的多代理系統

Agent Development Kit (ADK) 是 Google 的開放原始碼架構,可用於建構及部署實際工作環境等級的 AI 代理。這項服務提供直覺式基本元素,可自動化調度管理多個代理、整合工具及管理工作流程,讓您輕鬆將專業代理組成複雜的系統。ADK 可與 Gemini 完美搭配,並支援部署至 Cloud Run、Kubernetes 或任何基礎架構。

Agent Development Kit (ADK) 提供用於建構多代理系統的基本元素:

  1. 服務專員階層:
# Root agent coordinates specialized agents
root_agent = LlmAgent(
    name="RootAgent",
    sub_agents=[
        graph_db_agent,
        investor_agent,
        investment_agent
    ]
)
  1. 專業服務專員:每位服務專員都有
  • 特定工具:可呼叫的函式
  • 清楚的指令:角色和功能
  • 領域專業知識:瞭解該領域
  1. 自動化調度管理模式:
  • 依序執行代理
  • 並行:同時執行多個代理程式
  • 條件:根據查詢類型轉送

MCP Toolbox for Databases

Model Context Protocol (MCP) 是一項開放標準,可將 AI 系統連結至外部資料來源和工具。MCP Toolbox for Databases 是 Google 的實作項目,可啟用宣告式資料庫查詢管理,讓您將預先驗證的專家撰寫查詢定義為可重複使用的工具。MCP Toolbox 會提供預先核准的查詢並驗證參數,確保安全、效能和可靠性,同時維持 AI 代理程式的彈性,避免大型語言模型產生可能不安全的查詢。

傳統做法:

# LLM generates query (may be incorrect/unsafe)
query = llm.generate("SELECT * FROM users WHERE...")
db.execute(query)  # Risk of errors/SQL injection

MCP 做法:

# Pre-validated query definition
- name: get_industries
  description: Fetch all industries from database
  query: |
    MATCH (i:Industry)
    RETURN i.name, i.id

優點:

  • 專家預先驗證
  • 防範注入式攻擊
  • 效能最佳化
  • 集中管理
  • 可重複用於多個代理程式

正式上線

結合 GraphRAG + ADK 的多代理架構 + MCP,可建立強大的系統:

  1. 根代理程式收到使用者查詢
  2. 根據查詢類型轉送給專責服務專員
  3. 代理程式使用 MCP 工具安全地擷取資料
  4. 圖表結構提供豐富的背景資訊
  5. LLM 生成有憑有據且可解釋的回覆

瞭解架構後,我們就開始建構吧!

3. 設定 Google Cloud 專案

建立專案

  1. Google Cloud 控制台的專案選取器頁面中,選取或建立 Google Cloud 專案
  2. 確認 Cloud 專案已啟用計費功能。瞭解如何檢查專案是否已啟用計費功能
  3. 您將使用 Cloud Shell,這是 Google Cloud 中執行的指令列環境。點選 Google Cloud 控制台頂端的「啟用 Cloud Shell」。如要在 Cloud Shell 終端機 (用於執行雲端指令) 和編輯器 (用於建構專案) 之間切換,請點選 Cloud Shell 中的對應按鈕。

「啟用 Cloud Shell」按鈕圖片

  1. 連線至 Cloud Shell 後,請使用下列指令確認您已通過驗證,且專案已設為您的專案 ID:
gcloud auth list
  1. 在 Cloud Shell 中執行下列指令,確認 gcloud 指令知道您的專案。
gcloud config list project
  1. 如果未設定專案,請使用下列指令來設定:
gcloud config set project <YOUR_PROJECT_ID>

如要瞭解 gcloud 指令和用法,請參閱說明文件

太棒了!我們現在可以進入下一個步驟:瞭解資料集。

4. 瞭解「公司」資料集

在本程式碼研究室中,我們使用的是唯讀的 Neo4j 資料庫,其中預先填入了來自 Diffbot 知識圖譜的投資和公司資料。

資料集包含:

  • 237,358 個節點,代表:
  • 機構 (公司)
  • 人員 (高階主管、員工)
  • 文章 (新聞和提及)
  • 產業
  • 技術
  • 投資人
  • 關係,包括:
  • INVESTED_IN - 投資連結
  • COMPETES_WITH - 競爭關係
  • MENTIONS - 文章參考資料
  • WORKS_AT - 僱傭關係
  • IN_INDUSTRY - 產業分類

5c5fee2a9823601f.jpeg

存取示範資料庫

在本程式碼研究室中,我們將使用代管的示範執行個體。將這些憑證新增至記事:

URI: neo4j+s://demo.neo4jlabs.com
Username: companies
Password: companies
Database: companies

瀏覽器存取權:

您可以在 https://demo.neo4jlabs.com:7473 以視覺化方式探索資料。

使用相同憑證登入,然後嘗試執行:

// Sample query to explore the graph
MATCH (o:Organization)-[:HAS_COMPETITOR]->(competitor:Organization)
RETURN o.name, competitor.name
LIMIT 10

將圖表結構視覺化

在 Neo4j 瀏覽器中嘗試執行這項查詢,查看關係模式:

// Find investors and their portfolio companies
MATCH (investor:Organization)-[:HAS_INVESTOR]->(company:Organization)
WITH investor, collect(company.name) as portfolio
RETURN investor.name, size(portfolio) as num_investments, portfolio
ORDER BY num_investments DESC
LIMIT 5

這項查詢會傳回前 5 位最活躍的投資人及其投資組合。

為什麼要使用這個資料庫進行 GraphRAG?

這個資料集非常適合用來展示 GraphRAG,原因如下:

  1. 豐富的關係:實體之間複雜的連結
  2. 真實世界資料:實際的公司、人物和新聞報導
  3. 多重跳躍查詢:需要遍歷多種關係類型
  4. 時間資料:附有時間戳記的文章,可用於時間分析
  5. 情緒分析:文章的預先計算情緒分數

現在您已瞭解資料結構,接下來就來設定開發環境吧!

5. 複製存放區並設定環境

複製存放區

在 Cloud Shell 終端機中執行下列指令:

# Clone the repository
git clone https://github.com/sidagarwal04/neo4j-adk-multiagents.git

# Navigate into the directory
cd neo4j-adk-multiagents

探索存放區結構

請花點時間瞭解專案版面配置:

neo4j-adk-multiagents/
├── investment_agent/       # Main agent code
   ├── agent.py           # Agent definitions
   ├── tools.py           # Custom tool functions
   └── .adk/              # ADK configuration
       └── tools.yaml     # MCP tool definitions
├── main.py                # Application entry point
├── setup_tools_yaml.py    # Configuration generator
├── requirements.txt       # Python dependencies
├── example.env           # Environment template
└── README.md             # Project documentation

設定虛擬環境

建立及啟用 Python 虛擬環境前,請確認系統已安裝 uv 套件:

# Install uv if not already installed
pip install uv

使用 uv 建立並啟用 Python 虛擬環境:

# Create virtual environment
uv venv

# Activate the environment
source .venv/bin/activate  # On macOS/Linux
# or
.venv\Scripts\activate  # On Windows

終端機提示應會顯示 (.venv) 前置字元。

安裝依附元件

安裝所有必要套件:

uv pip install -r requirements.txt

主要依附元件包括:

google-adk>=1.21.0          # Agent Development Kit
neo4j>=6.0.3               # Neo4j Python driver
python-dotenv>=1.0.0       # Environment variables

設定環境變數

  1. 建立 .env 檔案:
cp example.env .env
  1. 編輯 .env 檔案:

如果使用 Cloud Shell,請點選工具列中的「開啟編輯器」,然後前往 .env 並更新:

# Neo4j Configuration (Demo Database)
NEO4J_URI=neo4j+ssc://demo.neo4jlabs.com
NEO4J_USERNAME=companies
NEO4J_PASSWORD=companies
NEO4J_DATABASE=companies

# Google AI Configuration
# Choose ONE of the following options:

# Option 1: Google AI API (Recommended)
GOOGLE_GENAI_USE_VERTEXAI=0
GOOGLE_API_KEY=your_api_key_here  # Get from https://aistudio.google.com/app/apikey

# Option 2: Vertex AI (If using GCP)
# GOOGLE_GENAI_USE_VERTEXAI=1
# GOOGLE_CLOUD_PROJECT=your-project-id
# GOOGLE_CLOUD_LOCATION=us-central1

# ADK Configuration
GOOGLE_ADK_MODEL=gemini-3-pro-preview  # or gemini-3-flash-preview

# MCP Toolbox Configuration
MCP_TOOLBOX_URL=https://toolbox-990868019953.us-central1.run.app/mcp/sse
  1. MCP Toolbox 設定 (已預先設定,無須執行):

在本實驗室中,MCP 工具箱已代管及預先設定,因此您不需要在本機產生或管理 tools.yaml 檔案。

通常在視需要更新 investment_agent/.adk/tools.yaml.template 後,您會執行下列指令,從環境變數產生 tools.yaml:

python setup_tools_yaml.py

這會產生 investment_agent/.adk/tools.yaml,並為 MCP 工具箱正確設定 Neo4j 憑證。

只有在下列情況下,您才會執行上述指令碼:

  • 您自行代管 MCP Toolbox
  • 您要連線至其他 Neo4j 資料庫或資料集
  • 您想定義自訂工具或憑證

在這種情況下,MCP 工具箱網址和 tools.yaml 設定必須一併更新。

驗證設定

確認所有設定正確無誤:

# Verify .env file exists
ls -la .env

# Verify tools.yaml was generated
ls -la investment_agent/.adk/tools.yaml

# Test Python environment
python -c "import google.adk; print('ADK installed successfully')"

# Test Neo4j connection
python -c "from neo4j import GraphDatabase; print('Neo4j driver installed')"

至此開發環境已全部設定完畢!接著,我們將深入探討多代理程式架構。

6. 瞭解多代理架構

四代理程式系統

我們的投資研究系統採用階層式多代理架構,由四個專用代理共同運作,回答有關公司、投資人和市場情報的複雜查詢。

                ┌──────────────┐
                │  Root Agent  │ ◄── User Query
                └──────┬───────┘
                       │
      ┌────────────────┼────────────────┐
      │                │                │
┌─────▼─────┐     ┌────▼─────┐     ┌────▼──────────┐
│ Graph DB  │     │ Investor │     │  Investment   │
│  Agent    │     │ Research │     │  Research     │
└───────────┘     │  Agent   │     │  Agent        │
                  └──────────┘     └───────────────┘
  1. 根代理程式 (協調器):

根代理程式是整個系統的智慧協調員,這項代理程式會接收使用者查詢、分析意圖,並將要求轉送給最合適的專業代理程式。這就像專案經理,瞭解哪位團隊成員最適合執行哪項工作。此外,這項功能還會處理回應匯總、視需要將結果格式化為表格或圖表,以及在多項查詢中維持對話情境。Root Agent 一律會優先選擇專門的代理程式,而非一般資料庫代理程式,確保查詢作業由最專業的元件處理。

  1. 圖形資料庫代理程式:

圖形資料庫代理程式可直接連線至 Neo4j 強大的圖形功能。這項工具可解讀資料庫結構定義、從自然語言生成 Cypher 查詢,並執行複雜的圖形遍歷。這個代理程式專門處理知識圖譜中的結構性問題、彙整作業和多跳推論。如果查詢需要自訂邏輯,但預先定義的工具無法處理,這項功能就會成為備用專家,因此對於探索性分析和系統設計中未預期的複雜分析查詢而言,這項功能至關重要。

  1. 投資人研究代理程式:

投資人研究代理程式專門處理投資關係和投資組合分析。這項工具可透過完全相符的名稱,找出特定公司的投資人、擷取顯示所有投資的完整投資人投資組合,以及分析各產業的投資模式。這項專業技術可極有效率地回答「誰投資了字節跳動?」或「紅杉資本還投資了哪些公司?」等問題。代理程式會使用自訂 Python 函式,直接查詢 Neo4j 資料庫中與投資人相關的關係。

  1. 投資研究專員:

投資研究代理會運用 Model Context Protocol (MCP) 工具箱,存取經過預先驗證的專家撰寫查詢。這項工具可以擷取所有可用產業、檢索特定產業中的公司、尋找含有情緒分析的文章、在新聞中找出機構提及內容,以及取得公司員工的相關資訊。與動態產生查詢的圖形資料庫代理程式不同,這個代理程式會使用經過集中管理和驗證的安全最佳化預先定義查詢。因此,對於常見的研究工作流程而言,這既安全又高效。

7. 執行及測試多代理系統

啟動應用程式

現在您已瞭解架構,接下來請執行完整系統並與其互動。

啟動 ADK 網頁介面:

# Make sure you're in the project directory with activated virtual environment
cd ~/neo4j-adk-multiagents
source .venv/bin/activate  # If not already activated
# Launch the application
uv run adk web

畫面會顯示類似以下的輸出:

INFO:     Started server process [2542]
INFO:     Waiting for application startup.

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

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

看到伺服器成功啟動後,請開啟瀏覽器並前往 http://127.0.0.1:8000 存取應用程式。

測試查詢和預期行為

讓我們透過難度漸增的查詢,探索系統的功能:

基本查詢 (單一代理程式)

查詢 1:探索產業

What industries are available in the database?

預期行為:

  • 根代理程式會將要求轉送至投資研究代理程式
  • 使用 MCP 工具:get_industries()
  • 傳回所有產業的格式化清單

觀察重點:

在 ADK 使用者介面中,展開執行作業詳細資料即可查看:

  • 選擇代理程式的決策
  • 工具呼叫:get_industries()
  • Neo4j 的原始結果
  • 格式化回覆

查詢 2:尋找投資人

Who invested in ByteDance?

預期行為:

  • Root Agent 將此識別為與投資人相關的查詢
  • 轉送給投資人研究代理
  • 使用工具:find_investor_by_name("ByteDance")
  • 傳回投資人及其類型 (個人/機構)

後續事宜:

  • 與字節跳動相關的投資人清單
  • 每位投資人及其姓名和實體類型 (個人或機構)
  • 簡明易懂的結果摘要
  • 後續提示,詢問是否要探索相關投資或投資人投資組合 (可能)

查詢 3:依產業分類的公司

Show me companies in the Artificial Intelligence industry

預期行為:

  • 根代理程式會將要求轉送至投資研究代理程式
  • 使用 MCP 工具:get_companies_in_industry("Artificial Intelligence")
  • 傳回 AI 公司清單,其中包含 ID 和成立日期

觀察重點:

  • 請注意,代理程式如何使用完全相符的產業名稱
  • 為避免輸出過多結果,系統會限制結果數量
  • 資料格式清楚易讀

中階查詢 (單一服務專員的多個步驟)

查詢 4:情緒分析

Find articles with positive sentiment from January 2023

預期行為:

  • 轉送至投資研究專員
  • 使用 MCP 工具:get_articles_with_sentiment(0.7, 2023, 1)
  • 傳回文章,並附上標題、情緒分數和發布日期

偵錯提示:

查看工具叫用參數:

  • min_sentiment:0.7 (代理程式將「正面」解讀為 >= 0.7)
  • year:2023 年
  • month:1

查詢 5:複雜的資料庫查詢

How many companies are in the database?

預期行為:

  • Root Agent 會將要求轉送至 Graph Database Agent
  • 代理程式會先呼叫 get_neo4j_schema(),瞭解結構
  • 生成 Cypher:MATCH (c:Company) RETURN count(c)
  • 執行查詢並傳回計數

預期回覆:

There are 46,088 companies in the database.

進階查詢 (多代理程式協調)

查詢 6:投資組合分析

Who invested in ByteDance and what else have they invested in?

預期行為:

這項查詢分為兩部分,需要專員協調:

  • 步驟 1:根代理程式 → 投資人研究代理程式
  • 通話 find_investor_by_name("ByteDance")
  • 取得投資人清單:[Rong Yue、Wendi Murdoch]
  • 步驟 2:為每位投資人指派投資人研究代理程式
  • 通話 find_investor_by_id(investor_id)
  • 擷取完整投資組合
  • 步驟 3:Root Agent 彙整及格式化

後續事宜:

  • 曾投資字節跳動的出資方清單
  • 針對每位投資人:
  • 對方的姓名和實體類型 (個人或機構)
  • 根據現有資料,列出他們投資的其他公司
  • 以投資人為單位,提供結構化且易於閱讀的摘要

觀察重點:

  • 依序呼叫多個工具
  • 步驟之間會保留情境
  • 智慧匯總結果

查詢 7:多網域研究

What are 5 AI companies mentioned in positive articles, and who are their CEOs?

預期行為:

這項複雜查詢需要多個代理程式和工具:

  • 步驟 1:投資研究專員
  • get_companies_in_industry("Artificial Intelligence")
  • 傳回 AI 公司清單
  • 步驟 2:投資研究代理程式
  • get_articles_with_sentiment(0.8)
  • 傳回正面文章
  • 步驟 3:Root Agent 篩選器
  • 找出正面文章中提及的 AI 公司
  • 選取前 5 大
  • 步驟 4:投資研究代理程式
  • get_people_in_organizations([company_names], "CEO")
  • 傳回執行長資訊
  • 步驟 5:根代理程式會格式化回覆

後續事宜:

  • 人工智慧產業的五家公司清單
  • 只會顯示出現在正面評價文章中的公司
  • 針對每間公司:
  • 公司名稱
  • 產業別
  • 執行長姓名
  • 匯總或代表性的情緒分數

觀察重點:

  • 不同代理程式的多個工具呼叫
  • 資料篩選與組合邏輯

查詢 8:競爭分析

Who are YouTube's main competitors?

預期行為:

  • 根代理會將查詢路徑導向圖形資料庫代理 (關係查詢)
  • 代理程式會生成 GraphRAG 強化的 Cypher:
MATCH (c:Company {name: "YouTube"})-[:COMPETES_WITH]->(competitor)
RETURN competitor.name as competitor_name
  • 傳回競爭公司清單

預期回覆:

YouTube's main competitors are:

- TikTok (ByteDance)
- Dailymotion
- Twitter
- BuzzFeed
- Mixer
- OpenAI (for video content)

情境感知後續查詢

查詢 9:後續問題 (查詢 8 之後)

Which investors funded both YouTube and its competitors?

預期行為:

  • Root Agent 會記住先前的脈絡 (YouTube 和競爭對手)
  • 轉送給投資人研究代理
  • 找出 YouTube 和每位競爭對手的投資人
  • 找出投資多家公司的投資人

後續事宜:

  • 系統會使用現有的對話情境 (YouTube 和競爭對手)
  • 投資於這個競爭環境中多間公司的投資人清單
  • 針對每位投資人:
  • 投資人姓名
  • 他們投資的相關公司分組清單
  • 簡短的解讀摘要,重點在於策略重疊或模式 (可能)

查詢 10:研究摘要

Summarize our research findings so far

預期行為:

  • Root Agent 審查對話記錄
  • 綜合分析先前查詢的重要發現
  • 提供連貫的摘要

後續事宜:

  • 簡潔且架構完善的摘要,彙整先前查詢收集到的洞察
  • 按主題分組的重要發現 (產業概況、公司分析、情緒、競爭、領導)
  • 清楚列出重點:
  • 已探索的產業
  • 知名公司和投資人
  • 跨公司投資模式
  • 市場情緒趨勢
  • 連貫的敘述,反映整個工作階段中可感知情境的合成結果

瞭解偵錯檢視畫面中的代理程式互動

ADK 網頁介面會提供詳細的執行作業可視度。請注意以下事項:

  1. 活動時間表

顯示時間順序流程:

[USER] Query received
[ROOT_AGENT] Analyzing query intent
[ROOT_AGENT] Routing to investment_research_agent
[INVESTMENT_RESEARCH_AGENT] Tool call: get_companies_in_industry
[TOOL] Executing with params: {"industry_name": "Artificial Intelligence"}
[TOOL] Returned 47 results
[INVESTMENT_RESEARCH_AGENT] Formatting response
[ROOT_AGENT] Presenting to user
  1. 工具叫用詳細資料

按一下任何工具呼叫即可查看:

  • 函式名稱
  • 輸入參數
  • 傳回值
  • 執行時間
  • 任何錯誤
  1. 代理程式決策

觀察 LLM 的推理過程:

  • 選擇特定代理程式的原因
  • 如何解讀查詢
  • 考量的工具
  • 為什麼搜尋結果會以特定方式呈現

常見觀察結果和深入分析

查詢轉送模式:

  • 「投資人」、「已投資」等關鍵字 → 投資人研究代理程式
  • 「產業」、「公司」、「文章」等關鍵字 → 投資研究代理人
  • 彙整、計數、複雜邏輯 → 圖形資料庫代理程式

效能注意事項:

  • MCP 工具通常較快 (預先最佳化查詢)
  • 生成複雜的 Cypher 查詢需要較長時間 (LLM 思考時間)
  • 多次呼叫工具會增加延遲時間,但可提供更豐富的結果

錯誤處理:

如果查詢失敗:

  • 服務專員說明問題
  • 提供修正建議 (例如找不到公司名稱,請檢查拼字」)
  • 可嘗試其他方法

有效測試的訣竅

  1. 從簡單開始:先測試每個代理程式的核心功能,再進行複雜查詢
  2. 使用後續問題:透過後續問題測試脈絡保留功能
  3. 觀察路徑:觀察哪個代理程式處理每項查詢,瞭解邏輯
  4. 檢查工具呼叫:確認參數是否從自然語言正確擷取
  5. 測試極端情況:嘗試模稜兩可的查詢、錯別字或不尋常的要求

現在您已擁有功能完整的多代理 GraphRAG 系統!歡迎自行提問,探索這項功能。

8. 清除所用資源

如要避免系統向您的 Google Cloud 帳戶收取本文章所用資源的費用,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,前往「管理資源」頁面。
  2. 在專案清單中選取要刪除的專案,然後點按「刪除」。
  3. 在對話方塊中輸入專案 ID,然後按一下「Shut down」(關閉) 即可刪除專案。

9. 恭喜

🎉 恭喜!您已成功使用 Google 的 Agent Development Kit、Neo4j 和 MCP Toolbox,建構生產品質的多代理 GraphRAG 系統!

您結合了 ADK 的智慧型自動化調度管理功能、Neo4j 關係豐富的資料模型,以及預先驗證 MCP 查詢的安全性,建立出超越簡單資料庫查詢的精巧系統。這個系統不僅能瞭解背景資訊、複雜關係中的原因,還能協調專門的代理程式,提供全面且準確的洞察資訊。

在本程式碼研究室中,您完成了下列事項:

✅ 使用 Google 的 Agent Development Kit (ADK) 建構多代理系統,並採用階層式自動調度管理

整合 Neo4j 圖形資料庫,運用關係感知查詢和多跳推論

實作 MCP Toolbox,以安全、預先驗證的資料庫查詢做為可重複使用的工具

建立專用代理程式,用於投資人研究、投資分析和圖形資料庫作業

設計智慧型轉送功能,自動將查詢委派給最合適的專家服務專員

處理複雜資料類型,並使用適當的 Neo4j 類型序列化,實現無縫 Python 整合

採用代理程式設計、錯誤處理和系統偵錯的實際工作環境最佳做法

後續步驟

這項多代理程式 GraphRAG 架構不只適用於投資研究,還可擴展至:

  • 金融服務:投資組合最佳化、風險評估、詐欺偵測
  • 醫療照護:病患照護協調、藥物交互作用分析、臨床研究
  • 電子商務:個人化建議、供應鏈最佳化、顧客洞察
  • 法律和法規遵循:合約分析、法規監控、判例法研究
  • 學術研究:文獻回顧、合作探索、引用分析
  • 企業智慧:競爭分析、市場研究、機構知識圖譜

只要您有複雜的互連資料 + 領域專業知識 + 自然語言介面,ADK 多代理程式系統、Neo4j 知識圖和 MCP 驗證查詢的組合,就能為新一代智慧型企業應用程式提供強大支援。

隨著 Google 的代理程式開發套件和 Gemini 模型持續發展,您將能納入更精密的推理模式、即時資料整合和多模態功能,建構真正智慧、能感知情境的系統。

繼續探索、繼續建構,讓智慧型代理程式應用程式更上一層樓!

前往 Neo4j GraphAcademy 探索更多知識圖譜實作教學課程,並在 ADK 範例存放區中發掘其他代理程式模式。

🚀 準備好建構下一個智慧型代理程式系統了嗎?

參考文件