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 | Sì | 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 | Sì | 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
- Confronta i pattern di integrazione architettonica per determinare l'approccio migliore per la tua applicazione.
- Scopri di più sull'architettura e sui concetti chiave dell'API Analisi conversazionale.
- Scopri come autenticare e connetterti a un'origine dati.
- Scopri come creare e configurare un agente con HTTP.
- Scopri come creare e configurare un agente con Python.
- Scopri di più su come guidare il comportamento di un agente con il contesto creato.
- Scopri di più sul controllo dell'accesso con IAM per l'API Analisi conversazionale.
- Scopri come proteggere gli agenti dati e le conversazioni utilizzando CMEK.
- Scopri come eseguire il rendering delle risposte degli agenti per le origini dati di Looker.