El módulo NGT Memory muestra cómo dar a un LLM memoria persistente sin base de datos vectorial

NGT Memory es un módulo de memoria open source para LLM que guarda datos del usuario entre sesiones y los incorpora a las respuestas del modelo. Por dentro combina búsqueda por coseno, un grafo asociativo, un perfil estructurado y un filtro de ruido. En las pruebas, el sistema duplicó la precisión factual y ganó 17 de 18 escenarios A/B, aunque por ahora vive en la memoria de un único proceso.

Procesado por IA desde Habr AI; editado por Hamidun News
El módulo NGT Memory muestra cómo dar a un LLM memoria persistente sin base de datos vectorial
Fuente: Habr AI. Collage: Hamidun News.
Escuchar artículo
Ficha técnica y cifras clave
ParámetroDatos
Fuente originalHabr AI ↗
Editor jefe
Dato clave #1La similitud del coseno busca hechos cercanos por significado
Dato clave #2Un grafo asociativo enlaza conceptos como «vegetariano» y «restaurantes»
Dato clave #3La consolidación jerárquica asciende los hechos más usados a la memoria a largo plazo

El proyecto open source NGT Memory ofrece una respuesta más práctica a un viejo problema de los LLM: cómo no olvidar datos importantes del usuario entre sesiones. En lugar de ampliar el contexto sin límite, el módulo guarda hechos, construye un perfil e incorpora la memoria a la respuesta del modelo.

Cómo funciona la memoria

El autor parte de una idea simple: guardar todo el historial del diálogo en la ventana de contexto solo resulta cómodo hasta el primer límite de tokens. Después llegan el recorte de mensajes antiguos, los resúmenes que pierden detalles o la conexión de una base vectorial externa con infraestructura innecesaria. NGT Memory propone otro camino: la memoria vive directamente en el proceso de Python, se levanta mediante REST API y Docker y no requiere una base de datos aparte al empezar. La idea es recuperar no toda la conversación, sino solo los hechos que el modelo necesita de verdad en la consulta actual.

  • La similitud del coseno busca hechos cercanos por significado
  • Un grafo asociativo enlaza conceptos como «vegetariano» y «restaurantes»
  • La consolidación jerárquica asciende los hechos más usados a la memoria a largo plazo
  • Un perfil estructurado separa edad, ciudad, dieta y alergias en ranuras distintas

Sobre la memoria de texto, el módulo construye además un perfil del usuario. Si la persona escribe de forma fragmentada, el sistema puede unir piezas como «yo» + «30» + «años» en un hecho con sentido y guardarlo con una confianza reducida. Si más tarde surge un conflicto, por ejemplo que la edad baje de golpe, la actualización se bloquea hasta una corrección explícita del tipo «me equivoqué». Así, la memoria no se comporta como un registro pasivo, sino como una capa de validación que intenta distinguir los datos reales del usuario del ruido aleatorio.

Resultados de las pruebas

Lo más interesante del artículo no es la arquitectura en sí, sino la verificación en escenarios prácticos. En un experimento con un asistente médico, un asistente personal y soporte técnico, el modo con memoria subió la precisión factual de 1.22 a 2.44 puntos sobre 3. En una prueba A/B más realista, la memoria ganó 17 de 18 evaluaciones, y la nota media de la respuesta fue 0.889 frente a 0.056 sin memoria. Por separado, el autor ejecutó 54 comprobaciones de casos límite y obtuvo 51 resultados correctos, es decir, cerca del 94 %.

«La respuesta a la basura también es basura».

Esta fórmula explica otra capa importante del sistema: el filtro de calidad. A la memoria no llegan mensajes cortos sin sentido, números sueltos, caracteres especiales ni siquiera las respuestas del asistente a esa basura. De lo contrario, los hechos útiles se ahogarían pronto en el ruido. Este filtro importa sobre todo en chatbots y sistemas de agentes, donde el usuario suele escribir a trozos y el propio modelo tiende a generar frases educadas pero vacías que solo ensucian los resultados de la siguiente búsqueda en la memoria.

Principales limitaciones

A pesar de los buenos resultados, NGT Memory todavía no puede considerarse una memoria universal lista para producción sin reservas. La versión actual guarda todo en la memoria RAM de un único proceso, de modo que el estado se pierde al reiniciar el contenedor. Al lanzar varios workers surge otro problema: cada uno mantiene su propio almacén de sesiones, y una solicitud de guardado puede caer en un proceso y la de recuperación en otro. En las pruebas, la memoria local es rápida, alrededor de 2–3 ms en CPU, pero la latencia principal sigue procediendo de las llamadas externas de embeddings y chat, que tardan cientos de milisegundos.

El autor describe también fallos más mundanos. Un system prompt demasiado blando hacía que el modelo viera la memoria pero la ignorara como una pista opcional. Tras endurecer la instrucción, las respuestas se volvieron más estables. Otro caso desagradable lo provocó una regex para extraer el nombre: un patrón del tipo I'm + name empezó a tomar por nombre palabras como allergic. Estos detalles muestran que la memoria para LLM depende no solo del retrieval, sino de multitud de pequeñas reglas, sin las cuales una demo se deshace rápido en un diálogo real.

Qué significa

NGT Memory muestra un cambio útil en el enfoque de las aplicaciones con LLM: a la memoria no le basta con ser «inteligente»; debe ser verificable, barata y resistente a la basura. Para quienes desarrollan bots y agentes de IA, es una buena señal de que la capa de contexto a largo plazo ya puede construirse como un módulo de ingeniería independiente y no como un conjunto de parches sueltos.

Historia

Preguntas frecuentes sobre la noticia

Cómo funciona la memoria?

El autor parte de una idea simple: guardar todo el historial del diálogo en la ventana de contexto solo resulta cómodo hasta el primer límite de tokens. Después llegan el recorte de mensajes antiguos, los resúmenes que pierden detalles o la conexión de una base vectorial externa con infraestructura innecesaria. NGT Memory propone otro camino: la memoria vive directamente en el proceso de Python, se levanta mediante REST API y Docker y no requiere una base de datos aparte al empezar. La idea es recuperar no toda la conversación, sino solo los hechos que el modelo necesita de

¿Qué se sabe sobre Resultados de las pruebas?

Lo más interesante del artículo no es la arquitectura en sí, sino la verificación en escenarios prácticos. En un experimento con un asistente médico, un asistente personal y soporte técnico, el modo con memoria subió la precisión factual de 1.22 a 2.44 puntos sobre 3. En una prueba A/B más realista, la memoria ganó 17 de 18 evaluaciones, y la nota media de la respuesta fue 0.889 frente a 0.056 sin memoria. Por separado, el autor ejecutó 54 comprobaciones de casos límite y obtuvo 51 resultados correctos, es decir, cerca del 94 %. «La respuesta a la basura también es basura».

¿Qué se sabe sobre Principales limitaciones?

A pesar de los buenos resultados, NGT Memory todavía no puede considerarse una memoria universal lista para producción sin reservas. La versión actual guarda todo en la memoria RAM de un único proceso, de modo que el estado se pierde al reiniciar el contenedor. Al lanzar varios workers surge otro problema: cada uno mantiene su propio almacén de sesiones, y una solicitud de guardado puede caer en un proceso y la de recuperación en otro. En las pruebas, la memoria local es rápida, alrededor de 2–3 ms en CPU, pero la latencia principal sigue procediendo de las llamadas externa

ZK
Zhemal Khamidun — CPO de Alpina Digital, product manager de AlpinaGPT. Crea productos de IA desde 2019. Hamidun News es un proyecto personal que creció hasta ser un agregador en producción con más de 6.000 lectores.
✦ Unified AI Workspace · Nomad

Test Frontier LLMs & Autonomous Agents in One Workspace

Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.

Try Nomad AI →Launch Nomad Agent
¿Qué te parece?
Cargando comentarios…