目標
道路管理分析 (RMI) ADK 代理提供自然語言介面,可查詢及分析儲存在 Google BigQuery 中的 RMI 資料。這項功能運用 Google 的 Agent Development Kit (ADK) 和 Gemini 大型語言模型,讓使用者從大規模路網和流量資料集擷取可執行的洞察資料,不必手動編寫複雜的 SQL 查詢。
參考架構
這項架構包含階層式代理系統,其中根代理會規劃及協調使用者互動,並將特定資料檢索和 SQL 生成工作委派給專門的子代理。
元件
1. RMI 代理 (根層級代理)
- 角色:主要對話介面和工作自動化調度管理服務。
- 責任:
- 保留多輪對話情境。
- 將自然語言要求分解為可執行的分析工作。
- 將結構化資料擷取工作委派給 BigQuery 代理程式。
- 將子代理傳回的原始表格資料統整為簡潔易懂的洞察資訊。
2. BigQuery 代理程式 (子代理程式)
- 角色:專門的 SQL 翻譯和資料庫執行代理程式。
- 責任:
- 將根代理程式的自然語言指令轉換為最佳化的 BigQuery SQL 查詢。
- 直接對設定的 BigQuery 資料集執行查詢。
- 將未經修改的原始查詢結果傳回給根層級代理。
3. BigQuery 資料集
- 角色:雲端原生分析資料倉儲。
- 內容:道路管理分析 (RMI) 資料表,包括
historical_travel_time和recent_roads_data,結構符合 RMI BigQuery 結構定義。
4. Google 生成式 AI
- 角色:核心推理和語言生成引擎。
- 模型:運用 Google Gemini 模型 (例如
gemini-3.5-flash), 支援代理自動化調度管理、自然語言理解和 SQL 生成。
執行流程
- 使用者要求:使用者以自然語言提問 (例如「昨天 66 號公路的平均行程時間是多少?」)。
- 規劃與自動化調度:RMI 代理程式會接收要求、判斷需要實證交通資訊,並為子代理程式制定具體的擷取指令。
- 委派:RMI 代理會使用結構化指令和相關的時間或空間限制,叫用 BigQuery 代理。
- 生成 SQL:BigQuery 代理程式會根據對 RMI 結構定義的瞭解,生成最佳化的 BigQuery SQL 查詢。
- 執行和擷取資料:BigQuery 代理程式會針對基礎 BigQuery 資料集執行查詢,並擷取產生的表格記錄。
- 回應合成:BigQuery 代理會將未經修改的原始資料傳回 RMI 代理,後者會解讀結果、解決缺少的道路 ID,並為使用者建構清楚的自然語言回應。
範例情境
挑戰
城市規劃人員需要評估都會區道路網路的交通壅塞情況,判斷是否需要在傍晚通勤尖峰時段調整交通號誌時間。
解決方案工作流程
使用者查詢:規劃者使用 CLI 或網頁 UI 與代理互動,並提出以下問題:
「找出上週五下午 5 點波士頓市中心最壅塞的 5 條路線。」
代理程式處理:
- RMI 代理會剖析要求。這項要求會指定目標位置 (「波士頓市中心」)、時間範圍 (「上週五下午 5 點」) 和分析目標 (「最壅塞的 5 條路線」)。系統會判斷「壅塞」應以即時行車時間與靜態時間的比率 (
duration_in_seconds/static_duration_in_seconds) 衡量。 這項工具會將資料擷取作業委派給 BigQuery 代理程式,並提供結構化指令:
「Find road segments in downtown Boston and return the top 5 with the highest congestion ratio for Friday, January 9, 2026, at 5:00 PM.」(在波士頓市中心尋找路段,並傳回 2026 年 1 月 9 日星期五下午 5:00 擁塞率最高的前 5 個路段。)
- RMI 代理會剖析要求。這項要求會指定目標位置 (「波士頓市中心」)、時間範圍 (「上週五下午 5 點」) 和分析目標 (「最壅塞的 5 條路線」)。系統會判斷「壅塞」應以即時行車時間與靜態時間的比率 (
資料檢索:
- BigQuery 代理會將這項指令轉換為以
historical_travel_time資料表為目標的 SQL 查詢,計算壅塞比率並排序結果,找出前 5 個路段。 - 並針對 BigQuery 執行查詢。
- BigQuery 會傳回原始表格結果,例如
(segment_id, display_name, duration_in_seconds, static_duration_in_seconds, congestion_ratio)。
- BigQuery 代理會將這項指令轉換為以
洞察生成功能:
- BigQuery 代理程式會將原始區隔清單傳回給 RMI 代理程式。
- RMI 代理程式會分析記錄、處理缺少顯示名稱或僅含 ID 參照的路段,並將資料合成內容提要。
代理會建構最終回覆:
「2026 年 1 月 9 日星期五下午 5 點,波士頓市中心最擁擠的路線,行車時間比一般靜態時間長得多。以下是根據流量感知時間與靜態時間的比率,列出的前 5 個最壅塞路段:路線道路/CgkJZ-tTXuNcW4s:這是最壅塞的路段,行車時間為 66 秒,而靜態時間僅 6 秒 (壅塞比率為 11.0 倍)...」
結論
透過將對話互動和敘事綜合從低階 SQL 生成和資料擷取中分離出來,階層式 RMI ADK 代理架構可彌合複雜地理空間資料倉儲與使用者之間的差距。在專用子代理程式中隔離資料庫執行作業,可提升模組化、可維護性和作業安全性,同時讓決策者能透過自然語言快速擷取可驗證的洞察資訊。
後續步驟
- 根據您的用途自訂:根據特定地理空間或機構用途,調整這個多代理架構和提示設計。
- 使用專用規劃代理擴充功能:納入專用規劃代理,自動調度管理複雜的多步驟分析工作流程。
- 整合多模態資料來源:結合 RMI 資料與其他空間圖層 (例如天氣事件、施工時間表或即時事件動態饋給),進一步瞭解車流和道路管理。
- 部署至正式環境:按照指南註冊及管理 Gemini Enterprise Agent Platform 上代管的 ADK 代理,將代理從原型轉移至正式企業環境。
貢獻者
Kel Markert | Cloud Geographer