Roads Management Insights AI エージェント

目標

Roads Management Insights(RMI)ADK エージェントは、Google BigQuery に保存されている RMI データのクエリと分析を行うための自然言語インターフェースを提供します。Google の Agent Development Kit(ADK)と Gemini 大規模言語モデルを活用することで、複雑な SQL クエリを手動で記述することなく、大規模な道路網と交通データセットから実用的な分析情報を抽出できます。

リファレンス アーキテクチャ

このアーキテクチャは、ルート エージェントがユーザー インタラクションを計画して調整し、特定のデータ取得タスクと SQL 生成タスクを専門のサブエージェントに委任する階層型エージェント システムで構成されています。

RMI エージェントのアーキテクチャ図

コンポーネント

1. RMI エージェント(ルート エージェント)

  • 役割: 主要な会話型インターフェースとタスク オーケストレーター。
  • 責任:
    • マルチターンの会話のコンテキストを維持します。
    • 自然言語のリクエストを実用的な分析タスクに分解します。
    • 構造化データの取得タスクを BigQuery エージェントに委任します。
    • サブエージェントから返された生の表形式データを統合して、人が読める簡潔な分析情報を作成します。

2. BigQuery エージェント(サブエージェント)

  • ロール: SQL の翻訳とデータベース実行に特化したエージェント。
  • 責任:
    • ルート エージェントからの自然言語の指示を最適化された BigQuery SQL クエリに変換します。
    • 構成された BigQuery データセットに対してクエリを直接実行します。
    • 未加工のクエリ結果をルート エージェントに返します。

3. BigQuery データセット

  • 役割: クラウドネイティブの分析データ ウェアハウス。
  • コンテンツ: RMI BigQuery スキーマに従って構造化された historical_travel_time や recent_roads_data などの Roads Management Insights(RMI)テーブル。

4. Google GenAI

  • 役割: コアの推論と言語生成エンジン。
  • モデル: Google Gemini モデル(gemini-3.5-flash など)を活用して、エージェントのオーケストレーション、自然言語理解、SQL 生成を強化します。

実行フロー

  1. ユーザー リクエスト: ユーザーが自然言語の質問を送信します(例: 「昨日のルート 66 の平均移動時間はどのくらいでしたか?」)。
  2. 計画とオーケストレーション: RMI エージェントがリクエストを受信し、経験的なトラフィック データが必要であることを特定して、サブエージェントの特定の取得手順を策定します。
  3. 委任: RMI エージェントは、構造化された指示と関連する時間的制約または空間的制約を使用して BigQuery エージェントを呼び出します。
  4. SQL 生成: RMI スキーマの理解を活用して、BigQuery エージェントが最適化された BigQuery SQL クエリを生成します。
  5. 実行とデータ取得: BigQuery エージェントは、基盤となる BigQuery データセットに対してクエリを実行し、結果の表形式のレコードを取得します。
  6. レスポンスの合成: BigQuery エージェントは、未加工のデータをそのまま RMI エージェントに返します。RMI エージェントは、結果を解釈し、欠落している道路識別子を解決して、ユーザー向けのわかりやすい自然言語のレスポンスを構築します。

例

課題

都市計画担当者は、都市圏の道路網全体の交通渋滞を評価して、夕方の通勤ラッシュ時に信号のタイミングを調整する必要があるかどうかを判断する必要があります。

ソリューションのワークフロー

  1. ユーザーのクエリ: プランナーは CLI またはウェブ UI を使用してエージェントとやり取りし、次のように質問します。

    「先週の金曜日の午後 5 時にボストンのダウンタウンで最も混雑した上位 5 つのルートを特定して。」

  2. エージェントの処理:

    • RMI エージェントがリクエストを解析します。ターゲットの場所(「ボストン市街地」)、時間枠(「先週の金曜日の午後 5 時」)、分析目標(「最も混雑している上位 5 つのルート」)を特定します。「渋滞」は、リアルタイムの移動時間と静的な移動時間の比率(duration_in_seconds / static_duration_in_seconds)として測定されると判断します。
    • 構造化された指示を使用して、データ取得を BigQuery エージェントに委任します。

      「ボストン市内の道路区間を検索し、2026 年 1 月 9 日金曜日の午後 5 時の渋滞率が高い上位 5 つの道路区間を返して。」

  3. データ取得:

    • BigQuery エージェントは、この指示を historical_travel_time テーブルを対象とする SQL クエリに変換し、渋滞率を計算して結果を並べ替え、上位 5 つのセグメントを特定します。
    • BigQuery に対してクエリを実行します。
    • BigQuery は、(segment_id, display_name, duration_in_seconds, static_duration_in_seconds, congestion_ratio) などの未加工の表形式の結果を返します。
  4. 分析情報の生成:

    • BigQuery エージェントは、セグメントの未加工のリストを RMI エージェントに渡します。
    • RMI エージェントは、レコードを分析し、表示名がない道路セグメントや識別子のみの参照を処理して、データをエグゼクティブ サマリーに統合します。
    • エージェントが最終回答を作成します。

      「2026 年 1 月 9 日(金)午後 5 時、ボストン市内の最も混雑するルートで、通常の静的な所要時間よりも大幅に長い所要時間が記録されました。交通状況を考慮した所要時間と静的な所要時間の比率に基づく、最も混雑している上位 5 つのセグメントは次のとおりです。ルート道路/CgkJZ-tTXuNcW4s: 最も混雑しているセグメントで、所要時間は 66 秒でしたが、静的な所要時間はわずか 6 秒でした(混雑率 11.0 倍)。

RMI エージェントのチャットの例

まとめ

階層型 RMI ADK エージェント アーキテクチャは、会話型インタラクションとナラティブ合成を低レベルの SQL 生成とデータ取得から分離することで、複雑な地理空間データ ウェアハウスとエンドユーザー間のギャップを埋めます。専用のサブエージェント内でデータベース実行を分離することで、モジュール性、保守性、運用上の安全性が向上し、意思決定者は自然言語で検証可能な分析情報を迅速に抽出できます。

次のステップ

  • ユースケースに合わせてカスタマイズする: このマルチエージェント アーキテクチャとプロンプト設計を、特定の地理空間または組織のユースケースに合わせて調整します。
  • 特殊なプランナー エージェントで拡張する: 専用のプランナー エージェントを組み込んで、複雑なマルチステップの分析ワークフローをオーケストレートします。
  • マルチモーダル データソースを統合する: RMI データと、気象イベント、工事スケジュール、リアルタイムのインシデント フィードなどの追加の空間レイヤを組み合わせて、交通と道路管理の分析情報を拡充します。
  • 本番環境にデプロイする: Gemini Enterprise Agent Platform でホストされている ADK エージェントを登録して管理するガイドに沿って、エージェントをプロトタイプから本番環境のエンタープライズ環境に移行します。

寄稿者

クラウド ジオグラファー | Kel Markert