memoryaicm donne une mémoire longue à Claude, à un modèle local ou à votre propre agent. Un journal qu'on ne peut ni modifier ni effacer, un index qui s'en déduit, un validateur hors modèle. Auditable ligne par ligne, conforme RGPD, mesuré sur un banc public.
$ pip install https://github.com/GotoRyugen/memoryaicm/archive/refs/heads/main.zip
Un fichier SQLite est la source de vérité. Pas de base vectorielle, pas de service tiers, pas de clé obligatoire. Fonctionne hors ligne avec un modèle local, ou avec Claude, OpenAI, Gemini si vous le décidez.
Journal append-only, chaîné SHA-256, horodaté et attribué. Même le logiciel ne peut pas modifier ou supprimer une ligne. Toute altération externe est détectée par verify.
Un fait n'est retenu que s'il est ancré dans ce que la personne a écrit, vérifié mécaniquement. Une page web ou un document est une donnée : l'instruction qui s'y cache part en quarantaine.
Secrets, canaris, valeurs périmées, instructions externes suivies : bloqués avant la réponse, par des règles dures. L'adhésion aux consignes ne dépend jamais du modèle seul.
Trois couches, chacune déduite de la précédente. Le journal est la seule vérité ; l'index et le profil compilé se reconstruisent à l'identique à partir de lui.
Chaque tour, chaque fait, chaque oubli devient un événement daté, attribué et chaîné. Plein texte sur l'ensemble, y compris ce qui est désindexé.
Durabilité, conflit (fusion versionnée), saillance, sensibilité. Un fait sensible attend une validation humaine. Quatre niveaux d'autonomie, de « observer » à « routines ».
Lexical pondéré (racines, synonymes FR/EN, idf) qui décide quand il trouve ; sémantique en recours pour les reformulations. Activation ACT-R : ce qui sert reste, ce qui ne sert plus s'efface de la vue.
Dédoublonnage, abstraction, élagage, compilation d'un profil. L'état consolidé n'est promu que si les suites de tests passent ; sinon, annulé. Tout est journalisé.
tests automatisés, verts sous Linux et Windows, Python 3.10 à 3.13.
dépendance obligatoire. Bibliothèque standard uniquement ; le chiffrement des sauvegardes est un extra.
outils memory_* rendus dans le format de chaque fournisseur : MCP, OpenAI, Anthropic, Gemini, texte.
Add-on Claude Desktop, Cowork et Claude Code en une commande (serveur MCP + hook). Pour tout le reste, une boucle d'outils générique, un service HTTP local, et des adaptateurs prêts à l'emploi.
$ python -m memoryaicm install --write --hook # Claude Desktop + Claude Code, puis redémarrer Claude
10 conversations, 5 882 tours, 1 536 questions du jeu public LoCoMo, rejouées avec leurs vraies dates. La question : le tour de preuve attendu est-il dans les k premières notes rappelées ? Référence : BM25 sur les mêmes tours.
| k notes rappelées | memoryaicm (hit@k) | BM25 (hit@k) |
|---|---|---|
| 1 | 0,340 | 0,299 |
| 5 | 0,528 | 0,517 |
| 10 | 0,607 | 0,602 |
| 20 | 0,674 | 0,674 |
| 30 | 0,708 | 0,720 |
Rappel médian : 97 ms sur 500 à 690 faits, Python pur, sans GPU ni réseau. Les scores que d'autres systèmes publient sur LoCoMo (≈ 90 %) sont notés par GPT-4o et mélangent la mémoire et le modèle qui répond ; ce n'est pas la même grandeur. Point faible mesuré : les questions multi-sauts (0,447 à k = 10). Résultats bruts, scripts et mode d'emploi livrés avec le code.
Un dossier mémoire = une personne. Les droits s'exercent sur le dossier entier, ce qui préserve l'immuabilité du journal.
python -m memoryaicm export --out export.jsonl
Tout le journal, un événement par ligne, hachages inclus : revérifiable sans l'outil.
python -m memoryaicm backup --out mem.maicm
Instantané cohérent du journal, AES-256-GCM, clé propre au dossier et jamais copiée dans la sauvegarde.
python -m memoryaicm erase --yes
La clé est détruite : toutes les sauvegardes chiffrées deviennent illisibles. Chaque fichier est écrasé puis supprimé. Seule reste une pierre tombale datée, sans contenu.
Le code est publié sous AGPL-3.0 : utilisez-le, modifiez-le, redistribuez-le en publiant vos modifications. Pour l'intégrer dans un produit ou un service sans publier votre code, ou pour être accompagné, prenez une licence commerciale.
Projets libres, recherche, évaluation, usage personnel.
Indépendants et petites équipes qui veulent une mémoire locale pour Claude sans y passer la journée.
Éditeurs et services qui intègrent memoryaicm dans leur produit, ou qui veulent une mémoire souveraine branchée sur leur agent.
Dans un dossier sur votre disque : journal.sqlite (la vérité), index.sqlite (reconstructible), un profil compilé. Aucune requête réseau n'est faite par la mémoire elle-même. Si vous branchez un modèle distant pour l'extraction des faits, c'est ce modèle qui reçoit le texte des tours, pas le journal.
Ce sont de bons produits, pensés pour le cloud et notés par un juge GPT-4o. memoryaicm est pensé pour tourner en local sans dépendance, avec un journal immuable et un validateur hors modèle. Nous publions notre mesure (récupération pure, sans juge) et ses limites ; nous ne comparons pas des chiffres qui ne mesurent pas la même chose.
Pour que le logiciel reste libre, y compris quand il est offert comme service en ligne : qui l'améliore et l'héberge doit publier ses améliorations. Les entreprises qui ne veulent pas de cette obligation prennent la licence commerciale ; c'est ce qui finance le développement.
N'importe lequel. Avec appel d'outils (Claude, GPT, Gemini, Llama, Qwen, Mistral via Ollama, llama.cpp, LM Studio, vLLM) ou sans : un protocole texte existe pour les modèles qui ne savent pas appeler d'outils. Sans aucun modèle, un extracteur à règles FR/EN fait tourner l'ensemble hors ligne.
Un dossier = une personne. L'effacement détruit la clé de chiffrement des sauvegardes, écrase puis supprime chaque fichier du dossier. Le journal n'est pas édité ligne par ligne : il est effacé en entier, ce qui est précisément ce que demande l'article 17.
Les trois. Python 3.10 ou plus. Les tests tournent sous Linux et Windows en intégration continue. L'installeur en un clic de l'offre Pro vise Windows ; sur les autres systèmes, une commande suffit.
Écrivez-nous en indiquant votre cas d'usage (quel agent, quel modèle, quel volume). Réponse sous deux jours ouvrés.