Cada llamada a la API es completa e independiente. Si en el turno 1 dijiste que te llamas Carlos y en el turno 3 preguntas tu nombre, el modelo solo sabrá responder si el nombre viaja otra vez dentro del prompt del turno 3.
Eso significa que la memoria no es gratis en ningún sentido: son tokens de entrada, en cada turno, para siempre.
La barra del buffer sigue creciendo en el turno 6, en el 20 y en el 200. Las otras dos no.
| Estrategia | En el turno N arrastra | Coste |
|---|---|---|
| Buffer | los N pares completos | crece linealmente, sin techo |
Ventana (k) | los últimos k pares | constante; olvida lo viejo de golpe |
| Resumen | un párrafo resumido + lo reciente | casi constante, pero una llamada extra al LLM por turno |
Las tres tienen su momento. Buffer mientras depuras, o en flujos de tres o cuatro mensajes donde la
literalidad importa. Ventana cuando la charla es larga y solo cuenta el contexto inmediato — con
k=1, un dato del turno 1 no existe en el turno 3: no es un fallo, es la definición. Resumen
cuando quieres que sobreviva el sentido general y aceptas pagar latencia por comprimirlo.
Dos maneras de dejar de suponer:
conversation = ConversationChain(llm=llm, memory=memory, verbose=True)
memory.load_memory_variables({})
verbose=True imprime el prompt real que sale hacia el modelo, historial incluido.
load_memory_variables({}) te enseña el estado sin ejecutar nada — con memoria de resumen, ahí está
literalmente el párrafo que el LLM ha escrito sobre ti. Léelo: se ve qué ha sobrevivido a la compresión.
Un detalle operativo que muerde en producción: el objeto memory guarda una conversación.
Reutilizarlo entre usuarios mezcla historiales. Una instancia por sesión.
ConversationChain,
ConversationBufferMemory, ConversationBufferWindowMemory y
ConversationSummaryMemory se marcaron como deprecadas en LangChain 0.3.1 (septiembre de 2024) y en
la v1.0 la funcionalidad legacy se movió a langchain-classic (comprobado en la documentación de
release de LangChain v1 el 2026-08-30). La guía no lo menciona: presenta ConversationChain como
«una abstracción de alto nivel» y solo la llama «clase legacy» de pasada, dentro de una tabla de
troubleshooting.
pip install?
Corre la misma conversación de tres turnos con verbose=True, primero con buffer y luego con
ventana k=1. Compara lo que se imprime: no la respuesta, el prompt. Cuenta a ojo cuánto texto
de más viaja en el tercer turno con buffer.