Memoria (Conversación con el cliente) (vista previa)

[Este artículo es documentación preliminar y está sujeto a modificaciones].

La memoria permite que un agente impulsado por el Customer Conversation harness lleve el contexto aprobado de conversaciones anteriores a la siguiente, de modo que un cliente recurrente se encuentra con continuidad en lugar de empezar desde cero. El agente puede reconocer intenciones abiertas, recordar lo que se discutió y retomar desde donde terminó la última conversación.

La memoria para agentes impulsados por el entorno de Conversación con el Cliente es una capacidad distinta de la Memoria (vista previa), que se aplica a agentes alimentados por el entorno GitHub Copilot. En lugar del recuerdo libre, la memoria de Customer Conversation captura el contexto estructurado mediante un esquema definido de parámetros incorporados y personalizados, y cubre solo el contexto de conversación a corto plazo, con un periodo de retención de 30 días.

La memoria se configura una vez a nivel de agente y se aplica al agente raíz y a todos los agentes hijos que hay debajo de él. Funciona tanto en conversaciones de voz como de chat, y cuando se configura un identificador de contacto compartido, el contexto grabado en un canal está disponible en el otro.

Lo que recuerda tu agente

Tipos de contexto incorporados

Dos tipos de contexto incorporados están activos cada vez que se activa Memory. Cada uno tiene un esquema definido, así que puedes referenciar sus valores en instrucciones sin ninguna configuración adicional.

Tipo de contexto Variables Lo que captura
Perfil de cliente /customerName Detalles del cliente capturados durante las conversaciones, usados para personalizar futuras interacciones.
Historial de la conversación /pastOpenIntentList, /pastConversationSummary Detalles clave de conversaciones pasadas, como intenciones abiertas y un resumen, se trasladaron a interacciones futuras.

Parámetros personalizados

Más allá de los tipos integrados, puedes definir parámetros para los detalles de los que depende tu negocio, como un nivel de membresía, una acción de servicio solicitada o una bandera que controla el enrutamiento. Cada parámetro personalizado se define por:

  • Un nombre único.
  • Un tipo de dato de cadena de caracteres, número o booleano.
  • Una descripción en lenguaje sencillo que le indique al agente qué buscar. La descripción hace la mayor parte del trabajo, así que escríbela como una instrucción explícita en lugar de una etiqueta.
  • El conjunto de valores que se permite que el parámetro pueda tomar.

Los siguientes límites se aplican cuando creas o editas un parámetro personalizado:

Setting Requirement
Name Único en el agente. Los espacios se aceptan y eliminan automáticamente cuando el nombre se usa como variable.
Tipo de dato String, número o booleano.
Description Required. Entre 30 y 300 caracteres.
Valores permitidos Required. Hasta 10 valores, cada uno hasta 30 caracteres.
Cantidad de parámetros Hasta 5 parámetros personalizados.

Elegir cómo se actualiza un valor

Cada parámetro personalizado utiliza uno de dos modos de consolidación, que determinan cómo se fusiona un valor recién extraído con la memoria que ya tiene ese parámetro entre conversaciones. Eliges el modo al crear el parámetro.

  • Sustituye: Adecuado para valores con una única fuente de verdad actual, como un nivel de membresía o una bandera de fraude. Cada valor extraído sobrescribe al almacenado, y solo se conserva el valor más reciente. Si una conversación no produce nuevo valor, el valor almacenado anteriormente permanece en su lugar en lugar de ser eliminado.
  • Añadir: Adecuado para valores que se acumulan, como las acciones de servicio que un cliente ha solicitado. Cada extracción se añade a una lista continua como una entrada con marca de tiempo, y los valores repetidos se mantienen por separado para que la secuencia siga siendo precisa. El agente lee la entrada más reciente de un valor dado como el estado actual. Si una conversación no produce nuevo valor, la lista permanece sin cambios y las entradas se podan a medida que envejecen más allá del periodo de retención para que las listas no crezcan sin límite.

Activar o desactivar Memoria

Un solo control a nivel de agente activa o apaga la Memoria. Lo gobierna todo: generar contexto, almacenarlo, recuperarlo, resolver variables de memoria en instrucciones y mostrar el contexto a los agentes humanos. La configuración cubre el agente raíz y todos sus agentes hijos, y su cambio debe confirmarse antes de que entre en vigor.

Mientras la memoria está apagada, no se genera, almacena, recupera ni se referencia ningún contexto en ningún lugar del agente. Volver a activarlo reanuda el comportamiento normal para nuevas conversaciones; el contexto almacenado anteriormente vuelve a estar disponible solo si sigue dentro de la ventana de retención.

Instrucciones de autor con variables de memoria

Haz referencia a los parámetros integrados y personalizados directamente en las instrucciones del agente. Las referencias para los parámetros del sistema se ven como pastOpenIntentList y pastConversationSummary.

Continuidad entre canales

El contexto está asociado a un identificador específico del canal, como el número de teléfono del llamante para la voz y un identificador de sesión autenticado para el chat web. Por sí solo, eso mantiene la memoria de cada canal separada.

Configurar un identificador de contacto compartido vincula esas identidades de canal a un solo cliente, de modo que el contexto escrito durante una llamada telefónica esté disponible en el siguiente chat del cliente, y viceversa. El contexto solo se publica una vez que el cliente ha sido identificado: los canales de chat autentican primero al usuario, y la voz se basa en el número de teléfono del llamante.

Esto significa que un cliente que interactúa con tu agente en un canal puede continuar la misma conversación en otro canal, y el agente conserva el contexto relevante, incluyendo preferencias o detalles compartidos anteriormente, como un método de contacto preferido o un identificador de cuenta.

Como ocurre con todo contexto de Memory, cada agente mantiene un almacenamiento de memoria separado por usuario, por lo que el contexto y las preferencias de un cliente nunca se comparten con otro.