Gestione dello stato per gli agenti dati

Quando crei con l'API Conversational Analytics, la gestione dello stato è un aspetto fondamentale dell'architettura. Gestisci lo stato della conversazione dell'API e, per le applicazioni che utilizzano l'Agent Development Kit (ADK), lo stato della sessione del framework.

Modalità di stato dell'API

Il metodo chat dell'API Conversational Analytics supporta parametri di contesto reciprocamente esclusivi che determinano la gestione degli stati della conversazione.

Utilizza la seguente tabella per confrontare queste modalità:

Modalità Stato Cronologia conversazione Agente Parametro Descrizione
Chattare con un riferimento alla conversazione Stateful Gestito dall'API ConversationReference Continua una conversazione con stato facendo riferimento a una conversazione esistente e al relativo agente. Google Cloud Memorizza e gestisce la cronologia della conversazione. Invii solo il nuovo messaggio per ogni turno.
Chatta con un agente per i dati di riferimento Stateless Gestito dalla tua applicazione DataAgentContext Invia un messaggio stateless che fa riferimento a un agente dati salvato per il contesto. La tua applicazione deve gestire e fornire la cronologia completa della conversazione con ogni richiesta.
Chat con contesto in linea Stateless Gestito dalla tua applicazione No InlineContext Invia un messaggio stateless che fornisce tutto il contesto direttamente nella richiesta. Questa modalità non utilizza un agente di dati salvati. La tua applicazione deve gestire e fornire la cronologia completa delle conversazioni.

Stato della sessione ADK

Se utilizzi il framework ADK per l'orchestrazione, ADK fornisce un livello di gestione dello stato che opera indipendentemente dallo stato dell'API Conversational Analytics. Comprendere entrambi i livelli è essenziale per creare sistemi multi-agente che funzionino correttamente.

L'ADK utilizza convenzioni per i prefissi delle chiavi per controllare l'ambito e la durata delle variabili di stato. Utilizza la tabella seguente per valutare questi ambiti:

Prefisso chiave Ambito Durata Visibile a Esempi
(nessun prefisso) Sessione Solo per la sessione corrente Tutti gli agenti nella sessione L'argomento della conversazione corrente o i risultati dell'ultima query
user: Utente In tutte le sessioni dello stesso utente Tutti gli agenti e le sessioni per l'utente specificato Preferenze utente, ID agenti di dati salvati o impostazioni della lingua
app: Applicazione In tutte le sessioni per tutti gli utenti Tutti gli agenti e tutti gli utenti Configurazione globale dell'applicazione, ID agenti dati condivisi o flag funzionalità
temp: Chiamata Solo l'invocazione corrente L'agente corrente all'interno della chiamata attiva Dati di risposta intermedi, come blocchi di streaming o calcoli in corso

Per saperne di più sulla condivisione dello stato nei sistemi multi-agente, consulta la documentazione dell'ADK.

Come interagiscono lo stato dell'API e lo stato dell'ADK

Quando utilizzi l'API Conversational Analytics con il framework ADK, i livelli di stato funzionano in modo indipendente:

  • Stato dell'API: se la tua applicazione utilizza riferimenti alla conversazione (modalità con stato), l'API gestisce la cronologia della conversazione. Se la tua applicazione utilizza il contesto dell'agente dati o il contesto incorporato (modalità stateless), l'API rimane stateless per ogni chiamata.
  • Stato della sessione ADK: il framework ADK gestisce le proprie variabili di sessione, evento e stato indipendentemente dalla modalità utilizzata dall'API Conversational Analytics.

Ad esempio, quando utilizzi gli strumenti ask_data_insights o ask_data_agent all'interno dell'ADK, ogni chiamata è indipendente e senza stato a livello API, anche se l'ADK mantiene il contesto della sessione più ampio. La demo di streaming dell'ADK illustra il pattern consigliato per questa interazione: un sub-agente di dati scrive i dati della risposta analizzati nello stato temp:, che gli agenti downstream leggono nella stessa chiamata.

Passaggi successivi