15% var tre buggar, inte ett glastak
Vårt minnessystem fick 15% i ett etablerat LongMemEval-benchmark medan konkurrenterna låg på 64–71%. Siffran var verklig, men slutsatserna vi drog var helt felaktiga. Det visade sig handla om tre tysta buggar, fyra ändringar som förvärrade problemet och ett mätfel.
Tre tysta fel under huven
När ett benchmark visar dåliga resultat är den första frestelsen att byta modell eller göra arkitekturen mer komplex. När vi i stället granskade de faktiska testerna upptäckte vi:
- Tidszonförskjutning i datumfiltreringen: Minnen sparades i UTC men söktes med lokal tidsstämpel, vilket filtrerade bort sessioner från samma dygn.
- Felaktig trunkering av kontext: Ett fel i beräkningen av tokenlängd kapade de mest relevanta historiska sessionerna i stället för de äldsta.
- Strängmatchning mot förväntat format: Utvärderingsskriptet förväntade sig exakta svarsformat som vår systemprompt instruerade modellen att undvika.
När dessa tre tysta buggar åtgärdades steg resultatet direkt till över 77%, helt utan att ändra den underliggande algoritmen.