Mémoire IA comparée : mem0, Zep, Letta, Cognee, Supermemory, nous
Toutes les comparaisons d’outils de mémoire IA finissent par un classement. Et tous les classements que nous avons trouvés sont publiés par l’outil qui arrive premier.
Nous avons fait le tableau qui manque : d’où vient chaque chiffre publié. Quel banc, quelle variante, combien de questions, quel modèle a répondu, quel modèle a noté. Et si quelqu’un peut refaire le calcul.
Trois choses en sortent tout de suite :
- Deux des scores les plus élevés ne disent pas quelle variante du banc les a produits. LongMemEval existe en plusieurs tailles. La plus dure a dix fois plus de distracteurs que la plus facile. Sans ce mot, le chiffre ne veut rien dire.
- Ce tableau a dix lignes. Trois ont toutes leurs cases remplies, et ce sont les nôtres. Vérifiez-le sans lire une phrase : comptez les tirets.
- Nos fichiers de résultats sont publics. Un
verify.jsrecalcule chaque chiffre et échoue si l’un d’eux ne tombe pas juste. Personne d’autre dans le tableau n’en propose. Aller directement là si c’est la seule partie qui vous intéresse.
Un dernier chiffre, celui que nous mettons en avant : notre recherche perd 20 % quand le corpus devient 76 fois plus gros. Dans le papier de référence, les lignes de base RAG en perdent 22 à 29 %.
Notre intérêt, annoncé d’emblée : nous faisons Mnemosyne OS. Nous sommes les dernières lignes des deux tableaux. Tout ce qui concerne les cinq autres vient de leurs sites, de leurs docs et de leurs dépôts, lus le 13 septembre 2026. Les liens sont là pour vérifier.
Ce que sont vraiment ces produits
Ces six produits ne sont pas des alternatives les uns des autres. Cinq sont des briques qu’un développeur met dans son application. Un seul est une application.
| Ce que c’est | Pour qui | Les données vivent | Auto-hébergeable | Code | Étoiles | |
|---|---|---|---|---|---|---|
| mem0 | infrastructure mémoire | développeurs | leur cloud | oui | Apache-2.0 | 65,2k |
| Zep | service mémoire | entreprise | leur cloud | oui, dans votre VPC | voir la note | 4,9k |
| Letta | plateforme d’agents, ex-MemGPT | développeurs | non précisé | oui * | Apache-2.0 | 24,7k |
| Cognee | bibliothèque mémoire | développeurs | votre machine, ou BYOC | oui | Apache-2.0 | 30,7k |
| Supermemory | API mémoire, plus des greffons | développeurs | non précisé | oui | MIT | 29,7k |
| Mnemosyne OS | application de bureau | une personne | votre machine | aucun serveur à héberger | app fermée, SDK MIT | 13 |
Chacun se décrit avec ses mots. 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 ». Ce sont quatre noms pour le même métier.
« Non précisé » veut dire que leurs docs ne le disent pas. * Letta a un guide d’auto-hébergement Docker, mais il indique lui-même que personne ne maintient cette voie.
La note sur Zep. Son dépôt GitHub affiche une licence Apache-2.0 et 4,9k
étoiles. Ce qu’il contient aujourd’hui : examples, integrations,
benchmarks, mcp, ontology, legacy. Le service mémoire n’y est pas. Leur
moteur de graphe ouvert est un autre dépôt,
Graphiti, 30,9k étoiles. Une licence
affichée sur un dépôt ne dit rien du produit. Gardez-le en tête avant de lire
n’importe quelle colonne « open source », y compris la nôtre.
La colonne des étoiles. Nous en avons 13. mem0 en a 65 200. Nous sommes les plus petits du tableau, très largement, et la colonne reste.
Les chiffres publiés, et sur quoi ils reposent
Voici ce qui nous a fait abandonner le classement.
| Chiffre | Banc | Variante | N | Répondeur | Juge | Passes | |
|---|---|---|---|---|---|---|---|
| mem0 | 92,5 % | LoCoMo | — | — | — | — | — |
| mem0 | 48,6 % | BEAM | 10M | — | — | — | — |
| Zep | 94,7 % | LoCoMo | non précisée | 1 540 | gpt-5.4 | gpt-5.4 | — |
| Zep | 90,2 % | LongMemEval | non précisée | 500 | gpt-5.4 | gpt-5.4 | — |
| Letta | aucun chiffre | — | — | — | — | — | — |
| Cognee | aucun chiffre | — | — | — | — | — | — |
| Supermemory | « état de l’art » | 3 nommés | — | — | — | — | — |
| Mnemosyne OS | 77,1 % | LongMemEval | full-haystack, questions jamais vues | 48 | gemini-3.8-flash | gpt-4o (officiel) | publiées |
| Mnemosyne OS | 61,7 % | BEAM | 100K | 400 | gemini-2.5-pro | gpt-4.1-mini ** | publiées |
| Mnemosyne OS | 49,2 % | BEAM | 10M | 200 | gemini-2.5-pro | gpt-4.1-mini ** | publiées |
Un tiret veut dire que le projet ne publie pas cette case. Letta et Cognee ne
donnent aucun chiffre sur leur page d’accueil. Supermemory revendique l’état de
l’art sur trois bancs sans donner un seul nombre. Chez Zep, le juge est le même
gpt-5.4 qui a écrit les réponses. ** Sur BEAM nous n’avons pas choisi le
juge : gpt-4.1-mini vient avec le banc.
Lisez notre ligne BEAM avec attention. Notre 49,2 % est trois lignes sous le 48,6 % de mem0, même banc, même palier. Ne le lisez pas comme un classement. Ils ne publient ni répondeur, ni juge, ni budget de contexte. Personne ne peut donc dire si les deux passes ont fait le même travail. Et 0,6 point tient dans le bruit de tous les juges que nous avons mesurés.
Nous répondons avec des fichiers. Les deux passes BEAM sont publiées,
question par question. Un verify.js recalcule 61,7 % et 49,2 %, et refuse de
nous donner raison si les chiffres ne tombent pas juste. C’est ce que nous
voudrions de mem0.
Lisez la colonne « variante » en premier. Un score LongMemEval ne veut rien dire sans savoir quelle taille de banc l’a produit. Deux des chiffres les plus élevés ne le disent pas. LoCoMo a le même problème.
Lisez ensuite chaque ligne en entier. Un chiffre produit par gpt-5.4 qui note
du gpt-5.4 et un chiffre produit par gemini-2.5-flash qui note du
gemini-2.5-pro viennent de deux instruments différents. Nous savons ce que ça
change : sur un autre banc, les mêmes 400 réponses notées par deux juges ont
déplacé 136 verdicts.
mem0 tient le classement le plus complet de la catégorie, et écrit ceci sur sa propre page :
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.
« Aucun de ces chiffres n’a été produit avec la même pile de modèles, le même juge ou la même configuration. Traitez ce tableau comme un point de départ, pas comme un classement établi. »
Ils ont raison. Un classement n’existe donc pour personne aujourd’hui, nous compris.
Ce qui cloche dans notre ligne
Notre ligne est la seule dont toutes les cases sont remplies. Des cases remplies sont une habitude de publication. Elles ne prouvent rien sur la qualité. Notre ligne est aussi le plus petit échantillon du tableau. Voici ses quatre faiblesses.
- N = 48. Le chiffre de Zep repose sur 500 questions. Le nôtre sur 48.
- Notre échantillon est plus facile que le banc dont il sort, d’environ 13 points. Nous l’avons mesuré et publié à côté du chiffre qu’il arrange.
- Le juge se contredit sur environ 2,6 verdicts sur 48. Tout écart de moins de cinq questions est donc invisible pour ce banc. Nos propres progrès compris.
- 77,1 %, c’est le juge officiel de LongMemEval, sur 48 questions que le moteur n’avait jamais vues. Le protocole a été publié avant le run. Sur les 48 questions qui ont servi à régler le moteur, notre juge strict donne 85,4 %. Nous publions les deux et ne les enchaînons jamais.
Le seul chiffre que nous mettons en avant
Un score de cette catégorie ne se compare pas à un autre. Une dégradation, oui. Elle compare un système à lui-même, et un corpus multiplié par 76 vaut 76 pour tout le monde.
BEAM est le banc ICLR 2026, et son juge officiel a noté nos réponses. Mnemosyne OS passe de 61,7 % au palier 100K à 49,2 % au 10M. C’est une perte de 20 % pour 76 fois plus de foin. Sur le même saut, le papier de BEAM montre ses lignes de base RAG perdre 22 à 29 %, et les modèles qui lisent toute la conversation 50 à 57 %.
Les deux chiffres sont dans le tableau, à côté du seul chiffre BEAM qu’un autre projet publie. Lisez les deux ensemble. Les entrées BEAM sont auto-publiées, et aucune ne partage répondeur, juge ou budget de contexte. Un score absolu ne classe donc rien.
Nous avons aussi mesuré une chose que personne ne publie : le budget de contexte réellement servi. Nous le comptons en jetons, l’unité du banc, et nous le lisons sur la vraie invite système au lieu de le calculer depuis des réglages. Il tient dans le budget que la méthode LIGHT de BEAM s’accorde à elle-même. Un score de mémoire ne dit pas grand-chose sans la taille du contexte dépensé pour l’obtenir. Ce nombre manque partout.
Vérifier sans nous croire
Tout ce qui précède demande de croire un tableau. Cette partie vous laisse vérifier.
Notre campagne LongMemEval publie ses résultats question par question : les
deux passes strictes, les fichiers de rappel, les 48 questions nouvelles, les
journaux extraits automatiquement. Ils sont sur une
page de provenance publique,
avec la clé de lecture dans
lexical-2026-08.
Une commande, node verify.js, recalcule chaque chiffre et échoue au moindre
écart. Un arrondi discret en notre faveur se verrait là.
Les passes BEAM derrière 61,7 % et 49,2 % sont publiées pareil, dans
beam-2026-09,
avec leur propre verify.js. Il refait l’agrégation de BEAM au lieu de
l’approcher. Le score est une moyenne par conversation, puis par catégorie, puis
sur les dix. Et event_ordering se note avec un tau de Kendall, pas avec le 0/1
du juge. Une moyenne plate donne un autre résultat.
Les deux jugements de la passe 100K y sont aussi. Vous pouvez donc recalculer vous-même le chiffre de 136 plus haut. Nous avons vérifié que l’outil sait devenir rouge en cassant les données trois fois : un verdict basculé, une ligne supprimée, un échec d’infrastructure masqué.
Il y a trois limites. Rejouer refait notre pipeline, pas le banc : les questions et les réponses d’or appartiennent à LongMemEval et à BEAM, tous deux MIT. Le moteur qui a produit les réponses est fermé, donc vous auditez la notation et pas la recherche. Et le binaire du cœur derrière les deux passes BEAM n’est pas estampillé. Les passes plus récentes enregistrent lequel a répondu. Ces deux-là sont antérieures, et rien ne permet de le retrouver.
Un score publié sans ses fichiers ne peut pas être recalculé. Un score avec ses fichiers, oui. Presque tous les scores de la catégorie sont publiés sans.
Lequel vous voulez vraiment
- Vous construisez un agent ou une application et voulez de la mémoire dedans : prenez mem0, Letta, Cognee ou Supermemory. Nous faisons une application de bureau avec un SDK. Si votre mémoire doit vivre dans votre cloud à côté de votre service, nous n’avons pas la bonne forme.
- Vous êtes une équipe en entreprise avec un VPC, une revue de conformité et un budget de latence : Zep et mem0 sont faits pour cette conversation.
- Vous voulez un graphe inspectable qui tourne sur des modèles locaux : Cognee le dit et il est en Apache-2.0.
- Vous êtes une personne seule qui veut sa mémoire sur sa machine, dans des coffres visibles sur le disque : c’est ce que nous faisons. Vous choisissez lesquels un modèle peut lire. C’est un autre produit que les cinq du dessus.
Retenez le second tableau. Un score sans variante, sans juge et sans nombre de questions est un score que personne ne peut reproduire. Ça vaut aussi quand il nous arrange.
D’autres alternatives, sur un site qui n’est pas le nôtre :
Lu sur les sites, docs et dépôts de chaque projet le 13 septembre 2026. Licences et compteurs d’étoiles depuis l’API GitHub le même jour. Les pages changent, donc chaque affirmation est datée et liée. Rien ici ne juge la qualité de ces produits. C’est un constat sur ce que chacun publie, la seule chose vérifiable de l’extérieur. Les corrections des projets nommés sont bienvenues, et seront appliquées avec leur date.