MemPalace conserve chaque message en verbatim dans une hiérarchie local-first pour garder contexte, traçabilité et rappel élevé (96.6% recall@5 sur LongMemEval). Je présente la logique, l’architecture Wings/Rooms/Halls/Drawers/Closets et comment l’exploiter face aux approches RAG classiques.
Qu’est-ce que MemPalace ?
Qu’est-ce que MemPalace ? MemPalace est un système de mémoire local-first qui stocke chaque message comme unité de mémoire distincte dans une hiérarchie inspirée de la méthode loci.
Le principe général repose sur deux choix clairs. Local-first signifie que les données sont conservées prioritairement sur votre appareil ou votre infrastructure privée, ce qui réduit les risques de fuite et améliore la confidentialité. Verbatim storage signifie que chaque message est stocké intégralement, sans perte sémantique due à une vectorisation immédiate; cela garantit une traçabilité littérale et permet des comparaisons exactes avec l’original.
La métaphore hiérarchique reprend la méthode loci (méthode des lieux) pour organiser les souvenirs. Wings correspondent aux grands domaines ou projets. Rooms représentent des sujets précis à l’intérieur d’un Wing. Halls distinguent les types de mémoire (par exemple notes, décisions, tâches). Drawers contiennent les verbatim : chaque message brut est une unité dans un tiroir. Closets conservent des résumés structurés en plus des verbatim pour accélérer la recherche.
Cette hiérarchie facilite la séparation des contextes de plusieurs façons. Elle permet d’isoler les Wings personnels des Wings d’équipe, de limiter l’accès aux Rooms sensibles et de garder l’origine temporelle et auteur de chaque Drawer, ce qui améliore la traçabilité. La combinaison verbatim+résumé permet des recherches précises et des accès rapides sans sacrifier l’authenticité des données.
Exemples concrets d’organisation :
- Projet marketing : Wing « Lancement Q3 », Room « Copy réseaux », Hall « Feedback », Drawers pour chaque message client, Closet pour synthèse hebdo.
- Réunions techniques : Wing « Infra », Room « Sprint », Hall « Décisions », Drawers pour logs de réunion, Closet pour décisions validées.
- Support client : Wing « Support EU », Room « Tickets », Hall « Résolution », Drawers pour échanges clients, Closet pour FAQ cumulée.
Résultat chiffré disponible : 96.6% recall@5 sur LongMemEval en mode brut, ce qui témoigne d’une très forte capacité de rappel immédiat. Par rapport à des outils comme Mem0 ou Zep, MemPalace privilégie la conservation locale et le verbatim avant toute vectorisation, ce qui favorise la précision et la traçabilité au prix d’un travail de structuration initial plus lourd.
| Wing | Rôle | Exemple |
| Wing | Grand domaine ou projet | Lancement Q3 |
| Room | Sujet précis à l’intérieur du Wing | Copy réseaux |
| Hall | Type de mémoire (notes, décisions) | Décisions |
| Drawer | Verbatim : message brut | Log réunion 2026-03-12 |
| Closet | Résumé structuré conservé en plus | Synthèse hebdo |
Pourquoi stocker le verbatim plutôt que résumer ?
Stocker le verbatim préserve le contexte complet et la traçabilité, contrairement aux résumés automatiques qui peuvent perdre nuances et relations temporelles.
Cette approche conserve l’empreinte intégrale d’une interaction, d’un document ou d’une réunion, ce qui facilite l’audit, la vérification et la reconstitution d’enchaînements temporels. Le verbatim sert de source de vérité ; on peut y revenir pour vérifier une affirmation, extraire un passage exact ou reconstruire le fil d’une décision.
Voici les différences fondamentales entre verbatim storage et workflows classiques RAG (retrieval-augmented generation) :
- RAG repose sur l’indexation, la création d’embeddings (vecteurs numériques représentant le sens), la recherche vectorielle pour récupérer des passages pertinents, puis l’injection de ce contexte dans un modèle de génération.
- Le verbatim consiste à stocker et indexer le texte complet (souvent découpé en chunks), puis à appliquer des filtres métadonnées et/ou des recherches vectorielles directement sur ces chunks sans écraser l’original.
Les risques des résumés automatiques méritent d’être soulignés. Les résumés peuvent effacer des nuances, perdre des relations temporelles ou suppressions de conditions (si… alors…). Cette perte augmente le risque d’hallucinations lors de la réinjection dans un modèle, parce que le modèle reçoit moins d’éléments vérifiables. La vérification devient plus complexe quand l’original n’est plus disponible.
Le verbatim a aussi des coûts pratiques. Le stockage et l’indexation demandent plus d’espace et de calcul, la latence de recherche peut augmenter si la base est volumineuse, et une bonne gestion des métadonnées (auteur, date, canal, tags) devient indispensable pour rester efficace.
Quand préférer l’un ou l’autre :
- Préférer le verbatim pour l’audit, la conformité, la connaissance d’équipes (teams knowledge) et les tâches dépendantes du contexte détaillé.
- Préférer le résumé quand la compacité est cruciale, que la latence doit être minimale ou que l’on conserve l’essentiel pour usage fréquent.
Bonnes pratiques pour combiner les deux. Conserver toujours le verbatim comme source, créer des « closets de résumés » (versions condensées indexées séparément), et appliquer des filtres symboliques (métadonnées, dates, interlocuteurs) avant la recherche vectorielle pour réduire le périmètre. Utiliser un pipeline hybride : filtrage symbolique → recherche vectorielle sur subset → réinjection du verbatim si nécessaire pour vérification.
Analogie pratique : conserver le verbatim, c’est garder la vidéo entière d’une réunion ; conserver seulement des résumés, c’est garder des clips. Les clips suffisent souvent, mais la vidéo complète reste indispensable pour vérifier un détail.
| Verbatim | Résumé |
| Avantages : Traçabilité, conservation des nuances, vérification facilitée. | Avantages : Économie d’espace, latence réduite, lecture rapide. |
| Inconvénients : Coûts de stockage/indexation, latence possible, besoin fort de métadonnées. | Inconvénients : Perte d’information, risque d’hallucination, difficulté d’audit. |
Comment fonctionne l’architecture interne ?
L’architecture combine une structure symbolique (Wings/Rooms/Halls) et une recherche vectorielle appliquée aux Drawers, permettant filtrage symbolique puis recherche sémantique.
Wings servent de namespaces haut niveau pour regrouper domaines ou équipes. Rooms définissent des sous-domaines thématiques à l’intérieur d’un Wing. Halls offrent des partitions transverses souvent liées à des workflows ou des projets. Drawers contiennent les embeddings et les métadonnées des fragments (chunks) dérivés du verbatim. Closets conservent le verbatim original pour traçabilité, audit et extraction de citations.
Flux de récupération typique combine d’abord un filtre symbolique puis une recherche sémantique. Filtrage par Wing et Hall réduit l’espace de recherche à un sous-ensemble de Drawers pertinents. Recherche vectorielle sur ces Drawers identifie les chunks sémantiquement proches. Validation finale consiste à récupérer le verbatim depuis le Closet correspondant pour vérification et traçabilité.
Indexation requise inclut au minimum les métadonnées suivantes :
- Horodatage : Permet les requêtes temporelles et le suivi d’évolution.
- Auteur : Filtrage par provenance et responsabilité.
- Source : Identifiant de document ou URL pour remonter au contexte original.
- Tags : Accélèrent le pré-filtrage thématique.
- Statut de confidentialité : Autorise ou bloque l’accès selon politiques.
- SequenceId et ChunkId : Maintiennent l’ordre temporel et le rattachement au verbatim.
Stratégies d’embedding et de chunking adaptées au verbatim privilégient le respect des unités sémantiques (phrases, paragraphes), le maintien du contexte temporel via des identifiants de séquence, et un chevauchement contrôlé entre chunks pour éviter des ruptures de sens. Les embeddings sont calculés par chunk et stockés dans les Drawers, tandis que le Closets conserve le texte intégral.
// Filtrer par Wing et Hall
Candidates = FilterByWingAndHall(WingId, HallId)
// Calculer embeddings pour les Drawers candidats (si nécessaire)
Embeddings = ComputeEmbeddings(Candidates)
// Rechercher top-K par similarité vectorielle
Results = VectorSearch(Embeddings, QueryEmbedding, TopK)
// Retourner verbatim pour vérification dans le Closet
For Each r In Results:
Verbatim = FetchVerbatim(r.ChunkId)
// Afficher ou vérifier la source et métadonnées
| Action | Composant impliqué | Résultat attendu |
| Filtre | Wing / Hall | Réduction de l’espace de recherche au domaine pertinent |
| Recherche | Drawers (index vectoriel) | Top-K chunks sémantiquement proches |
| Validation | Closet (verbatim) | Traçabilité et vérification de conformité |
Comment l’utiliser en pratique et quelles limites ?
MemPalace s’utilise en couplant filtre symbolique et recherche vectorielle, en injectant des verbatim vérifiables dans les prompts et en conservant résumés dans des closets pour efficacité.
Scénarios d’usage concrets incluent assistants personnels qui conservent préférences et historiques, agents multi-step orchestrant tâches complexes, support client enrichi par verbatim de conversations passées, et conservation automatique de réunions avec verbatim vérifiables et résumés actionnables.
- Intégration avec frameworks agentic : Un pipeline type consiste à laisser l’agent décider d’une wing/hall (espace thématique) → récupérer des drawers (documents ou verbatim pertinents) → raisonner sur ces éléments → écrire l’action. Cette organisation facilite le routage d’informations et l’auditabilité.
- Intérêt pour LangGraph : LangGraph et frameworks similaires aident à orchestrer ces étapes sans imposer une architecture propriétaire, tout en laissant la place à votre couche de filtrage symbolique et à votre index vectoriel.
- Techniques de context injection pour LLMs : Sélection documentaire par score de similarité, citation explicite du verbatim (mettre entre crochets ou préfixer par « Verbatim: ») pour traçabilité, et stratégies pour limiter le token usage : pré-filtrage symbolique (règles, métadonnées), stockage de résumés dans des closets pour réduire la taille du contexte et n’injecter le verbatim complet qu’en cas de besoin.
- Limites et challenges : Le coût de stockage se calcule précisément (exemple : un embedding 1 536-d float32 ≈ 6 KB ; 1M embeddings ≈ 6 GB hors overhead d’indexation). La montée en charge demande indexation efficace (HNSW, FAISS), la latence de recherche peut atteindre quelques dizaines de millisecondes selon la taille, et la gestion de rotation/retention est cruciale pour conformité (RGPD) et coût. Le modèle local-first réduit les risques d’exfiltration et facilite le contrôle des données.
- Recommandations opérationnelles : Prioriser les wings à forte valeur, définir halls avec métadonnées claires, appliquer politiques de rétention automatiques, et mettre en place monitoring du rappel (recall) et métriques de latence pour détecter dérives.
// Exemple simplifié de pipeline
Agent -> Choisit Wing/Hall
Agent -> Query Index Vectoriel (top-k)
Si score < seuil alors -> Récupérer résumé depuis Closet
Sinon -> Injecter verbatim vérifié dans le prompt
LLM -> Génère action et met à jour Closets/Drawers
| Action | Priorité | Bénéfice attendu |
| Prioriser wings par fréquence d’accès | Haute | Réduction des coûts et latence pour le cœur métier |
| Mettre en place résumés dans closets | Moyenne | Baisse du token usage et coût API |
| Appliquer rétention automatique (politiques) | Haute | Conformité RGPD et réduction du stockage |
| Monitorer rappel et latence | Haute | Détection rapide des pertes de performance |
On garde tout pour mieux raisonner, prêt à l’essayer ?
Je résume : MemPalace mise sur un stockage local-first et verbatim, organisé par Wings/Rooms/Halls/Drawers/Closets, pour préserver contexte, traçabilité et rappel élevé (96.6% recall@5 sur LongMemEval en mode brut). Plutôt qu’opposer verbatim et RAG, le système combine structure symbolique et recherche vectorielle : filtrage ciblé, recherche sémantique, puis vérification sur le verbatim. Pour vous, cela signifie des réponses mieux sourcées et vérifiables, un historique exploitable et un contrôle des données. Le bénéfice concret : raisonner avec contexte complet pour des décisions plus fiables.
FAQ
-
Qu’est-ce que MemPalace et en quoi il diffère d’une base de vecteurs ?
MemPalace est un système local-first qui conserve chaque message en verbatim dans une hiérarchie (Wings/Rooms/Halls/Drawers/Closets). Contrairement à une base de vecteurs seule, il combine filtrage symbolique et recherche vectorielle tout en gardant l’original pour vérification et traçabilité. -
Le stockage verbatim n’alourdit-il pas les coûts et la latence ?
Oui, conserver le verbatim augmente le volume de données. La recommandation est de filtrer d’abord par Wings/Halls, d’indexer et chunker intelligemment les drawers, puis d’utiliser la recherche vectorielle sur un sous-ensemble pour limiter la latence. -
Quels bénéfices concrets en termes de qualité de réponse ?
Conserver le verbatim améliore le contexte disponible pour la génération et la vérification des réponses. Dans le cas étudié, le mode brut rapporte 96.6% recall@5 sur LongMemEval, indiquant un rappel élevé des éléments pertinents. -
Comment garantir la confidentialité avec un système local-first ?
Le local-first donne un contrôle fort des données : vous gardez les verbatim en interne, appliquez politiques de rétention, chiffrement et accès, et pouvez séparer wings pour compartimenter informations sensibles. -
Peut-on intégrer MemPalace à des agents ou frameworks existants ?
Oui. Le pattern consiste à laisser l’agent choisir une wing/hall, récupérer des drawers filtrés, effectuer une recherche vectorielle et enfin vérifier les résultats sur le verbatim. C’est compatible avec pipelines agentic (ex. LangGraph ou solutions similaires).
A propos de l’auteur
Franck Scandolera — expert & formateur en tracking avancé server-side, Analytics Engineering, automatisation No/Low Code (n8n) et intégration de l’IA en entreprise. Responsable de l’agence webAnalyste et de l’organisme Formations Analytics. Références : Logis Hôtel, Yelloh Village, BazarChic, Fédération Française de Football, Texdecor. Dispo pour aider les entreprises => contactez moi.
⭐ Analytics engineer, Data Analyst et Automatisation IA indépendant ⭐
- Ref clients : Logis Hôtel, Yelloh Village, BazarChic, Fédération Football Français, Texdecor…
Mon terrain de jeu :
- Data Analyst & Analytics engineering : tracking avancé (GTM server, e-commerce, CAPI, RGPD), entrepôt de données (BigQuery, Snowflake, PostgreSQL, ClickHouse), modèles (Airflow, dbt, Dataform), dashboards décisionnels (Looker, Power BI, Metabase, SQL, Python).
- Automatisation IA des taches Data, Marketing, RH, compta etc : conception de workflows intelligents robustes (n8n, App Script, scraping) connectés aux API de vos outils et LLM (OpenAI, Mistral, Claude…).
- Engineering IA pour créer des applications et agent IA sur mesure : intégration de LLM (OpenAI, Mistral…), RAG, assistants métier, génération de documents complexes, APIs, backends Node.js/Python.






