Memoria conversacional que sí funciona: ventana, resúmenes y “pinned facts”

17-12-2025

Por Cristian Suarez Vera

En aplicaciones reales que usan agentes conversacionales, mantener una conversación coherente a lo largo del tiempo es un desafío técnico importante. Desde asistentes de soporte técnico hasta sistemas de atención al cliente o interfaces educativas, los usuarios esperan que el sistema "recuerde" sus preferencias, su historial reciente y los pasos previos. Sin embargo, lograrlo de manera eficiente y segura exige más que guardar el historial plano de interacciones.

Construir experiencias conversacionales robustas y consistentes en múltiples turnos exige una estrategia de memoria híbrida que combine distintos mecanismos: ventanas, resúmenes, hechos fijados (pinned) y estado estructurado. Esta arquitectura permite que los modelos tomen mejores decisiones, respeten el contexto del usuario y mantengan la coherencia en el tiempo.

1. Limitaciones del historial plano

El enfoque de mantener solo los últimos N mensajes tiene varios problemas:

  • Rápido crecimiento en tokens y coste.
  • Riesgo de pérdida de información crítica.
  • Ausencia de estructura: el modelo debe "deducir" qué es relevante en cada turno.

Por eso, es necesario ir más allá del buffer lineal.

2. Ventana y resumen incremental

La estrategia habitual es mantener una ventana deslizante de los últimos intercambios más relevantes. Para diálogos largos, se complementa con un resumen incremental que condensa eventos pasados en forma útil para el modelo.

El resumen no debe ser estático: se actualiza con base en eventos relevantes, cambios de estado o aparición de nueva información útil.

Ejemplo práctico: Un chatbot de soporte técnico resume progresivamente los pasos ya realizados (reinicios, comandos ejecutados) para evitar repetir sugerencias.

3. Estado estructurado y pinned facts

Algunos datos deben separarse del flujo conversacional y guardarse como estado estructurado. Esto incluye:

  • Slots llenados por el usuario (ej. selectedProductId, currentLocation).
  • Preferencias, metas o restricciones explícitas.
  • Resultados de búsquedas previas o acciones confirmadas.

Estos "pinned facts" actúan como verdades persistentes, accesibles por el modelo sin necesidad de repetirlas. Pueden almacenarse como objetos estructurados, accesibles tanto desde el prompt como desde herramientas externas.

"Hechos que afectan decisiones → estado, no solo chat."

Ejemplo práctico: Un asistente de reservas puede fijar como hechos persistentes el lugar habitual de salida, el medio de transporte preferido y la duración máxima aceptable del trayecto.

4. TTL, privacidad y control de ciclo de vida

Es crítico definir políticas de caducidad (TTL) para los distintos tipos de memoria. No toda la información debe persistir indefinidamente. Algunas recomendaciones:

  • Establecer TTL por tipo de dato.
  • Encriptar PII y usar claves únicas por sesión/conversación.
  • Permitir al usuario revisar y resetear su estado.

Estas medidas aumentan la seguridad y mejoran la experiencia de usuario.

5. Evaluación y degradación controlada

La memoria no es infalible. Es necesario evaluar:

  • Precisión del resumen.
  • Exhaustividad de los slots.
  • Persistencia adecuada de los pinned facts.

Además, se debe definir un comportamiento de degradación aceptable: por ejemplo, qué hacer si parte del estado se pierde o si el resumen es ambiguo.

Ejemplo práctico: En un sistema educativo, si el resumen de avances del estudiante es incompleto, el sistema puede preguntar nuevamente qué tema desea continuar antes de hacer recomendaciones.

Diagrama de arquitectura de memoria

image

Tabla de ejemplo: clasificar datos

DatoDónde guardarTTLSensible
selectedProductIdEstado estructurado1hNo
Preferencia de idiomaHechos pinnedSesión
Últimos mensajesVentana de chatDinámicoParcial
Resumen de diálogoResumen incrementalSesiónNo

Checklist técnico

  • Límite de tokens por ventana.
  • Política de cuándo y cómo resumir.
  • Cifrado de datos sensibles.
  • Uso de claves únicas por conversación.

Preguntas frecuentes

  • ¿Cuándo se debe resumir?

    • Cuando se supera un umbral de longitud o cambia el objetivo de la conversación.
  • ¿Qué pasa si cambian las preferencias del usuario?

    • Se debe invalidar el dato anterior y actualizar el estado de forma segura.

Conclusión

Una estrategia de memoria conversacional eficaz es clave para construir sistemas inteligentes que se adapten al contexto del usuario sin comprometer la eficiencia ni la privacidad. Ventanas dinámicas, resúmenes incrementales, estado estructurado y hechos fijados son componentes complementarios que, bien implementados, permiten mantener interacciones naturales y consistentes en el tiempo.

Desde Lean Mind, trabajamos con este tipo de patrones para ayudar a nuestros clientes a construir soluciones conversacionales robustas, testeables y alineadas con los principios de desarrollo sostenible.