Architettura dell'agente RMI ADK

Obiettivo

L'agente ADK di Roads Management Insights (RMI) fornisce un'interfaccia in linguaggio naturale per eseguire query e analizzare i dati RMI archiviati in Google BigQuery. Sfruttando l'Agent Development Kit (ADK) di Google e i modelli linguistici di grandi dimensioni Gemini, consente agli utenti di estrarre informazioni utili da set di dati di traffico e reti stradali su larga scala senza scrivere manualmente query SQL complesse.

Architettura di riferimento

L'architettura è costituita da un sistema di agenti gerarchico in cui un agente principale pianifica e orchestra le interazioni dell'utente, delegando attività specifiche di recupero dei dati e generazione di SQL a un sub-agente specializzato.

Diagramma dell'architettura dell'agente RMI

Componenti

1. Agente RMI (agente principale)

  • Ruolo: interfaccia di conversazione principale e orchestratore di attività.
  • Responsabilità:
    • Mantiene il contesto della conversazione in più passaggi.
    • Decompone le richieste in linguaggio naturale in attività analitiche eseguibili.
    • Delega le attività di recupero dei dati strutturati all'agente BigQuery.
    • Sintetizza i dati tabulari non elaborati restituiti dal sub-agente in informazioni concise e leggibili.

2. Agente BigQuery (sub-agente)

  • Ruolo: agente specializzato per la traduzione SQL e l'esecuzione di database.
  • Responsabilità:
    • Traduce le istruzioni in linguaggio naturale dell'agente principale in query SQL BigQuery ottimizzate.
    • Esegue query direttamente sul set di dati BigQuery configurato.
    • Restituisce i risultati delle query non elaborati e non modificati all'agente principale.

3. Set di dati BigQuery

  • Ruolo: data warehouse analitico cloud-native.
  • Contenuti: tabelle di Roads Management Insights (RMI), tra cui historical_travel_time e recent_roads_data, strutturate in base allo schema BigQuery RMI.

4. Google GenAI

  • Ruolo: motore principale di ragionamento e generazione di linguaggio.
  • Modello: utilizza i modelli Google Gemini (ad es. gemini-3.5-flash) per gestire l'orchestrazione degli agenti, la comprensione del linguaggio naturale e la generazione di SQL .

Flusso di esecuzione

  1. Richiesta dell'utente: l'utente invia una domanda in linguaggio naturale (ad es. "Qual è stato il tempo di percorrenza medio sulla Route 66 ieri?").
  2. Pianificazione e orchestrazione: l'agente RMI riceve la richiesta, identifica che sono necessari dati sul traffico empirici e formula un'istruzione di recupero specifica per il sub-agente.
  3. Delega: l'agente RMI richiama l'agente BigQuery con l' istruzione strutturata e i vincoli temporali o spaziali pertinenti.
  4. Generazione di SQL: sfruttando la sua conoscenza dello schema RMI, il agente BigQuery genera una query SQL BigQuery ottimizzata.
  5. Esecuzione e recupero dei dati: l'agente BigQuery esegue la query sul set di dati BigQuery sottostante e recupera i record tabulari risultanti.
  6. Sintesi della risposta: l'agente BigQuery restituisce i dati non elaborati e non modificati all'agente RMI, che interpreta i risultati, risolve gli identificatori stradali mancanti e crea una risposta chiara in linguaggio naturale per l'utente.

Scenario di esempio

La sfida

Un urbanista deve valutare la congestione del traffico in una rete stradale metropolitana per determinare se i tempi dei semafori richiedono una regolazione durante le ore di punta della sera.

Flusso di lavoro della soluzione

  1. Query dell'utente: l'urbanista interagisce con l'agente utilizzando la CLI o l'interfaccia utente web, chiedendo:

    "Identifica le 5 strade più congestionate nel centro di Boston venerdì scorso alle 17:00."

  2. Elaborazione dell'agente:

    • L'agente RMI analizza la richiesta. Identifica la località di destinazione ("centro di Boston"), la finestra temporale ("venerdì scorso alle 17:00") e l'obiettivo analitico ("le 5 strade più congestionate"). Determina che "congestione" deve essere misurata come il rapporto tra la durata del viaggio in tempo reale e la durata statica (duration_in_seconds / static_duration_in_seconds).
    • Delega il recupero dei dati all'agente BigQuery con un'istruzione strutturata:

      "Trova i segmenti stradali nel centro di Boston e restituisci i 5 con il rapporto di congestione più alto per venerdì 9 gennaio 2026 alle 17:00."

  3. Recupero dei dati:

    • L'agente BigQuery traduce questa istruzione in una query SQL che ha come target la tabella historical_travel_time, calcolando il rapporto di congestione e ordinando i risultati per identificare i 5 segmenti principali.
    • Esegue la query su BigQuery.
    • BigQuery restituisce risultati tabulari non elaborati, ad esempio (segment_id, display_name, duration_in_seconds, static_duration_in_seconds, congestion_ratio).
  4. Generazione di insight:

    • L'agente BigQuery restituisce l'elenco non elaborato dei segmenti all'agente RMI.
    • L'agente RMI analizza i record, gestisce i segmenti stradali con nomi visualizzati mancanti o riferimenti solo identificativi e sintetizza i dati in un riepilogo esecutivo.
    • L'agente crea la risposta finale:

      "Venerdì 9 gennaio 2026 alle 17:00, le strade più congestionate del centro di Boston hanno registrato tempi di percorrenza significativamente più elevati rispetto alle durate statiche tipiche. Di seguito sono riportati i 5 segmenti più congestionati in base al rapporto tra la durata in base al traffico e la durata statica: Route roads/CgkJZ-tTXuNcW4s: questo è stato il segmento più congestionato, con un tempo di percorrenza di 66 secondi rispetto a una durata statica di soli 6 secondi (un rapporto di congestione di 11,0x)..."

Chat di esempio dell'agente RMI

Conclusione

Separando l'interazione conversazionale e la sintesi narrativa dalla generazione di SQL di basso livello e dal recupero dei dati, l'architettura gerarchica dell'agente ADK RMI colma il divario tra i data warehouse geospaziali complessi e gli utenti finali. L'isolamento dell'esecuzione del database all'interno di un sub-agente specializzato promuove la modularità, la manutenibilità e la sicurezza operativa, consentendo al contempo ai responsabili delle decisioni di estrarre rapidamente informazioni verificabili tramite il linguaggio naturale.

Passaggi successivi

  • Personalizza per il tuo caso d'uso: adatta questa architettura multi-agente e la progettazione dei prompt ai tuoi casi d'uso geospaziali o organizzativi specifici.
  • Estendi con agenti di pianificazione specializzati: incorpora un agente di pianificazione dedicato per orchestrare workflow analitici complessi in più passaggi.
  • Integra le origini dati multimodali: arricchisci le informazioni sul traffico e sulla gestione delle strade combinando i dati RMI con altri livelli spaziali, come eventi meteorologici, programmi di costruzione o feed di incidenti in tempo reale.
  • Esegui il deployment in produzione: esegui la transizione dell'agente dal prototipo a un ambiente aziendale di produzione seguendo la guida per registrare e gestire gli agenti ADK ospitati su Gemini Enterprise Agent Platform.

Collaboratori

Kel Markert | Cloud Geografo cloud