Memoria IA comparada: mem0, Zep, Letta, Cognee, Supermemory y nosotros
Todas las comparativas de herramientas de memoria IA terminan en un ranking. Y todos los rankings que encontramos los publica la herramienta que sale primera.
Hicimos la tabla que falta: de dónde sale cada cifra publicada. Qué banco, qué variante, cuántas preguntas, qué modelo respondió, qué modelo calificó. Y si alguien puede rehacer el cálculo.
Tres cosas salen de ahí enseguida:
- Dos de las puntuaciones más altas no dicen qué variante del banco las produjo. LongMemEval existe en varios tamaños. El más duro tiene diez veces más distractores que el más fácil. Sin esa palabra, la cifra no dice nada.
- Esta tabla tiene diez filas. Tres tienen todas las casillas llenas, y son las nuestras. Compruébelo sin leer una frase: cuente los guiones.
- Nuestros archivos de resultados son públicos. Un
verify.jsrecalcula cada cifra y falla si alguna no cuadra. Ningún otro proyecto de la tabla ofrece algo así. Ir directamente allí si es la única parte que le interesa.
Una cifra más, la que ponemos por delante: nuestra búsqueda pierde un 20 % cuando el corpus se hace 76 veces mayor. En el artículo de referencia, las líneas base RAG pierden del 22 al 29 %.
Nuestro interés, declarado de entrada: hacemos Mnemosyne OS. Somos las últimas filas de ambas tablas. Todo lo relativo a los otros cinco sale de sus sitios, su documentación y sus repositorios, leídos el 13 de septiembre de 2026. Los enlaces están para comprobarlo.
Qué son de verdad estos productos
Estos seis productos no son alternativas entre sí. Cinco son piezas que un desarrollador mete en su aplicación. Uno solo es una aplicación.
| Qué es | Para quién | Dónde viven los datos | Autoalojable | Código | Estrellas | |
|---|---|---|---|---|---|---|
| mem0 | infraestructura de memoria | desarrolladores | su nube | sí | Apache-2.0 | 65,2k |
| Zep | servicio de memoria | empresa | su nube | sí, en su VPC | ver la nota | 4,9k |
| Letta | plataforma de agentes, ex-MemGPT | desarrolladores | no se indica | sí * | Apache-2.0 | 24,7k |
| Cognee | biblioteca de memoria | desarrolladores | su máquina, o BYOC | sí | Apache-2.0 | 30,7k |
| Supermemory | API de memoria, más complementos | desarrolladores | no se indica | sí | MIT | 29,7k |
| Mnemosyne OS | aplicación de escritorio | una persona | su máquina | ningún servidor que alojar | app cerrada, SDK MIT | 13 |
Cada uno se describe con sus palabras. mem0: «drop-in memory infrastructure for AI agents and apps». Zep: «agent memory, at enterprise scale». Cognee: «Open Source Memory Platform for Agents». Supermemory: «the default engine for memory and continual learning for agents». Son cuatro nombres para el mismo oficio.
«No se indica» significa que su documentación no lo dice. * Letta tiene una guía de autoalojamiento con Docker, pero ella misma avisa de que nadie mantiene esa vía.
La nota sobre Zep. Su repositorio de GitHub muestra licencia Apache-2.0 y
4,9k estrellas. Lo que contiene hoy: examples, integrations, benchmarks,
mcp, ontology, legacy. El servicio de memoria no está ahí. Su motor de
grafos abierto es otro repositorio,
Graphiti, con 30,9k estrellas. Una
licencia mostrada en un repositorio no dice nada del producto. Conviene saberlo
antes de leer cualquier columna «open source», incluida la nuestra.
La columna de estrellas. Tenemos 13. mem0 tiene 65 200. Somos los más pequeños de la tabla, de largo, y la columna se queda.
Las cifras publicadas, y sobre qué se apoyan
Esto es lo que nos hizo abandonar el ranking.
| Cifra | Banco | Variante | N | Lector | Juez | Ejecuciones | |
|---|---|---|---|---|---|---|---|
| mem0 | 92,5 % | LoCoMo | — | — | — | — | — |
| mem0 | 48,6 % | BEAM | 10M | — | — | — | — |
| Zep | 94,7 % | LoCoMo | no se indica | 1540 | gpt-5.4 | gpt-5.4 | — |
| Zep | 90,2 % | LongMemEval | no se indica | 500 | gpt-5.4 | gpt-5.4 | — |
| Letta | sin cifra | — | — | — | — | — | — |
| Cognee | sin cifra | — | — | — | — | — | — |
| Supermemory | «estado del arte» | 3 nombrados | — | — | — | — | — |
| Mnemosyne OS | 77,1 % | LongMemEval | full-haystack, preguntas nunca vistas | 48 | gemini-3.8-flash | gpt-4o (oficial) | publicadas |
| Mnemosyne OS | 61,7 % | BEAM | 100K | 400 | gemini-2.5-pro | gpt-4.1-mini ** | publicadas |
| Mnemosyne OS | 49,2 % | BEAM | 10M | 200 | gemini-2.5-pro | gpt-4.1-mini ** | publicadas |
Un guion significa que el proyecto no publica esa casilla. Letta y Cognee no dan
ninguna cifra en su página principal. Supermemory reivindica el estado del arte
en tres bancos sin dar un solo número. En Zep, el juez es el mismo gpt-5.4 que
escribió las respuestas. ** En BEAM no elegimos el juez: gpt-4.1-mini viene
con el banco.
Lea nuestra fila de BEAM con cuidado. Nuestro 49,2 % está tres filas por debajo del 48,6 % de mem0, mismo banco, mismo nivel. No lo lea como un ranking. Ellos no publican lector, ni juez, ni presupuesto de contexto. Nadie puede decir si ambas ejecuciones hicieron el mismo trabajo. Y 0,6 puntos cabe en el ruido de todos los jueces que hemos medido.
Respondemos con archivos. Las dos ejecuciones de BEAM están publicadas,
pregunta por pregunta. Un verify.js recalcula 61,7 % y 49,2 %, y se niega a
darnos la razón si las cifras no cuadran. Es lo que querríamos de mem0.
Lea primero la columna «variante». Una puntuación de LongMemEval no dice nada sin saber qué tamaño de banco la produjo. Dos de las cifras más altas no lo dicen. LoCoMo tiene el mismo problema.
Lea después cada fila entera. Una cifra de gpt-5.4 calificando a gpt-5.4
y una cifra de gemini-2.5-flash calificando a gemini-2.5-pro vienen de dos
instrumentos distintos. Sabemos cuánto cambia eso: en otro banco, las mismas 400
respuestas calificadas por dos jueces movieron 136 veredictos.
mem0 mantiene el ranking más completo de la categoría, y escribe esto en su propia página:
None of these numbers were generated using the same model stack, judge model, or retrieval configuration. […] Treat this table as a starting point for further reading, not a settled ranking.
«Ninguna de estas cifras se generó con la misma pila de modelos, el mismo juez ni la misma configuración. Trate esta tabla como un punto de partida, no como un ranking establecido.»
Tienen razón. Hoy no existe un ranking para nadie, nosotros incluidos.
Qué falla en nuestra fila
Nuestra fila es la única con todas las casillas llenas. Las casillas llenas son un hábito de publicación. No prueban nada sobre la calidad. Nuestra fila es también la muestra más pequeña de la tabla. Estas son sus cuatro debilidades.
- N = 48. La cifra de Zep se apoya en 500 preguntas. La nuestra en 48.
- Nuestra muestra es más fácil que el banco del que sale, unos 13 puntos. Lo medimos y lo publicamos junto a la cifra a la que favorece.
- El juez se contradice en unos 2,6 veredictos de cada 48. Cualquier diferencia menor de cinco preguntas es invisible para este banco. Eso incluye nuestras propias mejoras.
- 77,1 % es el juez oficial de LongMemEval, en 48 preguntas que el motor nunca había visto. El protocolo se publicó antes de la ejecución. En las 48 preguntas usadas para ajustar el motor, nuestro juez estricto da 85,4 %. Publicamos ambos y nunca los encadenamos.
La única cifra que ponemos por delante
Una puntuación de esta categoría no se compara con otra. Una degradación sí. Compara un sistema consigo mismo, y un corpus multiplicado por 76 vale 76 para todos.
BEAM es el banco de ICLR 2026, y su juez oficial calificó nuestras respuestas. Mnemosyne OS pasa de 61,7 % en el nivel 100K a 49,2 % en 10M. Es una pérdida del 20 % por 76 veces más pajar. En el mismo salto, el artículo de BEAM muestra sus líneas base RAG perdiendo del 22 al 29 %, y los modelos que leen toda la conversación del 50 al 57 %.
Ambas cifras están en la tabla, junto a la única cifra de BEAM que publica otro proyecto. Lea las dos juntas. Las entradas de BEAM son autopublicadas, y ninguna comparte lector, juez ni presupuesto de contexto. Una puntuación absoluta no ordena nada.
También medimos algo que nadie publica: el presupuesto de contexto realmente servido. Lo contamos en tokens, la unidad del banco, y lo leemos del prompt de sistema real en lugar de calcularlo desde ajustes. Cabe en el presupuesto que el método LIGHT de BEAM se concede a sí mismo. Una puntuación de memoria dice poco sin el tamaño del contexto gastado para obtenerla. Ese número falta en todas partes.
Comprobarlo sin creernos
Todo lo anterior pide creer una tabla. Esta parte le deja comprobarla.
Nuestra campaña de LongMemEval publica sus resultados pregunta por pregunta:
las dos ejecuciones estrictas, los archivos de recuperación, las 48 preguntas
nuevas, los registros extraídos automáticamente. Están en una
página pública de procedencia,
con la clave de lectura en
lexical-2026-08.
Un comando, node verify.js, recalcula cada cifra y falla ante la menor
discrepancia. Un redondeo discreto a nuestro favor se vería ahí.
Las ejecuciones de BEAM detrás de 61,7 % y 49,2 % están publicadas igual, en
beam-2026-09,
con su propio verify.js. Rehace la agregación de BEAM en lugar de aproximarla.
La puntuación es una media por conversación, luego por categoría, luego sobre las
diez. Y event_ordering se califica con una tau de Kendall, no con el 0/1 del
juez. Una media plana da otro resultado.
Las dos calificaciones de la ejecución 100K también están ahí. Así que puede recalcular usted mismo la cifra de 136 de más arriba. Comprobamos que la herramienta sabe ponerse en rojo rompiendo los datos tres veces: un veredicto invertido, una fila borrada, un fallo de infraestructura ocultado.
Hay tres límites. Repetir rehace nuestra canalización, no el banco: las preguntas y las respuestas de oro pertenecen a LongMemEval y a BEAM, ambos MIT. El motor que produjo las respuestas es cerrado, así que audita la calificación y no la búsqueda. Y el binario del núcleo detrás de las dos ejecuciones de BEAM no está sellado. Las ejecuciones más recientes registran cuál respondió. Esas dos son anteriores, y nadie puede recuperarlo hoy.
Una puntuación publicada sin sus archivos no se puede recalcular. Una puntuación con sus archivos, sí. Casi todas las puntuaciones de la categoría se publican sin ellos.
Cuál quiere usted de verdad
- Está construyendo un agente o una aplicación y quiere memoria dentro: tome mem0, Letta, Cognee o Supermemory. Hacemos una aplicación de escritorio con un SDK. Si su memoria tiene que vivir en su nube junto a su servicio, no tenemos la forma adecuada.
- Es un equipo de empresa con un VPC, una revisión de cumplimiento y un presupuesto de latencia: Zep y mem0 están hechos para esa conversación.
- Quiere un grafo inspeccionable que funcione con modelos locales: Cognee lo dice y es Apache-2.0.
- Es una sola persona que quiere su memoria en su máquina, en bóvedas visibles en el disco: eso es lo que hacemos. Usted elige cuáles puede leer un modelo. Es otro producto distinto de los cinco de arriba.
Quédese con la segunda tabla. Una puntuación sin variante, sin juez y sin número de preguntas es una puntuación que nadie puede reproducir. Eso vale también cuando nos favorece.
Más alternativas, en un sitio que no es nuestro:
Leído en los sitios, documentación y repositorios de cada proyecto el 13 de septiembre de 2026. Licencias y recuentos de estrellas desde la API de GitHub el mismo día. Las páginas cambian, así que cada afirmación está fechada y enlazada. Nada de esto juzga la calidad de estos productos. Es una constatación de lo que cada uno publica, lo único comprobable desde fuera. Las correcciones de los proyectos nombrados son bienvenidas, y se aplicarán con su fecha.