Administración del estado de los agentes de datos

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

Modos de estado de la API

El método chat en la API de Conversational Analytics admite parámetros de contexto mutuamente excluyentes que determinan cómo se controla el estado de la 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 conversaciones. Solo envías el mensaje nuevo en 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 guardados. Tu aplicación debe administrar y proporcionar el historial de conversaciones completo.

Estado de la sesión del ADK

Si usas el framework del ADK para la orquestació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 fundamental para crear sistemas multiagente que funcionen correctamente.

El ADK usa convenciones de prefijos de claves para controlar el alcance y la vida útil de las variables de estado. Usa la siguiente tabla para evaluar estos permisos:

Prefijo de clave Alcance Duración Visible para Ejemplos
(sin prefijo) Sesión Solo la sesión actual Todos los agentes de la sesión Tema de conversación actual o resultados de la última búsqueda
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 uso compartido del estado en sistemas multiagente, consulta la documentación del ADK.

Cómo interactúan el estado de la API y el estado del 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 conversaciones. Si tu aplicación usa contexto del agente de datos o contexto intercalado (modos sin estado), la API permanece sin estado para cada llamada.
  • Estado de la sesión del ADK: El framework del 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 y 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 posteriores leen dentro de la misma invocación.

¿Qué sigue?