Quarq Agent: 98,2 % en LongMemEval con un agente que recuerda

Quarq Agent: 98,2 % en LongMemEval con un agente que recuerda
98,2 %de aciertos en LongMemEval-S (491 de 500)
3modelos especializados en vez de uno
4fechas distintas para cada recuerdo
~2.500 $cuesta una pasada completa de la prueba
Quarq Agent: 98,2 % en LongMemEval. Así se construye un agente que de verdad recuerda
También lo cuento en este vídeo de unos once minutos, en mi canal Articulator ES.

El examen: LongMemEvalenlace

LongMemEval mide la memoria a largo plazo de los asistentes de chat. Su versión S tiene 500 preguntas, y antes de cada una el sistema lee un pajar de unas cincuenta sesiones de conversación; la respuesta está escondida en alguna de ellas. En total son unos 57 millones de tokens, unos 115.000 por pregunta.

El pajar de una pregunta: cincuenta sesiones de conversación en una rejilla: en alguna está la respuesta.
Cada pregunta esconde su respuesta en unas cincuenta sesiones.

Las preguntas son de seis tipos. Tres miran una sola sesión: algo que dijo el usuario, algo que respondió el asistente y una preferencia mencionada de pasada. Las otras tres son más difíciles: juntar datos de varias sesiones, saber cuál es la versión actual de algo que cambió y razonar con fechas («¿cuánto hace que pasó?»).

¿Y por qué no meter toda la conversación en el contexto y listo? Porque no funciona. En la tabla del artículo, GPT-4o con todo el historial delante acierta solo el 60,2 %; si le das únicamente las sesiones que contienen la respuesta (el «oráculo»), el 82,4 %. Recordar no es leerlo todo: es encontrar lo que importa.

Barras: contexto completo con GPT-4o, 60,2 %; oráculo, solo las sesiones con la respuesta, 82,4 %; Quarq Agent, 98,2 %.
Darle todo al modelo no le da memoria.

Los resultadosenlace

Quarq Agent acierta 491 de las 500 preguntas: solo falla nueve. Es el 98,2 %. Y lo consigue con la memoria en tu propio ordenador: un índice de vectores FAISS en local y una arquitectura de memoria por capas.

Por tipos, las tres categorías de una sola sesión llegan al 100 %. La de conocimiento que se actualiza, al 98,7 %, con un solo fallo. Y las dos más difíciles, varias sesiones y razonamiento temporal, se quedan en el 97 %, con cuatro fallos cada una.

Aciertos por tipo de pregunta: 100 % en las tres de una sesión, 98,7 % en conocimiento que cambia y 97,0 % en varias sesiones y en razonamiento temporal.
Los aciertos por tipo. Ojo: la escala empieza en el 90 %.

En la clasificación que publican, el segundo es Mastra (con GPT-5 mini), con el 94,87 %, y le sigue Hindsight (con Gemini 3 Pro), con el 91,4 %. Varios sistemas con GPT-4o se quedan entre el 81,6 y el 86 %. Quarq les saca 3,3 puntos.

La clasificación del artículo: Quarq Agent 98,20 %, Mastra OM 94,87 %, Mastra OM con Gemini 93,27 %, Hindsight 91,40 %, EmergenceMem 86 %, Mastra OM con GPT-4o 84,23 % y Supermemory 81,60 %.
La clasificación del artículo, con +3,3 puntos sobre el segundo.

El artículo destaca tres cosas. Primero, su generador (GPT-4.1) es menos capaz que los modelos más recientes que usan muchos rivales. Además, el razonamiento temporal es la categoría más difícil, y su protocolo ataca el fallo más común: confundir cuándo se guardó un dato con cuándo ocurrió. Y por último, todo funciona en local, mientras casi todos los demás dependen de bases de vectores en la nube.

Con cautelaenlace

Conviene tomar la comparación con cautela. Cada equipo monta su propia evaluación, con su juez y sus modelos: Quarq juzga las respuestas con GPT-5. Y en las gráficas del propio artículo, las cifras de algunos rivales no coinciden del todo con las de su tabla: Mastra sale con un 94,37 % en una y un 94,87 % en la otra, y Supermemory con un 84,6 % frente a un 81,6 %.

Las cifras de Mastra y Supermemory en las gráficas y en la tabla del artículo no coinciden.
Ellos mismos dicen que el resultado es provisional.

Ellos mismos avisan de que el resultado es provisional: puede cambiar al repetir las preguntas dudosas a medida que añaden arreglos.

La memoria en tres capasenlace

Por dentro, la memoria tiene tres capas:

  1. Semántica: hechos e historial de las interacciones, qué pasó, cuándo y quién estaba.
  2. Procedimental: reglas de comportamiento y de funcionamiento.
  3. Episódica: experiencias de las conversaciones, con su contexto.
Tres bandas: semántica, con hechos fechados; procedimental, con reglas; y episódica, con experiencias de las conversaciones.
Tres capas de memoria, cada una con su tipo de recuerdo.

Tres modelos en vez de unoenlace

La mayoría de los sistemas de memoria usan un solo modelo de lenguaje para todo: buscar, responder y gestionar la memoria. Es como un hombre orquesta, que toca todos los instrumentos a la vez y ninguno del todo bien. Quarq reparte esas tareas en tres papeles, cada uno con su modelo:

Planificador (gpt-4o-mini)

Un modelo pequeño y barato. Antes de cada búsqueda prepara una estrategia: reescribe la pregunta de varias formas parecidas, saca las palabras clave y elige un modo de búsqueda según lo compleja que sea.

Generador (gpt-4.1)

Recibe los recuerdos encontrados, las reglas procedimentales y el historial de la conversación, y se dedica únicamente a escribir la respuesta.

Aprendiz (gpt-4.1)

No vuelca texto en bruto en la memoria: hace ediciones concretas. Añade hechos nuevos, actualiza los que se han quedado viejos y borra las contradicciones, viendo lo que hay en las otras capas para no duplicar nada.

Tres tarjetas: planificador con gpt-4o-mini, generador con gpt-4.1 y aprendiz con gpt-4.1.
Tres papeles, tres modelos.
El aprendiz edita la memoria: añade «Corre los domingos», cambia «Vive en Madrid» por «Vive en Lisboa» y borra la contradicción «Odia correr».
Añadir, actualizar y borrar: ediciones concretas, no texto en bruto.

Buscar bien: HyDE y la búsqueda híbridaenlace

El planificador usa HyDE (Hypothetical Document Embeddings): en lugar de buscar con la pregunta tal cual, imagina cómo sería un documento que la respondiera y busca con eso. Es como el retrato robot de la policía: no tienes la foto del sospechoso, pero un dibujo aproximado ayuda a encontrarlo entre la gente.

La pregunta tal cual encuentra pocos recuerdos en el espacio de vectores; el documento imaginado encuentra más.
Buscar con la respuesta imaginada encuentra más que buscar con la pregunta.

Cada pasada de búsqueda combina cuatro piezas: similitud de vectores, palabras clave, filtros por metadatos y una validación temporal. Parecerse en el significado no basta: el recuerdo también tiene que contener lo que importa y encajar en el tiempo.

Dos recuerdos pasan por las cuatro piezas: uno parecido pero sin las palabras clave y de otra época queda fuera; el que encaja en todo, pasa.
Parecerse no basta.

Y hay dos modos. El preciso usa un umbral de similitud de 0,38, para datos puntuales. El profundo lo baja a 0,28, para recordar con más contexto. Es la diferencia entre pescar con caña y echar la red.

Dos espacios de vectores: el modo preciso, umbral 0,38, con un círculo pequeño y pocos recuerdos; el profundo, umbral 0,28, con un círculo grande y muchos más.
Un umbral más bajo deja entrar más recuerdos.

Una búsqueda que se corrige solaenlace

¿Y si lo que encuentra no basta? Cuando la primera búsqueda no da pruebas suficientes para responder con seguridad, el generador puede pedir otra. El sistema lanza entonces búsquedas nuevas con el umbral profundo, junta lo nuevo con lo que ya tenía y vuelve a escribir la respuesta con reglas más estrictas contra las alucinaciones.

El generador ve que las pruebas son insuficientes, pide otra búsqueda con el umbral profundo, junta los recuerdos nuevos y reescribe la respuesta con reglas anti-alucinación.
Dos pasadas: el modelo pide mejores pruebas en vez de inventar.

La idea de fondo es sencilla: el modelo puede pedir mejores pruebas en lugar de inventarse lo que le falta.

El protocolo de la verdad temporalenlace

Razonar con el tiempo es uno de los problemas más difíciles de la memoria a largo plazo. Quarq separa cuatro fechas: la de almacenamiento (cuándo se guardó el recuerdo), la del evento (cuándo pasó de verdad), la narrativa (la línea temporal simulada de la prueba) y las relativas, como «la semana pasada», que se resuelven al buscar.

Una línea temporal con el evento el 3 de febrero, el almacenamiento el 24 de abril, la línea narrativa de la prueba y «la semana pasada» resuelta desde hoy.
Cuatro fechas distintas para un mismo recuerdo.

Piénsalo como una foto antigua que hoy guardas en una caja nueva: la caja dice 2026, pero la foto es de tu infancia. Si te preguntan cuánto hace de aquel verano, la respuesta no puede salir de la etiqueta de la caja. Por eso las reglas están grabadas en el código: las marcas de tiempo entre corchetes no son la fecha del evento; no se deduce una fecha de los recuerdos vecinos; no se supone que dos recuerdos sin relación hablan de lo mismo; y el «hace cuánto» se calcula siempre desde el evento real.

Las cuatro reglas del protocolo temporal en un archivo: tres «nunca» y un «siempre».
Reglas grabadas en el código, sin excepciones.

Fidelidad con los númerosenlace

Con los números pasa algo parecido: las pruebas de memoria castigan las cuentas descuidadas. Para totales, duraciones, precios, cantidades y recuentos, Quarq identifica cuatro cosas: quién actúa, qué acción se mide, sobre qué evento u objeto y cuánta exactitud hace falta. Y descarta los números que solo están cerca o tratan del mismo tema: suma únicamente los que cumplen todas las condiciones.

Un ejemplo mío: si preguntas cuánto gastaste en libros, no cuenta lo que gastó tu hermano, ni lo que pagaste por la estantería.

¿Cuánto gasté en libros? Se suman la novela, el libro de cocina y la guía de viaje (57 €); el cómic de tu hermano y la estantería quedan fuera.
Solo suma lo que encaja.

Aprender sin hacerte esperarenlace

Para que no notes retrasos, el agente aprende en segundo plano, después de cada respuesta, con tres salvaguardas: como mucho cuatro tareas de aprendizaje a la vez, reintentos persistentes que esperan cada vez más entre uno y otro, y barreras de sincronización durante la evaluación.

La conversación sigue sin esperas mientras el aprendizaje corre en segundo plano, con sus tres salvaguardas: máximo cuatro a la vez, reintentos de 1, 2, 4 y 8 segundos y barreras de sincronización.
El aprendizaje va por detrás.

Y así se evalúa: se borra toda la memoria; se le pasan las sesiones del pajar en trozos de ocho mensajes, con el aprendizaje activado; se espera a que termine lo pendiente; se hace la pregunta con el aprendizaje desactivado, y GPT-5 decide si la respuesta es correcta o no.

Los cinco pasos de la evaluación: borrar la memoria, el pajar en trozos de 8, esperar lo pendiente, la pregunta sin aprender y el juez.
Cinco pasos por pregunta.

Cada pieza, de un falloenlace

La primera versión de Quarq usaba archivos de texto planos, que se cargaban enteros en el contexto en cada petición. Funcionaba mal, pero les enseñó algo: un solo modelo no puede optimizar a la vez la calidad de la búsqueda, la de la respuesta y el coste. De ahí salieron cuatro versiones: la 0.1, con archivos planos y un solo modelo; la 0.2, con búsqueda por vectores y una memoria mejor organizada; la 0.3, con los tres modelos, el editor de memoria y el protocolo temporal; y la 0.4, con la búsqueda que se corrige sola, ya en código abierto y lista para producción.

Cuatro versiones en una línea temporal: v0.1.0, v0.2.0, v0.3.0 y v0.4.0, la que sale en código abierto con licencia Apache 2.0.
De archivos planos a la búsqueda que se corrige sola.

Y cada pieza nació de un fallo concreto. HyDE, de ver que buscar con un solo vector se dejaba recuerdos importantes. El protocolo temporal, de alucinaciones como responder «hace tres semanas» cuando la respuesta era «ayer». Y la segunda pasada, de modelos que se inventaban respuestas con total seguridad en vez de admitir que les faltaba contexto.

Tres filas fallo → pieza: un solo vector se deja recuerdos → HyDE; «hace 3 semanas» y era «ayer» → protocolo temporal; inventar con total seguridad → segunda pasada.
Cada pieza nació de un fallo.

Pruébalo túenlace

Junto al agente han liberado el programa con el que pasaron la prueba, quarqlabs/benchmarks. Va separado: habla con el agente por HTTP, como cualquier cliente, en lugar de importar su código, así que es más fácil reproducir la evaluación y revisarla por tu cuenta. Incluye el conjunto de datos limpio, evaluaciones que se retoman donde se quedaron, un registro del contexto recuperado, memoria aislada para cada pregunta, ejecución en paralelo y una guía de costes. La meta: resultados reproducibles, en lugar de cifras opacas en una clasificación.

Para probarlo, estos son los comandos del artículo:

git clone https://github.com/quarqlabs/agent-oss
cd agent-oss
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
# .env: OPENAI_API_KEY=sk-...  USER_ID=local_user  AGENT_ID=my_agent
python agent.py                      # el agente en la terminal
uvicorn main:app --reload            # o como servidor
curl -X POST http://127.0.0.1:8000/api/chat \
  -H "Content-Type: application/json" \
  -d '{"prompt": "What do you remember about me?"}'
python run_dataset_evals.py          # la evaluación completa
EVAL_WORKERS=4 python run_dataset_evals_parallel.py   # en paralelo
Una terminal con los comandos para clonar el repositorio, lanzar el agente y el servidor, preguntarle qué recuerda y repetir la evaluación.
Los comandos del artículo.

Un aviso si lo vas a buscar: el repositorio se llama hoy quarqlabs/argus («Argus Agent»). Su documentación advierte de que una pasada completa de LongMemEval-S ha costado unos 2.500 dólares, unos cinco por pregunta, así que mejor empezar con unas pocas. Todo está publicado con licencia Apache 2.0.

En resumenenlace

Quarq Agent llega al 98,2 % en LongMemEval con una arquitectura sencilla a propósito: tres modelos especializados, búsqueda híbrida en local, reglas estrictas para fechas y números, y una segunda búsqueda cuando le faltan pruebas.

En una frase

Recordar no es leerlo todo: es encontrar lo que importa, saber cuándo pasó y pedir más pruebas antes que inventar.

¿Qué te gustaría que recordara tu agente?

Fuentesenlace

Seguir leyendo

Últimos posts -->

¿Has visto estos proyectos?

Gymnasia

Gymnasia Gymnasia
Expo
React Native
TypeScript
OpenAI
Anthropic

App de fitness con dos agentes que se ejecutan íntegramente en el dispositivo, sin backend, de forma que los datos del usuario nunca salen del móvil. Un coach conversacional BYOK con tools locales y system prompt remoto con fallback offline, y un estimador de comidas que saca los macronutrientes de una foto del plato, con lectura de códigos de barras contra OpenFoodFacts.

LangGraph Deep Researcher

LangGraph Deep Researcher LangGraph Deep Researcher
Python
LangGraph
FastAPI
React
TypeScript
Docker

Sistema multiagente de investigación construido con LangGraph. Un supervisor descompone tu pregunta en temas y lanza subagentes de búsqueda en paralelo; cada uno comprime sus hallazgos antes de pasarlos a un agente redactor que escribe el informe final en markdown con sus fuentes. Streaming en vivo por WebSockets, modelo configurable por rol y claves de API propias que nunca se guardan en el servidor.

Tau

Tau Tau
Python
LangChain

Sistema multiagente de tutoría para estudiantes de secundaria, con un agente por asignatura y material de curso elaborado y validado por un equipo de profesores. Llegó a usarse con alumnos reales en un colegio privado en España y en un instituto en Colombia.

Ver todos los proyectos -->
>_ Disponible para proyectos

¿Tienes un proyecto con IA?

Hablemos.

maximofn@gmail.com

Especialista en Machine Learning e Inteligencia Artificial. Desarrollo soluciones con IA generativa, agentes inteligentes y modelos personalizados.

¿Quieres ver alguna charla?

Últimas charlas -->

¿Quieres mejorar con estos tips?

Últimos tips -->

Usa esto en local

Los espacios de Hugging Face nos permite ejecutar modelos con demos muy sencillas, pero ¿qué pasa si la demo se rompe? O si el usuario la elimina? Por ello he creado contenedores docker con algunos espacios interesantes, para poder usarlos de manera local, pase lo que pase. De hecho, es posible que si pinchas en alún botón de ver proyecto te lleve a un espacio que no funciona.

Flow edit

Flow edit Flow edit

Edita imágenes con este modelo de Flow. Basándose en SD3 o FLUX puedes editar cualquier imagen y generar nuevas

FLUX.1-RealismLora

FLUX.1-RealismLora FLUX.1-RealismLora
Ver todos los contenedores -->
>_ Disponible para proyectos

¿Tienes un proyecto con IA?

Hablemos.

maximofn@gmail.com

Especialista en Machine Learning e Inteligencia Artificial. Desarrollo soluciones con IA generativa, agentes inteligentes y modelos personalizados.

¿Quieres entrenar tu modelo con estos datasets?

short-jokes-dataset

HuggingFace

Dataset de chistes en inglés

Uso: Fine-tuning de modelos de generación de texto humorístico

231K filas 2 columnas 45 MB
Ver en HuggingFace →

opus100

HuggingFace

Dataset con traducciones de inglés a español

Uso: Entrenamiento de modelos de traducción inglés-español

1M filas 2 columnas 210 MB
Ver en HuggingFace →

netflix_titles

HuggingFace

Dataset con películas y series de Netflix

Uso: Análisis de catálogo de Netflix y sistemas de recomendación

8.8K filas 12 columnas 3.5 MB
Ver en HuggingFace →
Ver más datasets -->