目標
道路管理分析 (RMI) ADK 代理提供自然語言介面,可查詢及分析儲存在 Google BigQuery 中的 RMI 資料。這項功能運用 Google 的代理程式開發套件 (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 或網頁介面與代理程式互動,並提出以下問題:
「找出上週五下午 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