Benchmark · LongMemEval-M · full-haystack
77,1 % en preguntas que el motor nunca había visto.
Todo el mundo cita LongMemEval. Casi nadie corre la variante full-haystack, que pone ~480 sesiones de distracción delante de cada pregunta. La corrimos con un protocolo publicado antes de la ejecución. En 48 preguntas que el motor nunca había respondido, el juez oficial de LongMemEval da 77,1 % (37/48). En las 48 preguntas que usamos para ajustar el motor, nuestro juez estricto da 85,4 % (41/48). Modo híbrido: los embeddings y la búsqueda corren en la máquina, y un modelo en la nube, gemini-3.8-flash, escribe las respuestas. Una pregunta solo cuenta si dos pasadas separadas la aciertan las dos. El protocolo y cada respuesta.
En septiembre, una auditoría externa encontró un veredicto falso en nuestro resultado de agosto. Lo corregimos, publicamos una fe de erratas y volvimos a correr todo el benchmark. Las campañas anteriores siguen documentadas más abajo, tal como se publicaron.
Desde septiembre, un segundo benchmark está al lado. En BEAM, calificado por su propio juez oficial, sacamos un 61,7 % en el nivel 100K y un 49,2 % en el nivel 10M. El detalle.
Lo que publicamos, y lo que retenemos
LongMemEval-M, variante full-haystack: ~480 sesiones de distracción por pregunta. Dos juegos de 48 preguntas y dos jueces. Las cifras se leen una al lado de otra y nunca se encadenan como una progresión.
Preguntas nunca vistas
77,1%
37/48 en un holdout prerregistrado, juez oficial de LongMemEval
Preguntas de ajuste
85,4%
41/48 en las preguntas usadas para ajustar el motor, juez estricto
LongMemEval-S
—
La variante fácil sobre la que publica el sector. Nosotros publicamos sobre el haystack completo
Ambas cifras se recalculan desde las respuestas publicadas, con una orden. Recalcúlalas tú mismo ↗
LongMemEval-S es la variante fácil sobre la que publica el sector: 48 sesiones de ruido por pregunta en lugar de ~480. La corrimos en agosto, sobre un binario más antiguo, en una sola pasada. Las cifras de arriba siguen un protocolo publicado antes de la ejecución, con dos pasadas. La pasada de agosto no cumple ninguna de esas reglas, así que la casilla queda vacía en lugar de llevar una cifra que nadie podría reclamarnos.
El motor en el tiempo
Cada cifra, en orden, cada una con su prueba.
13 jul. 2026
64,6 %
La línea de base
Solo búsqueda, sin motor de consolidación. 31/48 con juez flexible. Esa es la línea de salida, y cada veredicto está publicado.
La campaña ↓14–23 jul. 2026
72,9 %
El motor de consolidación
El recuerdo multisesión pasa de 1/8 a 5/8. Publicado como suelo compuesto, no techo, y fijado a su DOI tal como se entregó.
La campaña ↓4 ago. 2026
−31 pts
La palanca rechazada
Dirigir la búsqueda por la personalidad degrada mediblemente el recuerdo. Así que la función más seductora del año se entregó como disfraz, no como piloto.
La historia →17 ago. 2026
72,9 %
El canal léxico, con juez estricto
Un segundo ranking, totalmente local, fusionado por rangos. 35/48 con juez estricto, tras la fe de erratas del 28 de septiembre: una auditoría externa encontró un veredicto falso, y primero habíamos publicado 77,1 %.
La historia →13 sept. 2026
49,2 %
Un segundo benchmark: BEAM
BEAM (ICLR 2026), calificado por su propio juez oficial: 61,7 % en el nivel 100K, 49,2 % en el nivel 10M. Un corpus 76 veces más grande cuesta el 20 % de la puntuación. En el paper, las baselines RAG pierden del 22 al 29 %.
La comparación →30 sept. 2026
77,1 %
La nueva ejecución, publicada antes de correr
37/48 en 48 preguntas que el motor nunca había respondido, juez oficial de LongMemEval, dos pasadas. En las 48 preguntas de ajuste, 41/48 con juez estricto.
Cada respuesta ↗La cifra de cada ficha se recalcula desde las filas publicadas, pregunta por pregunta. audítalas tú mismo ↗.
Velocidad
Lo que cuesta escribir, y recordar.
Medimos en una sola máquina, un Intel Core Ultra 7 155H, solo CPU, sin GPU, core-engine 1.2.0, el 2026-08-30. Lanzamos dos pasadas y mostramos la más lenta. Son nuestras propias mediciones, no un benchmark juzgado como las puntuaciones de arriba.
Escritura
0,10ms
p50 en la bóveda. El embedding que la precede no se cuenta
Recuperación vectorial
20ms
p50, top 10, caché caliente, canal léxico apagado, 10.200 recuerdos
Recuperación híbrida
108ms
Lo que el chat ejecuta de verdad: BM25 fusionado al ranking
La recuperación híbrida es el camino por defecto desde el 17 de agosto, y es la que sostiene las cifras de arriba. Ordena 200 candidatos de profundidad, y luego fusiona una pasada BM25 sobre las mismas filas. Eso cuesta 5,3× una recuperación solo vectorial. Ambas responden desde la caché caliente en RAM, la que sirve la aplicación. Mientras esa caché se calienta, una recuperación vectorial cae a un escaneo completo. Con este tamaño de corpus ese escaneo cuesta 145 ms, y crece con el corpus.
La cifra, campaña de julio
~480 sesiones distractoras por pregunta.
La variante honesta. La más dura.
Existe una versión más cómoda de este benchmark. Es la que la industria muestra. Nosotros corrimos la otra. Publicamos la cifra como un suelo, porque dos categorías nunca se volvieron a jugar con el motor completo, por falta de tiempo de cómputo. Otros modelos quedan también por probar.
Ninguna pregunta se eligió a posteriori. Usamos una sola configuración para todas. Un acierto solo cuenta si se reproduce.
Lo que se midió
| Medida | Antes | Después | Δ | Condiciones |
|---|---|---|---|---|
| Full-haystack, 48 q | 64,6 % | 72,9 % | +8,3 | todos los motores |
| Multisesión | 1/8 | 5/8 | +4 | la categoría más dura |
| Ruta de consulta real de la app, 61 q | 78,7 % | 83,6 % | +4,9 | topK 32 |
| Temporal (A/B inline) | 7/10 | 10/10 | +3 | reproducido ×2 |
| Recall a ~1 M vectores | — | 1.000 | — | MNEMO_ANN |
| 100 % local, cero cloud | — | ~50 % | suelo | Qwen2.5-3B · Vulkan · n=12 · máquina cargada |
La línea «100 % local» merece su precisión. Es un suelo, no un techo. Lanzamos un modelo de tres mil millones de parámetros sobre doce preguntas, en una máquina ocupada en otra cosa. Aún no tenemos la potencia para probar los grandes modelos locales de razonamiento. Así que no sabemos hasta dónde sube, y no lo pretendemos.
Las palancas que no dieron nada cuentan igual. Los registros de relaciones empeoraron la puntuación. La pasada maestra también. La pre-clasificación k-means no sirvió de nada, y el barrido de reserva solo produjo ruido. Los números primos no portan ninguna señal de memoria. Falsamos esa pista seis veces y la enterramos.
Los fallos
Lo que fallamos.
En el full-haystack, tres preguntas todavía se resisten. Aquí está cada una, descompuesta línea a línea.
×2 · estructural al benchmark
El benchmark apila varios usuarios en una sola memoria. El proyecto de un desconocido se vuelve indistinguible del tuyo en el texto servido. Verificamos que ningún filtro del lado de la respuesta puede distinguirlos. Mnemosyne OS es soberano y sirve a un solo humano, así que este modo de fallo no existe en ti. No perseguiremos esos dos puntos.
×1 · nuestra deuda, no nuestro diseño
Un techo de corpus trunca un tema demasiado denso, así que lo que escribimos y lo que releemos se desequilibran. Es un límite real de ingeniería. Tiene un ticket y se corregirá. No lo maquillamos como una elección.
No nos creas sin más
El corrector y los veredictos son públicos. Audítalos.
El corrector publicado y los veredictos por pregunta te dejan re-derivar la puntuación en un comando. No necesitas motor ni red. La metodología completa, el análisis de causas y los 16 logs en bruto están abiertos también.