Agent AI usługi Statystyki dla Zarządców Dróg

Cel

Agent ADK Statystyk dla Zarządców Dróg (RMI) udostępnia interfejs w języku naturalnym do wysyłania zapytań i analizowania danych RMI przechowywanych w Google BigQuery. Dzięki wykorzystaniu pakietu Agent Development Kit (ADK) Google i dużych modeli językowych Gemini umożliwia użytkownikom wyodrębnianie przydatnych statystyk z dużych zbiorów danych o sieci dróg i ruchu bez ręcznego pisania złożonych zapytań SQL.

Architektura referencyjna

Architektura składa się z hierarchicznego systemu agentów, w którym agent główny planuje i koordynuje interakcje z użytkownikiem, delegując konkretne zadania pobierania danych i generowania kodu SQL do wyspecjalizowanego podagenta.

Schemat architektury agenta RMI

Komponenty

1. Agent RMI (agent główny)

  • Rola: główny interfejs konwersacyjny i koordynator zadań.
  • Obowiązki:
    • Utrzymuje kontekst rozmowy wieloetapowej.
    • Rozkłada żądania w języku naturalnym na zadania analityczne.
    • Deleguje zadania pobierania uporządkowanych danych do agenta BigQuery.
    • Syntetyzuje nieprzetworzone dane w formie tabeli zwrócone przez sub-agenta w zwięzłe, zrozumiałe dla człowieka obserwacje.

2. Agent BigQuery (podagent)

  • Rola: wyspecjalizowany agent tłumaczenia kodu SQL i wykonywania zapytań w bazie danych.
  • Obowiązki:
    • Tłumaczy instrukcje w języku naturalnym od agenta głównego na zoptymalizowane zapytania SQL BigQuery.
    • Wykonuje zapytania bezpośrednio w skonfigurowanym zbiorze danych BigQuery.
    • Zwraca nieprzetworzone, niezmienione wyniki zapytań do agenta głównego.

3. Zbiór danych BigQuery

  • Rola: natywna dla chmury hurtownia danych analitycznych.
  • Zawartość: tabele Statystyki dla Zarządców Dróg (RMI), w tym historical_travel_time i recent_roads_data, uporządkowane zgodnie z e schematem RMI BigQuery.

4. Google GenAI

  • Rola: podstawowy silnik rozumowania i generowania języka.
  • Model: wykorzystuje modele Google Gemini (np. gemini-3.5-flash) do obsługi koordynacji agentów, rozumienia języka naturalnego i generowania kodu SQL .

Przebieg wykonania

  1. Żądanie użytkownika: użytkownik przesyła pytanie w języku naturalnym (np. "Jaki był średni czas podróży na trasie 66 wczoraj?").
  2. Planowanie i koordynacja: agent RMI otrzymuje żądanie, stwierdza, że wymagane są empiryczne dane o ruchu, i formułuje konkretną instrukcję pobierania dla sub-agenta.
  3. Delegowanie: agent RMI wywołuje agenta BigQuery z uporządkowaną instrukcją i odpowiednimi ograniczeniami czasowymi lub przestrzennymi.
  4. Generowanie kodu SQL: agent BigQuery generuje zoptymalizowane zapytanie SQL BigQuery, wykorzystując swoją wiedzę o schemacie RMI.
  5. Wykonanie i pobieranie danych: agent BigQuery wykonuje zapytanie w bazowym zbiorze danych BigQuery i pobiera wynikowe rekordy tabelaryczne.
  6. Synteza odpowiedzi: agent BigQuery zwraca nieprzetworzone dane do agenta RMI, który interpretuje wyniki, rozwiązuje brakujące identyfikatory dróg i tworzy jasną odpowiedź w języku naturalnym dla użytkownika.

Przykładowy scenariusz

Wyzwanie

Planista miejski musi ocenić natężenie ruchu w sieci dróg metropolii, aby określić, czy w godzinach szczytu wieczornego dojazdu do pracy należy dostosować czasy sygnalizacji świetlnej.

Przebieg rozwiązania

  1. Zapytanie użytkownika: planista wchodzi w interakcję z agentem za pomocą interfejsu CLI lub interfejsu internetowego, zadając pytanie:

    „Wskaż 5 najbardziej zatłoczonych tras w centrum Bostonu w piątek o 17:00.”

  2. Przetwarzanie przez agenta:

    • Agent RMI analizuje żądanie. Określa lokalizację docelową („centrum Bostonu”), okno czasowe („ostatni piątek o 17:00”) i cel analityczny („5 najbardziej zatłoczonych tras”). Określa, że „natężenie ruchu” należy mierzyć jako stosunek czasu podróży w czasie rzeczywistym do czasu statycznego (duration_in_seconds / static_duration_in_seconds).
    • Deleguje pobieranie danych do agenta BigQuery z uporządkowaną instrukcją:

      „Znajdź odcinki dróg w centrum Bostonu i zwróć 5 najbardziej zatłoczonych w piątek 9 stycznia 2026 r. o 17:00.”

  3. Pobieranie danych:

    • Agent BigQuery tłumaczy tę instrukcję na zapytanie SQL kierowane do tabeli historical_travel_time, obliczając współczynnik natężenia ruchu i porządkując wyniki, aby zidentyfikować 5 najlepszych segmentów.
    • Wykonuje zapytanie w BigQuery.
    • BigQuery zwraca nieprzetworzone wyniki tabelaryczne, takie jak (segment_id, display_name, duration_in_seconds, static_duration_in_seconds, congestion_ratio).
  4. Generowanie statystyk:

    • Agent BigQuery przekazuje nieprzetworzoną listę segmentów z powrotem do agenta RMI.
    • Agent RMI analizuje rekordy, obsługuje odcinki dróg z brakującymi nazwami wyświetlanymi lub odwołaniami tylko do identyfikatorów i syntetyzuje dane w podsumowanie.
    • Agent tworzy ostateczną odpowiedź:

      „W piątek 9 stycznia 2026 r. o 17:00 najbardziej zatłoczone trasy w centrum Bostonu miały znacznie dłuższy czas podróży niż typowy czas statyczny. Oto 5 najbardziej zatłoczonych odcinków na podstawie stosunku czasu podróży uwzględniającego natężenie ruchu do czasu statycznego: Route roads/CgkJZ-tTXuNcW4s: był to najbardziej zatłoczony odcinek, z czasem podróży wynoszącym 66 sekund w porównaniu z czasem statycznym wynoszącym zaledwie 6 sekund (współczynnik natężenia ruchu 11,0x)...”

Przykładowy czat z agentem RMI

Podsumowanie

Dzięki oddzieleniu interakcji konwersacyjnej i syntezy narracji od generowania kodu SQL i pobierania danych na niskim poziomie hierarchiczna architektura agenta RMI ADK wypełnia lukę między złożonymi hurtowniami danych geoprzestrzennych a użytkownikami. Izolowanie wykonywania zapytań w bazie danych w wyspecjalizowanym sub-agencie sprzyja modułowości, łatwości konserwacji i bezpieczeństwu operacyjnemu, a jednocześnie umożliwia osobom podejmującym decyzje szybkie wyodrębnianie weryfikowalnych statystyk za pomocą języka naturalnego.

Dalsze kroki

Współtwórcy

Kel Markert | Cloud Geographer