Une mémoire pour agents IA, mesurée avant d'être crue.
Flare, un serveur MCP local : recherche, mémoire et outils sur ses propres fichiers. En pré-version.
Le problème : un agent dit avoir noté un fait, et n'appelle aucun outil. Ce qu'il dit de lui-même ne prouve rien.
1Le schéma
l'agentFlarel'index localle hook, hors du modèle
2Ce que j'ai construit
-
Le serveur MCP : 12 outils (search, save, extract, sql…) pour Claude Code, Claude Desktop et Codex.
- Clojure : 202 fichiers, 52 000 lignes ; 1 264 tests.
-
La recherche hybride : plein texte et sémantique, sur un index local.
- SQLite ou FoundationDB ; binaires natifs GraalVM.
-
La boucle d'écriture : un hook déterministe déclenche la sauvegarde, pas la bonne volonté du modèle.
- Les secrets (un code, un mot de passe wifi) sont exclus exprès.
-
Le banc de mesure : BEIR, la boucle d'écriture, le routage des indices, l'extraction de tableaux.
3Le résultat
-
Faits retenus : de 0 à 0,67, p = 0,0013 (test de Fisher, 12 sessions par bras).
- Hors secrets : 8 sur 8.
-
Une recherche au niveau de la référence publiée : SciFact NDCG@10 0,714 contre 0,710 ; NFCorpus 0,352 contre 0,353.
-
Routage des indices : précision 1,000, rappel 0,944, aucun faux positif.
-
Une dizaine de pistes rejetées, chiffres à l'appui : le rerank par cross-encoder (SciFact −0,021, puis −0,224), un autre embedder, INT8.
- Plus grand gain : un seuil PQ corrigé, +0,14 sur SciFact en dense.
4Mon rôle
-
Mon projet : environ 18 mois de travail depuis mars 2025, à côté de mes missions.
- En pré-version : pas encore de version signée.