Administración del estado de los agentes de datos

Cuando compilas con la API de Conversational Analytics, la administración de estados es una consideración arquitectónica clave. Administras el estado de conversación de la API y, para las aplicaciones que usan el Kit de desarrollo de agentes (ADK), el estado de sesión del framework.

Modos de estado de la API

El método chat de la API de Conversational Analytics admite parámetros de contexto mutuamente excluyentes que determinan cómo se controlan los estados de conversación.

Usa la siguiente tabla para comparar estos modos:

Modo Estado Historial de conversación Agente Parámetro Descripción
Chatea con una referencia de conversación Con estado Administrado por la API ConversationReference Continúa una conversación con estado haciendo referencia a una conversación existente y a su agente asociado. Google Cloud Almacena y administra el historial de conversación. Solo envías el mensaje nuevo para cada turno.
Chatea con una referencia de agente de datos Sin estado Administrado por tu aplicación DataAgentContext Envía un mensaje sin estado que hace referencia a un agente de datos guardado para el contexto. Tu aplicación debe administrar y proporcionar el historial de conversación completo con cada solicitud.
Chatea con contexto intercalado Sin estado Administrado por tu aplicación No InlineContext Envía un mensaje sin estado que proporciona todo el contexto directamente en la solicitud. Este modo no usa un agente de datos guardado. Tu aplicación debe administrar y proporcionar el historial de conversación completo.

Estado de sesión de ADK

Si usas el framework de ADK para la organización, el ADK proporciona una capa de administración de estados que opera de forma independiente del estado de la API de Conversational Analytics. Comprender ambas capas es esencial para compilar sistemas multiagente que funcionen correctamente.

El ADK usa convenciones de prefijo de clave para controlar el alcance y la duración de las variables de estado. Usa la siguiente tabla para evaluar estos alcances:

Prefijo de clave Alcance Desde el principio Visible para Ejemplos
(sin prefijo) Sesión Solo la sesión actual Todos los agentes de la sesión El tema de conversación actual o los resultados de la última consulta
user: Usuario En todas las sesiones del mismo usuario Todos los agentes y las sesiones del usuario especificado Preferencias del usuario, IDs de agentes de datos guardados o configuración de idioma
app: Aplicación En todas las sesiones de todos los usuarios Todos los agentes y todos los usuarios Configuración global de la aplicación, IDs de agentes de datos compartidos o marcas de funciones
temp: Invocación Solo la invocación actual El agente actual dentro de la invocación activa Datos de respuesta intermedios, como fragmentos de transmisión o cálculos en curso

Para obtener más información sobre el estado compartido en sistemas multiagente, consulta la documentación del ADK.

Cómo interactúan el estado de la API y el estado de ADK

Cuando usas la API de Conversational Analytics con el framework de ADK, las capas de estado funcionan de forma independiente:

  • Estado de la API: Si tu aplicación usa referencias de conversación (modo con estado), la API administra el historial de conversación. Si tu aplicación usa contexto de agente de datos o contexto intercalado (modos sin estado), la API permanece sin estado para cada llamada.
  • Estado de sesión de ADK: El framework de ADK mantiene su propia sesión, eventos y variables de estado, independientemente del modo que use la API de Conversational Analytics.

Por ejemplo, cuando usas las herramientas ask_data_insights o ask_data_agent dentro del ADK, cada llamada es independiente sin estado a nivel de API, aunque el ADK mantiene el contexto de sesión más amplio. La demostración de transmisión de ADK ilustra el patrón recomendado para esta interacción: un agente secundario de datos escribe datos de respuesta analizados en el estado temp:, que los agentes descendentes leen dentro de la misma invocación.

¿Qué sigue?