Dernière mise à jour : 14 août 2026. Les licences, dépendances, modes de déploiement et frontières entre les offres ont été vérifiés le 14 août 2026 à partir des dépôts et documentations officielles de Semantica, Mem0, Zep, Graphiti et Letta.
Graphiti demande notamment Python 3.10 ou une version ultérieure ainsi qu’un moteur de graphe tel que Neo4j, FalkorDB ou Neptune dans son parcours de déploiement documenté. Ce prérequis suffit à montrer pourquoi il serait trompeur de classer ces solutions sur une simple échelle de « meilleure mémoire ».
Conclusion rapide : si vous cherchez une couche de mémoire générale à intégrer à un agent existant, commencez par évaluer Mem0. Si votre priorité est un agent persistant avec une identité, un état et une mémoire active, examinez Letta, anciennement MemGPT. Pour une mémoire organisée autour du temps et des relations, testez Zep, en distinguant clairement son service de Graphiti, son composant open source. Si vos agents doivent justifier leurs décisions, gérer les conflits et conserver la provenance des faits, Semantica est le candidat à examiner en premier. Dans tous les cas, définissez le problème de mémoire avant de choisir le projet.
Cette comparaison s’adresse aux développeurs qui ajoutent une mémoire longue durée à un agent conversationnel ou opérationnel, aux entreprises qui veulent conserver leurs données sous leur contrôle et aux architectes qui hésitent entre une couche de mémoire, un graphe temporel et un véritable environnement d’exécution d’agents.
1. Définissez ce que votre agent doit réellement retenir
Le terme « mémoire » recouvre plusieurs besoins qui ne produisent pas le même cahier des charges :
- Préférences utilisateur : langue, format de réponse, habitudes de travail ou contraintes récurrentes.
- État de tâche : étapes terminées, sous-tâches en attente, approbations reçues et outils déjà utilisés.
- Historique événementiel : ce qui s’est passé, dans quel ordre et à quelle date.
- Relations et connaissances : personnes, produits, contrats, dépendances et liens entre entités.
- Justification d’une décision : source consultée, règle appliquée, conflit détecté et conséquence observée.
Un assistant qui doit se souvenir qu’un utilisateur préfère les exports audio en WAV n’a pas besoin de la même architecture qu’un agent qui doit expliquer pourquoi une commande vidéo a été refusée après la modification d’une politique. Dans le premier cas, une mémoire structurée et filtrable peut suffire. Dans le second, il faut conserver l’évolution des faits, leur provenance et le contexte dans lequel ils étaient valables.
Vous devez aussi séparer trois opérations souvent confondues :
- Écrire une mémoire à partir d’un message ou d’un événement.
- Récupérer la bonne information au moment de la décision.
- Réviser ou supprimer une information devenue fausse, sensible ou obsolète.
Une démonstration qui réussit uniquement à retrouver un souvenir ne prouve donc pas qu’elle convient à la production. Elle ne dit rien sur les contradictions, l’oubli, les droits d’accès ni la possibilité de reconstituer l’état passé.
2. Positionnez chaque projet sur son véritable niveau d’abstraction
Mem0 : une couche de mémoire polyvalente
Mem0 se présente comme une couche de mémoire pour agents. Son intégration typique extrait des faits à partir des messages, les associe à un utilisateur ou à une session, puis les recherche avec des filtres. Son dépôt officiel distingue la bibliothèque, le serveur autohébergé et la plateforme hébergée ; il documente également un déploiement local avec Docker Compose.
Mem0 est donc le premier candidat à tester lorsque votre question est : « Comment ajouter une mémoire longue durée à mon agent sans reconstruire toute son architecture ? »
Son avantage tient à sa position intermédiaire. Le projet ne cherche pas à remplacer votre moteur complet d’orchestration et ne vous impose pas nécessairement une modélisation ontologique lourde. En revanche, vous devez définir vous-même :
- la portée de chaque mémoire ;
- les règles de fusion entre deux préférences contradictoires ;
- la durée de conservation ;
- la procédure de suppression ;
- les contrôles séparant utilisateurs, projets et équipes.
Mem0 convient bien aux prototypes évolutifs, aux assistants personnalisés, aux agents de support et aux workflows où la mémoire est principalement composée de faits ou de préférences récupérables.
Letta : un agent qui possède un état durable
Letta se situe à un autre niveau. Le projet est conçu pour construire des agents « stateful », c’est-à-dire des agents dont l’état, les blocs de mémoire, les outils et l’identité participent directement à l’exécution. Letta était auparavant connu sous le nom de MemGPT, un point à prendre en compte dans les recherches de documentation et les scripts existants.
La question n’est plus seulement « quel souvenir faut-il récupérer ? », mais plutôt « comment cet agent évolue-t-il au fil des sessions ? ». Cette distinction est importante pour :
- un agent de développement qui conserve les conventions d’un projet ;
- un assistant de recherche qui maintient une méthode de travail ;
- un agent personnel qui apprend progressivement les préférences de son utilisateur ;
- un processus autonome qui doit reprendre une tâche interrompue.
Letta propose aussi des parcours locaux dans lesquels l’état de l’agent, les conversations, les connexions de modèles et les secrets peuvent rester sur la machine. La contrepartie est architecturale : si vous disposez déjà de votre propre moteur de workflow, l’introduction de Letta peut créer un chevauchement entre votre état d’orchestration et l’état interne de l’agent.
La comparaison entre Zep et Letta doit donc opposer un système de contexte et de relations à un environnement d’agent persistant, et non deux bases de données interchangeables.
Zep et Graphiti : le temps et les relations au centre
Zep doit être séparé de Graphiti. Zep se présente comme une plateforme de contexte de bout en bout, tandis que Graphiti est un moteur open source de graphes de contexte temporels utilisé dans son infrastructure. L’ancienne Community Edition de Zep est par ailleurs dépréciée ; les capacités actuelles de la plateforme hébergée ne doivent donc pas être automatiquement attribuées au composant open source.
Graphiti conserve des faits avec des fenêtres de validité, des épisodes servant de sources et des relations qui évoluent. Il est pertinent lorsque votre agent doit répondre à des questions telles que :
- quelle préférence était valable avant la dernière modification ;
- quelle relation existait au moment d’une décision ;
- quel événement a produit ce fait ;
- quelle information a remplacé l’ancienne.
Le projet combine recherche sémantique, mots-clés et parcours de graphe, mais son déploiement implique davantage de composants qu’une bibliothèque de mémoire simple. Sa documentation liste plusieurs moteurs de graphe et signale que Kuzu est déprécié pour les nouveaux projets.
Pour déterminer quels projets de mémoire d’agent supportent réellement un déploiement local, vous devez donc distinguer Graphiti, composant open source intégrable et opérable avec ses dépendances, et Zep, plateforme gérée qui ajoute une couche d’exploitation autour du contexte.
Semantica : contexte graphe, raisonnement et traçabilité
Semantica vise les équipes qui doivent représenter des entités, des relations, des décisions et des sources dans un contexte interrogeable. Son dépôt officiel met en avant les graphes de contexte, la provenance selon PROV-O, la détection des conflits, les ontologies, les règles SHACL, les requêtes SPARQL et les exports d’audit.
Cette approche diffère d’une mémoire utilisateur traditionnelle. Semantica ne se limite pas à enregistrer qu’une personne préfère un format donné ; le modèle cherche à relier le fait à son origine, à son contexte, à une décision et éventuellement à une conséquence.
Cette orientation est intéressante pour :
- l’analyse documentaire et la veille technique ;
- les assistants audio ou vidéo qui relient fichiers, versions, intervenants et droits ;
- les environnements industriels ou réglementés ;
- les systèmes multi-agents qui partagent un contexte commun ;
- les applications où vous devez expliquer la réponse, et pas seulement la produire.
La difficulté est le coût de conception. Le schéma, les types d’entités, les règles de conflit, la stratégie d’ingestion et la politique de provenance doivent être définis avec soin. Semantica est donc un choix de gouvernance et de raisonnement, pas simplement une alternative plus sophistiquée à un index vectoriel.
3. Testez l’écriture, la mise à jour et l’oubli
Vous devez soumettre chaque candidat à des informations volontairement contradictoires. Par exemple :
- le client préfère le format vertical ;
- plus tard, il demande systématiquement du 16:9 ;
- une autre source précise que cette préférence concerne uniquement les vidéos sociales ;
- l’utilisateur demande ensuite la suppression de cette donnée.
L’évaluation doit vérifier quatre résultats différents :
- la nouvelle information remplace-t-elle l’ancienne ou s’y ajoute-t-elle sans contrôle ?
- la portée de la préférence est-elle conservée ?
- l’agent distingue-t-il une information actuelle d’un événement historique ?
- la suppression retire-t-elle réellement la donnée de la recherche et des sauvegardes concernées ?
Mem0 vous demandera généralement de concevoir ces règles autour de la couche mémoire et de ses identifiants. Letta traite davantage l’évolution de l’état de l’agent. Graphiti apporte un modèle explicite de validité temporelle et de provenance. Semantica ajoute des mécanismes de conflit, de décision et d’audit présentés comme des objets du graphe.
Ne déduisez pas automatiquement qu’un mécanisme de « mise à jour » équivaut à un mécanisme d’oubli conforme à vos obligations. La suppression logique, l’effacement physique, la rétention des journaux et les copies de sauvegarde sont quatre sujets différents.
Expérience à retenir : une mémoire qui retrouve toujours une information n’est pas nécessairement fiable. En production, une mémoire fausse mais facile à récupérer peut être plus dangereuse qu’une mémoire incomplète.
4. Vérifiez ce qui est réellement autohébergeable
La question « Semantica ou Mem0 est-il le meilleur choix pour l’autohébergement ? » n’a pas de réponse universelle. Elle dépend du nombre de composants que votre équipe accepte d’opérer et du niveau de contrôle recherché.
Mem0 documente un serveur autohébergé avec configuration des modèles, des embeddings, du stockage et de l’authentification. Son écosystème prévoit également des configurations locales utilisant Ollama pour l’extraction et les embeddings, ce qui permet de limiter les dépendances à des services externes dans certains scénarios.
Semantica met en avant un fonctionnement autohébergeable ainsi que plusieurs familles de stockages de graphes et de vecteurs. Cette flexibilité apporte du contrôle, mais elle devient une charge d’intégration : vous devez choisir les moteurs, organiser les migrations, contrôler les droits et documenter les sauvegardes.
Letta peut être exécuté localement dans certains parcours, mais son produit complet et ses fonctions synchronisées ne doivent pas être assimilés au seul mode local. De même, Graphiti est open source, tandis que Zep fournit une couche gérée autour de graphes de contexte.
Avant toute migration, vérifiez dans les dépôts concernés :
- la licence de chaque composant ;
- les bases de données obligatoires et optionnelles ;
- les modèles nécessaires à l’extraction ;
- la présence d’un serveur d’authentification ;
- les mécanismes d’export et de suppression ;
- l’activité récente du dépôt ;
- les fonctions réservées à l’offre hébergée.
Pour une équipe qui veut réduire le nombre de services à maintenir, Mem0 sera souvent le premier essai. Pour une équipe qui accepte d’opérer un graphe et souhaite garder le contrôle du schéma, Graphiti ou Semantica deviennent plus pertinents selon le besoin de temporalité ou de gouvernance.
5. Contrôlez le partage entre agents et la gouvernance
Un système multi-agents ne doit pas seulement partager des souvenirs. Il doit savoir qui a écrit quoi, pour quel périmètre et avec quels droits de lecture.
Avec Mem0, vous devez organiser explicitement les identifiants d’utilisateur, de session, de projet ou d’équipe, puis tester les filtres contre les fuites de contexte. Avec Letta, l’unité centrale est davantage l’agent persistant et son état. Avec Graphiti, plusieurs agents peuvent interroger un contexte temporel commun, mais vous devez définir les groupes, les épisodes accessibles et les règles d’écriture. Avec Semantica, le contexte partagé, la provenance et les décisions sont des éléments plus structurés du modèle annoncé par le projet.
Pour un environnement soumis à audit, mesurez au minimum :
- la capacité à remonter jusqu’à la source d’un fait ;
- l’isolement entre deux utilisateurs ;
- l’identification de l’agent ayant écrit une donnée ;
- l’export d’un historique exploitable ;
- la détection d’un conflit ;
- la suppression d’un fait sans effacer abusivement les données légitimes d’un autre périmètre.
Cette étape est particulièrement importante dans les usages audio et vidéo. Un agent qui associe par erreur une licence, une voix ou un brief créatif au mauvais projet peut produire une réponse techniquement cohérente mais juridiquement inutilisable.
6. Mesurez les résultats avec un protocole identique
Évitez de comparer des chiffres de latence ou de coût publiés dans des environnements différents. Les projets n’utilisent pas nécessairement les mêmes modèles, bases, tailles de contexte, index ni stratégies d’extraction.
Construisez plutôt un jeu de test comprenant :
- des préférences stables ;
- des préférences modifiées ;
- des faits contradictoires ;
- des événements horodatés ;
- des relations à deux ou trois niveaux ;
- des demandes de suppression ;
- des requêtes qui ne doivent rien retourner ;
- des questions demandant une justification.
Puis mesurez séparément :
- rappel utile : le bon fait est-il retrouvé ?
- précision : les faits non pertinents sont-ils exclus ?
- actualité : la version la plus récente est-elle sélectionnée ?
- traçabilité : la source et l’agent rédacteur sont-ils identifiables ?
- isolation : une mémoire d’un utilisateur apparaît-elle ailleurs ?
- réversibilité : pouvez-vous corriger ou supprimer la donnée ?
- charge opérationnelle : combien de services devez-vous sauvegarder, mettre à jour et surveiller ?
Vous pouvez exécuter le même protocole sur Mem0, Letta et Graphiti, mais vous ne devez pas prétendre qu’ils évaluent exactement la même chose. Pour Semantica, ajoutez des tests de parcours de graphe, de règles de conflit et de provenance. Pour Letta, ajoutez des scénarios de reprise de tâche et d’évolution de l’état. Pour Zep, testez le service utilisé et non Graphiti seul si votre cible est l’offre gérée.
Le nombre d’étoiles d’un dépôt peut indiquer une visibilité, jamais une qualité de mémoire dans votre cas d’usage. Il ne remplace ni un jeu de données reproductible ni une revue de sécurité.
7. Faites votre choix selon le profil de votre équipe
Équipe de prototypage
Choisissez Mem0 en premier si vous voulez ajouter rapidement des préférences, des faits utilisateur et une recherche filtrée à un agent existant. Gardez Letta comme alternative si l’état persistant de l’agent est déjà au centre du produit.
Agent fortement stateful
Évaluez Letta en priorité lorsque l’agent doit conserver une identité, des blocs de mémoire et une continuité d’exécution. Mem0 peut compléter votre architecture si vous souhaitez externaliser une partie des faits utilisateur sans transformer toute votre orchestration.
Projet fondé sur les relations et le temps
Commencez par Graphiti pour tester la voie open source du graphe temporel, puis comparez-la à Zep si vous préférez une infrastructure gérée. Ne présentez pas Zep comme entièrement autohébergeable simplement parce que Graphiti est disponible sous forme de composant open source.
Projet à forte exigence de gouvernance
Examinez Semantica si la provenance, les décisions, les conflits, les ontologies et les exports d’audit font partie des exigences initiales. Mem0 peut rester une solution de repli si vos contrôles sont plus simples et que vous voulez limiter la complexité opérationnelle.
Dans les quatre cas, gardez deux candidats pendant une phase pilote et ne transférez pas immédiatement vos données de production.
8. Validez l’architecture avec cette liste de contrôle
- [ ] Décrire séparément les préférences, états, événements, relations et décisions à conserver.
- [ ] Écrire dix scénarios de mise à jour et cinq scénarios de suppression.
- [ ] Créer un test d’isolation entre utilisateurs, projets et agents.
- [ ] Identifier les modèles, bases de données et services nécessaires à chaque candidat.
- [ ] Vérifier la licence et la frontière entre dépôt open source et offre hébergée.
- [ ] Mesurer la récupération des faits actuels et historiques sur le même jeu de données.
- [ ] Exiger une source ou une justification pour les réponses qui influencent une décision.
- [ ] Tester le redémarrage, la sauvegarde et la restauration avant toute migration.
- [ ] Conserver deux solutions candidates jusqu’à la validation des cas contradictoires.
- [ ] Documenter la procédure de retour arrière avant d’écrire dans la mémoire de production.
Si votre environnement local manque de ressources pour reproduire ces essais avec plusieurs services, vous pouvez commencer par consulter le centre d’aide de ZavCloud, puis préparer un espace de test isolé avant de charger des données sensibles. Pour les contraintes de traitement et d’accès distant, les informations générales sur la location de Mac mini peuvent aussi vous aider à distinguer un environnement temporaire d’une infrastructure permanente.
Votre installation actuelle peut sembler suffisante, mais un ordinateur portable partagé, une machine saturée par les modèles et les bases de données, ou un poste difficile à reproduire entre développeurs introduit trois défauts concrets : les résultats changent avec la configuration locale, les tests concurrents se perturbent et l’équipe ne conserve pas toujours un environnement disponible pour les reprises. Pour une phase de comparaison de Semantica, Mem0, Graphiti et Letta, louer un Mac auprès de ZavCloud peut offrir une machine de développement distante plus constante, particulièrement si vos essais impliquent simultanément des conteneurs, des outils de traitement audio ou vidéo et plusieurs agents. Ce n’est pas forcément le meilleur choix pour une charge permanente nécessitant des interfaces physiques ou une infrastructure dédiée, mais c’est une option adaptée à un environnement temporaire, reproductible et isolé.
ZavCloud Developer Infrastructure
Déployez votre mémoire d’agents IA sur un Mac Cloud dédié
Testez vos projets open source dans un véritable environnement macOS avec une instance Mac mini M4 dédiée.
Exécutez localement vos services d’agents, vos bases de données et vos pipelines d’inférence via SSH ou VNC.