Una sesión tiene bordes limpios.
Llega una petición. Se arma el contexto. Los mensajes se acumulan. Eventualmente la persona cierra la ventana, deja de escribir o comienza en otro lugar. Desde la perspectiva del sistema, algo terminó.
Desde la perspectiva de la persona, a veces casi nada terminó.
Una conversación puede seguir activa mucho después de que desaparece la interfaz. Una pregunta acompaña a alguien hasta el carro. Un pensamiento sin resolver atraviesa la cena. Algo dicho tarde en la noche cambia de significado por la mañana. El siguiente mensaje puede llegar doce horas después dentro de lo que el software considera una nueva sesión, mientras la persona lo experimenta como la siguiente frase de la misma conversación.
También ocurre lo contrario. Un chat puede seguir técnicamente abierto mientras la conversación ya terminó.
Esta diferencia parece pequeña hasta que la continuidad pasa a formar parte del producto. Entonces el límite de la sesión empieza a estorbar.
Las sesiones son infraestructura
La sesión es útil porque el software necesita contenedores.
Ayuda a decidir qué contexto enviar, dónde guardar mensajes, cuándo resumir, cómo calcular actividad, cómo agrupar trazas, cómo razonar sobre costo. Es una excelente unidad operativa.
Eso no la convierte en la unidad correcta de experiencia.
La tentación es dejar que límites técnicos se conviertan silenciosamente en supuestos de producto. Una nueva sesión se trata como un nuevo comienzo. Una sesión vieja sigue "activa" porque ningún evento explícito la cerró. Un tema anterior se retoma porque es reciente — o se ignora porque pertenece a otro hilo.
Pero la continuidad conversacional no respeta demasiado bien esas divisiones. La pregunta relevante no es simplemente si la sesión es la misma. Es si el estado de la conversación sobrevivió.
Algunas conversaciones permanecen abiertas sin mensajes
Hay conversaciones que terminan limpiamente. La pregunta fue respondida. La decisión fue tomada. Nada importante queda suspendido.
Otras se detienen sin resolverse. No de forma dramática — simplemente pierden impulso. Alguien se distrae. La conversación se vuelve demasiado grande para continuar. Una frase pega más fuerte de lo esperado. Aparece una posibilidad que no llega a explorarse. La persona dice "voy a volver a esto" sin decirlo literalmente.
Nada en el último mensaje identifica necesariamente la diferencia. Y, sin embargo, la siguiente interacción queda moldeada por ella.
Un sistema que trata ambos casos igual pierde algo importante: ausencia no siempre significa cierre. A veces el estado más relevante existe entre mensajes.
Reentrada no es retrieval
Cuando alguien vuelve, la respuesta técnica obvia es recuperar lo que ocurrió antes. Eso resuelve solo una parte del problema.
La pregunta más difícil es qué relación tiene ese material anterior con el momento presente. Un tema que importaba intensamente ayer puede haber expirado durante la noche. Un punto pequeño que quedó abierto hace tres semanas puede volverse importante de pronto. Una conversación inconclusa puede retomarse directamente en un caso y sentirse extrañamente invasiva en otro.
La reentrada exige entonces algo más que recordar lo que ocurrió. Exige interpretar la pausa.
¿Cuánto tiempo pasó? ¿El intercambio anterior parecía resuelto antes de detenerse? ¿El estado previo era exploratorio, emocional, operativo, juguetón? ¿La persona regresó al mismo hilo o simplemente a la misma interfaz? ¿El mensaje de apertura implica continuación, distancia, reversa — o ninguna relación con lo anterior?
El tiempo no solo separa sesiones. Cambia el significado de continuidad.
Una sesión tiene temperatura
Una razón por la que esto se vuelve difícil es que el estado conversacional es más local que la personalidad.
Un sistema puede conocer extremadamente bien a una persona y aun así leer mal la interacción actual. La misma persona puede llegar curiosa un día e impaciente al siguiente. Puede querer exploración a las 10 p.m. y una respuesta en tres líneas a las 8 a.m. Puede volver al mismo tema con stakes completamente distintos.
La relación de largo plazo puede permanecer estable mientras el estado local cambia rápidamente. Eso crea una tensión entre dos formas de continuidad: continuidad longitudinal — lo que se ha acumulado a través de muchos encuentros — y estado de sesión — lo que está ocurriendo aquí, ahora.
La primera sin la segunda produce familiaridad sorda al momento. La segunda sin la primera produce una respuesta genérica. Un sistema conversacional útil necesita ambas.
El resume peligroso
Hay una falla particular que solo se vuelve visible después de interacción repetida.
El sistema recuerda correctamente. Identifica un hilo inconcluso. Lo retoma con naturalidad. Y aun así el resultado se siente mal.
Nada fue incorrecto en términos factuales. El problema es que el sistema asumió que inconcluso significaba todavía vivo.
Las conversaciones humanas no funcionan así. Algunos temas pierden relevancia sin concluir. Algunos estados emocionales expiran. Algunas preguntas dejan de necesitar respuesta. A veces la pausa hizo el trabajo.
Esto significa que continuidad no puede reducirse a preservar loops abiertos. Un sistema relacional necesita cierta capacidad para dejar que las cosas decaigan sin fingir que nunca ocurrieron. Hay una diferencia entre recordar una conversación inconclusa e insistir en que permanezca inconclusa para siempre.
Estado residual
Lo que más me interesa es el estado que existe después de una conversación y antes de que comience otra.
Podemos llamarlo estado residual. No es un transcript. No es exactamente memoria. Es más bien aquello que la conversación dejó atrás.
Una nueva sospecha. Una decisión todavía no ejecutada. Una interpretación ligeramente distinta. Un tema que la persona ya no está lista para tocar. Un chiste que se volvió parte de la relación. Una corrección que debería cambiar comportamiento futuro. Una tensión que técnicamente se resolvió pero no desapareció por completo.
Gran parte de esto es difícil de representar explícitamente. Y, sin embargo, puede determinar si el próximo intercambio se siente continuo.
El sistema probablemente no necesita modelar cada estado residual de forma directa — eso se volvería absurdo muy rápido. Pero fingir que ese estado no existe crea sus propias distorsiones.
La conversación puede moverse mientras el sistema está ausente
La versión más difícil del problema es que la persona sigue cambiando entre sesiones. El sistema no.
Alguien piensa en la conversación. Habla con otra persona. Duerme. Lee algo. Cambia de opinión. Toma la decisión. Lo supera. Regresa con una relación completamente distinta hacia el mismo tema.
Desde la perspectiva del sistema, el estado anterior es el estado más reciente. Desde la perspectiva de la persona, puede estar ya obsoleto.
Eso significa que incluso una memoria perfecta tiene un punto ciego. El sistema sabe qué ocurrió antes de la pausa. No sabe automáticamente qué ocurrió dentro de la pausa. Esa incertidumbre debería importar.
La continuidad entre sesiones puede requerir incertidumbre
Los sistemas conversacionales suelen volverse más seguros a medida que acumulan contexto. Hay una intuición razonable detrás de eso: más historia debería producir mejor comprensión.
Pero los límites entre sesiones crean un lugar donde más historia puede justificar más incertidumbre, no menos. Mientras más larga la pausa, más oportunidad hubo para que la persona cambiara sin que el sistema pudiera observarlo. Una preferencia puede seguir vigente. Un conflicto puede haberse resuelto. Un plan puede haber fallado. Algo profundamente importante puede sentirse ahora trivial.
El pasado sigue siendo relevante, pero su autoridad se debilita.
Por eso continuidad no debería sentirse como vigilancia mediante transcript. Saber qué ocurrió no es lo mismo que saber qué sigue siendo verdad.
Lo que esto cambia en el diseño de producto
Si la sesión no es la conversación, varios primitives familiares de producto empiezan a verse incompletos.
"Conversación reciente" no es lo mismo que contexto activo. "Hilo inconcluso" no es lo mismo que algo que vale la pena retomar. "Nueva sesión" no implica necesariamente un comienzo limpio. "Mismo hilo" no garantiza continuidad psicológica. Y el tiempo transcurrido no es simplemente metadata — forma parte de la interpretación.
Esto sugiere que los sistemas conversacionales pueden necesitar nociones más ricas de reentrada, decaimiento, estado abierto e incertidumbre temporal. No para imitar literalmente las relaciones humanas. Sino porque el modelo más simple — mensaje, sesión, memoria — pierde demasiado una vez que la interacción se vuelve sostenida.
Lo que sigue sin resolverse
Todavía no sé cuál es la unidad correcta.
Una conversación es demasiado vaga. Una sesión es demasiado técnica. Un hilo suele ser apenas un contenedor de UI. Un tema pierde cambios de tono, stakes e intención.
Quizá no exista una sola unidad durable. Quizá continuidad sea, en parte, el problema de reconstruir un estado que evoluciona a partir de trazas imperfectas cada vez que alguien vuelve. Eso convertiría el límite entre sesiones en algo menos parecido a una pared y más parecido a un período de observación perdida.
Algo pudo haber terminado. Algo puede seguir activo. Algo pudo haber cambiado por completo. El sistema sabe que pasó tiempo.
El problema más difícil es entender qué hizo el tiempo.
