Blog de Metlivi

Cómo hacer que un chat de personajes recuerde una corrección del usuario entre sesiones

Cuando un usuario corrige los detalles de un personaje de ficción, el chat debe guardar la versión corregida con su alcance, reemplazar cualquier versión anterior que entre en conflicto y hacer que la nota guardada sea visible y editable. También debe distinguir entre las preferencias duraderas del usuario y los hechos que solo se aplican dentro de una escena concreta de la historia. Antes de usar un detalle recordado más adelante, el sistema debe comprobar que sea relevante y esté vigente; si la evidencia no es clara, debe preguntar en lugar de inventar un pasado compartido. Esta guía se centra en esa tarea de persistencia y resolución de conflictos, no en cómo responder a un malentendido en el momento.

27 de septiembre de 20268 min de lecturaLectura, arte y culturaPor Metlivi Editorial Team
Sección 1

¿Qué debería recordar un chat de personajes?

Considera un ejemplo ilustrativo: un usuario dice: «Los ojos de Mira son verdes, no azules». La corrección podría referirse a un detalle permanente del personaje, a una versión temporal de Mira en un juego de rol específico o simplemente a la preferencia del usuario sobre cómo se describe a Mira. Una memoria que solo almacena «ojos: verdes» pierde el contexto que hace útil ese dato.

Un registro de memoria práctico debe capturar al menos el sujeto, el detalle corregido, el alcance y si el usuario tenía la intención de que perdurara. Por ejemplo:

Esta estructura es una recomendación de diseño de producto, no un formato prescrito por los estudios. Su propósito es evitar que un detalle local de una escena se convierta silenciosamente en un hecho global. Una corrección específica de la escena podría registrarse en su lugar como: «En la escena del baile de invierno, Mira lleva una capa verde». Esa nota no debería sobrescribir su atuendo o apariencia general.

Sujeto: Mira, el personaje de ficción
Detalle: Ojos verdes
Alcance: Descripción general del personaje de Mira
Estado: Actual; reemplaza la nota anterior de «ojos azules»
Fuente: Corrección del usuario
Sección 2

¿Cómo debería reemplazar una corrección a un recuerdo anterior?

Trata una corrección clara como una actualización del dato relevante, no como un dato adicional que deje ambas versiones activas. Si el sistema conserva «Mira tiene ojos azules» y añade «Mira tiene ojos verdes», la recuperación posterior puede mostrar cualquiera de los dos. El registro actualizado debe marcar el valor antiguo como sustituido o retirarlo del uso activo, conservando al mismo tiempo suficiente historial para explicar el cambio si el producto ofrece un registro de memoria.

La distinción es importante porque la información puede cambiar con el tiempo. En *[Keep Me Updated! Memory Management in Long-term Conversations](https://aclanthology.org/2022.findings-emnlp.276/)*, Bae y sus colegas presentan una tarea y un conjunto de datos para rastrear información actualizada sobre los usuarios a lo largo de múltiples sesiones de conversación. Representan los recuerdos como descripciones de texto y proponen eliminar de forma selectiva la información invalidada o redundante. Sus experimentos comparan este enfoque con líneas de base que dejan inalterados los recuerdos almacenados. El estudio concierne a la memoria conversacional a largo plazo; no prueba de forma específica chats de personajes de ficción ni establece un diseño universal de memoria.

Para un chat de personajes, aplica la misma lógica general de actualización con cuidado: una corrección directa del tipo «azules no, verdes» es una prueba contundente de que el valor anterior es incorrecto dentro del alcance establecido. El detalle de una nueva escena no es automáticamente prueba de que un hecho duradero del personaje haya cambiado. Cuando falte el alcance y la diferencia sea relevante más adelante, haz una breve pregunta de seguimiento como: «¿Debería recordar los ojos verdes para Mira en todas las historias, o solo en esta versión?»

Sección 3

¿Cómo puede el sistema separar las preferencias del usuario de los hechos de la historia?

Almacena las preferencias y los hechos del mundo de ficción en categorías diferenciadas. Una preferencia podría ser: «El usuario prefiere que los diálogos de Mira sean concisos». Un hecho de la historia podría ser: «En esta escena, Mira acaba de llegar a la estación». Responden a preguntas distintas: la preferencia guía cómo responde el chat, mientras que el hecho de la historia ayuda a mantener la continuidad dentro de una narrativa.

Añade alcance a ambos. Una preferencia puede aplicarse a todos los chats, a un solo personaje o únicamente al juego de rol actual. Un hecho de la historia puede aplicarse a una escena, a un arco argumental o al perfil general del personaje. No infieras una preferencia amplia a partir de una única corrección. Si un usuario dice «Los ojos de Mira son verdes», eso no significa por sí solo que quiera que todos los personajes tengan ojos verdes, ni que el detalle se aplique a cada versión alternativa de Mira.

Una secuencia de decisiones sencilla resulta útil:

Estos pasos constituyen una propuesta de flujo de trabajo derivada del problema de mantener actualizada la información conversacional. No representan la afirmación de que un producto de chat específico los siga.

Identifica a qué se refiere la corrección: a la preferencia del usuario, a un rasgo del personaje o al estado de la escena actual.
Conserva el alcance indicado por el usuario, incluidos límites como «en esta historia» o «a partir de ahora».
Si no hay un alcance definido, utiliza únicamente la interpretación más restrictiva posible o pregunta antes de guardar un recuerdo entre sesiones.
Comprueba si existe un recuerdo anterior sobre el mismo sujeto y alcance. Sustitúyelo solo cuando la nueva afirmación realmente entre en conflicto.
Mantén intactos los recuerdos no relacionados. Cambiar el color de ojos de Mira no debería alterar su edad, sus relaciones ni el estilo de redacción preferido por el usuario.
Sección 4

¿Cómo debería gestionar los recuerdos contradictorios?

Resuelve los conflictos comparando sujeto, alcance y tiempo, no favoreciendo a ciegas la frase que resulte más fácil de recuperar. Por lo general, una corrección posterior y clara del usuario debe tener prioridad sobre una versión anterior del mismo hecho dentro del mismo alcance. Un detalle de un juego de rol diferente no debe anular el actual. Si el sistema no puede determinar si dos registros se refieren a la misma versión de un personaje, debe mantenerlos separados o preguntar.

Por ejemplo, supongamos que un recuerdo anterior dice: «Mira tiene ojos azules», mientras que un mensaje posterior dice: «Para esta historia de universo alternativo, Mira tiene ojos verdes». La última afirmación actualiza la apariencia de Mira para esa historia, pero no cambia necesariamente el perfil del personaje por defecto. Si el usuario dice: «En realidad, haz que el verde sea su color de ojos a partir de ahora», el alcance es más amplio y el registro predeterminado se puede actualizar. No fusiones en silencio versiones contradictorias pretendiendo que el usuario siempre ha descrito a Mira de la misma manera.

Los sistemas de memoria también necesitan una forma de gestionar la incertidumbre. Si dos registros tienen fechas o alcances poco claros, marca el conflicto como no resuelto en lugar de presentar cualquiera de los detalles con seguridad. Es preferible hacer una pregunta corta antes que mostrar un recuerdo expresado con confianza pero sin sustento.

Sección 5

¿Cómo pueden los usuarios ver y controlar lo que se ha recordado?

Tras guardar una corrección, confirma el cambio específico: «Entendido: recordaré a Mira con ojos verdes en su perfil general de personaje, reemplazando el detalle anterior de ojos azules». Si el sistema está guardando un dato más restringido, indícalo: «Mantendré la capa verde como un detalle para esta escena». Esa confirmación le da al usuario la oportunidad de detectar de inmediato un error en el alcance.

Una vista de la memoria debe mostrar en un lenguaje claro el texto guardado y su alcance, junto con una opción para editarlo o eliminarlo. Si el producto puede mostrar entradas sustituidas, debe etiquetarlas como desactualizadas en lugar de presentarlas con la misma vigencia. Esto facilita que los usuarios comprendan por qué un chat de personajes saca a relucir un detalle y puedan corregir el registro sin necesidad de repetir toda la historia.

Evita insinuar que un recuerdo existe cuando no se ha guardado, o afirmar que el personaje recuerda un intercambio pasado que el sistema no puede verificar. Un personaje puede hablar de forma natural sin que la interfaz o la respuesta dejen de ser honestas sobre la información que está almacenada.

Sección 6

¿Cómo se debe evaluar la recuperación posterior?

Evalúa la persistencia a través de las sesiones, no solo en la misma conversación en la que se realizó la corrección. El [estudio de comprensión situacional de Yang y Ettinger](https://aclanthology.org/2023.emnlp-main.394/) evalúa ChatGPT utilizando un entorno sintético diseñado para comprobar si rastrea e informa sobre los cambios en los estados del entorno. Los autores reportan errores al retener estados a lo largo del tiempo y analizan la memoria en contexto no persistente y la propensión a actualizaciones alucinadas como factores determinantes en su entorno de prueba. Este fue un estudio controlado de ChatGPT en dicho entorno, publicado en 2023; no constituye una prueba sobre todos los modelos, productos o sistemas de personajes de ficción actuales.

Una prueba orientada para un chat de personajes puede utilizar un conjunto reducido de conversaciones estructuradas:

Puntúa cada prueba en función del alcance previsto: recuperación correcta, reemplazo adecuado de la información antigua, separación de los hechos de la escena y los generales, y una gestión honesta de la incertidumbre. Incluye casos en los que la respuesta esperada sea pedir una aclaración. Un sistema que de forma fiable opta por no adivinar cuando sus notas almacenadas son ambiguas está gestionando ese caso mejor que uno que inventa una continuidad.

Establece un hecho por defecto del personaje, corrígelo, finaliza la sesión y pregunta sobre él en una nueva sesión.
Guarda un detalle exclusivo de la escena y comprueba que no se convierta en un rasgo permanente del personaje.
Cambia una preferencia y confirma que la preferencia anterior ya no oriente las respuestas posteriores dentro del alcance establecido.
Introduce una segunda versión del mismo personaje y comprueba que ambas versiones se mantengan diferenciadas.
Pregunta sobre un detalle no relacionado y verifica que la corrección no haya alterado otros recuerdos.
Pregunta qué dijo el usuario anteriormente y verifica que el sistema no invente una conversación previa para justificar su respuesta.
Sección 7

Una ruta fiable desde la corrección hasta la recuperación

Una corrección debe avanzar por un camino claro: identificar su sujeto, conservar su alcance, actualizar cualquier recuerdo en conflicto, mostrar el cambio guardado y verificar que las respuestas posteriores lo recuperen sin convertirlo en una historia sin fundamento. Dicha secuencia ofrece a un chat de personajes una forma práctica de mantener la coherencia a lo largo de los turnos y sesiones, dejando al mismo tiempo el control del mundo de ficción en manos del usuario. Las investigaciones respaldan la importancia de tomarse en serio las actualizaciones de memoria y el seguimiento de estados; el flujo de trabajo específico presentado aquí es una recomendación de diseño, y su comportamiento debe comprobarse en el producto en el que vaya a utilizarse.

Lecturas relacionadas

Sigue explorando este tema