¿Cómo se le da "memoria" a un chatbot con IA?
Cuando empecé a montar el primer chatbot con IA para un cliente, di por hecho que el modelo “recordaba” la conversación igual que recordaría una persona. No es así, y entenderlo cambia bastante cómo se diseña esto.
Un modelo de lenguaje no guarda nada entre una pregunta y la siguiente por defecto. Cada vez que le mandas un mensaje, en realidad le estás mandando otra vez toda la conversación anterior (o un resumen de ella) junto con el mensaje nuevo. Lo que llamamos “memoria” es, en la mayoría de los chatbots que usamos a diario, simplemente reenviar el historial completo cada vez que escribes algo.
Eso tiene un límite práctico: cuanto más larga es la conversación, más texto hay que reenviar, y los modelos tienen un tope de cuánto texto pueden procesar de una vez, la llamada “ventana de contexto”. Para conversaciones largas, algunas herramientas resumen lo antiguo y guardan literal solo lo reciente, para no quedarse sin espacio.
Luego está la memoria de verdad, la que persiste entre conversaciones distintas, que un asistente recuerde algo que le dijiste la semana pasada. Eso no es magia del modelo, es una base de datos aparte donde se guardan datos concretos (tu nombre, una preferencia, un dato de tu empresa) y que se le inyectan al modelo al principio de cada conversación nueva, como una chuleta.
Para un chatbot de atención al cliente, esto se traduce en una decisión de diseño muy concreta: qué datos del cliente merece la pena guardar y reinyectar (su nombre, el estado de un pedido) y cuáles no hace falta ni tiene sentido guardar de forma permanente. Guardar de más también es un riesgo de privacidad, no solo un gasto técnico innecesario.
La primera vez que un cliente nos preguntó por qué el chatbot no se acordaba de lo que le había dicho el día anterior, tuve que explicarle que la respuesta no era un fallo, era que nadie le había pedido al sistema que guardase esa información de un día para otro. Se puede hacer, pero hay que diseñarlo así a propósito.