Gestione dello stato per gli agenti dati

Quando crei con l'API Analisi conversazionale, la gestione dello stato è un aspetto architettonico fondamentale. 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 Analisi conversazionale supporta parametri di contesto reciprocamente esclusivi che determinano la modalità di gestione dello stato della conversazione.

Utilizza la seguente tabella per confrontare queste modalità:

Modalità Stato Cronologia conversazione Agente Parametro Descrizione
Chatta con un riferimento alla conversazione Stateful Gestita dall'API ConversationReference Continua una conversazione stateful facendo riferimento a una conversazione esistente e al relativo agente. Google Cloud Memorizza e gestisce la cronologia delle conversazioni. Invii solo il nuovo messaggio per ogni turno.
Chatta con un riferimento all'agente dati Stateless Gestita 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 delle conversazioni con ogni richiesta.
Chatta con il contesto in linea Stateless Gestita dalla tua applicazione No InlineContext Invia un messaggio stateless che fornisce tutto il contesto direttamente nella richiesta. Questa modalità non utilizza un agente dati salvato. La tua applicazione deve gestire e fornire la cronologia completa delle conversazioni.

Stato della sessione ADK

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

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

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

Per ulteriori informazioni 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 Analisi conversazionale con il framework ADK, i livelli di stato funzionano in modo indipendente:

  • Stato dell'API: se la tua applicazione utilizza riferimenti alla conversazione (modalità stateful), l'API gestisce la cronologia delle conversazioni. Se la tua applicazione utilizza il contesto dell'agente dati o il contesto in linea (modalità stateless), l'API rimane stateless per ogni chiamata.
  • Stato della sessione ADK: il framework ADK mantiene le proprie variabili di sessione, eventi e stato indipendentemente dalla modalità utilizzata dall'API Analisi conversazionale.

Ad esempio, quando utilizzi gli strumenti ask_data_insights o ask_data_agent all'interno dell'ADK, ogni chiamata è stateless in modo indipendente 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 dati scrive i dati di risposta analizzati nello stato temp:, che gli agenti downstream leggono nella stessa chiamata.

Passaggi successivi