13

étapes dans le pipeline mémoire

4

sources de recherche interrogees en parallèle

4

nouveaux modules EasyClaw v2 intégrés

Déduplication

sémantique intelligente

Reranking

listwise via gpt-4.1-nano (approche RankGPT, ordre global cohérent)

Budget

de contexte optimisé par requête

3

niveaux de compaction (integral, détaillé, condense)

Déployé

sur les 2 instances (Max et Eva)

13 étapes des données brutes à la connaissance fusionnee et contextuelle

Ingestion
1

Extract

Cron horaire parse les sessions JSONL en résumés structures (.daily-raw/, interactions.md). Zéro tokens LLM.

2

Extract-MemoriesNEW

En fin de session, analyse automatiquement le contenu et extrait les faits significatifs (préférences, décisions, contexte). Structurés, dédupliqués, stockés en mémoire long-terme.

En savoir plus
3

Reflections

2x/jour, l'agent écrit des réflexions introspectives autonomes sur son comportement et ses décisions dans son journal introspectif.

Consolidation
4

Distill

2x/jour, Claude compresse les interactions récentes et les extractions en mémoire curée. Déduplication et résolution de contradictions.

5

Auto-DreamNEW

Pendant les périodes d'inactivite, consolide automatiquement la mémoire : fusion des souvenirs similaires, resolution des contradictions, archivage des informations obsoletes.

En savoir plus
6

Shepherd

Toutes les 3h, vérifie l'intégrité de MEMORY.md contre une baseline approuvée. Détecté la dérive, restaure si nécessaire.

Indexation
7

Vector SQLite

Embeddings locaux (text-embedding-3-small) en SQLite avec sqlite-vec. Couche de recherche sémantique de secours.

8

QMD

Recherche hybride BM25 + vectoriel + reranking sur fichiers markdown indexes. 93% de recall contre 55% en vectoriel seul.

9

Mem0 + Qdrant

Extraction automatique de faits via Mem0, stockés dans un backend vectoriel Qdrant. Auto-recall des 5 meilleurs souvenirs. Alimenté par les extractions du plugin Extract-Memories.

10

GraphitiNEW

Graphe de connaissances temporel (Graphiti par Zep, backend FalkorDB). Entités et relations typées avec fenêtres de validité — les anciens faits sont invalidés, pas supprimés. Triplets interrogeables (entité → relation → entité).

Rappel & Contexte
11

Memory SélectionNEW

A chaque message, analyse sémantique pour identifier les souvenirs les plus pertinents. Scoring multi-critères : pertinence (40%), recence (20%), fréquence (20%), importance (20%).

En savoir plus
12

Fusion

Fusionne les résultats de QMD + Mem0/Qdrant + Graphiti en parallèle. Reranking listwise via gpt-4.1-nano : comparaison des résultats entre eux (approche RankGPT) pour un ordre global cohérent, plutôt que des scores indépendants. Dédup cross-sources, tri par position, budget de contexte respecté.

13

CompactionNEW

Gestion multi-niveau du contexte pendant la session. Passe lointain résumé, passe recent détaillé, contexte immédiat integral. Elements critiques protégés.

En savoir plus

Chaque couche a ses forces. Toutes s'executent simultanement, precedees par la sélection sémantique et suivies de la compaction.

Requête agent
Sélection sémantiqueNEW

Scoring multi-critères pour identifier les souvenirs pertinents

parallèle

QMD

BM25 + Vectoriel + Rerank

Mem0

Qdrant + auto-faits

Graphiti

Graphe de connaissances temporel

SQLite

Vecteur de secours

Fusion : dédup cross-sources + rerank listwise gpt-4.1-nano
Compaction multi-niveauNEW

Résumé progressif du contexte, protection des ancres critiques

Réponse enrichie

QMD (recherche hybride)

Hybride (mots-clés + sémantique)

Primaire

Backend mémoire natif d'OpenClaw. Combine BM25 (mots-clés exacts) + recherche vectorielle (similarité sémantique) + reranking LLM avec modèles locaux quantifiés.

Modèles locaux quantifiés (embeddings, reranker, expansion de requête) exécutés en loopback. 93% de recall contre 55% en vectoriel seul.

Mem0 + Qdrant (auto-facts)

Faits et préférences extraits automatiquement

Faits

Mem0 extrait automatiquement les faits après chaque conversation avec déduplication intelligente. L'auto-recall injecte les 5 souvenirs les plus pertinents avant chaque réponse. Alimenté par le plugin Extract-Memories qui structure les faits en amont.

Backend vectoriel Qdrant en binaire standalone, accès loopback uniquement. Embeddings multi-dimensionnels, distance cosinus. Empreinte mémoire légère. Extraction pilotée par Claude.

Graphiti (graphe de connaissances temporel)

Triplets relationnels temporels avec fenêtres de validité

Graphe

Extrait entités et relations depuis les épisodes mémoire via gpt-4.1-nano. Construit un graphe temporel interrogeable (ex : julien → corrected_by → bug gateway) où chaque fait a une fenêtre de validité.

Graphiti par Zep, backend FalkorDB. Mises à jour incrémentales, pas de recalcul global. Exposé via un wrapper FastAPI local (port 8002). Déployé sur Max, Neo, et DD en cours de migration.

Vectoriel SQLite (secours)

Sémantique pure (similarite cosinus)

Secours

L'ancien index vectoriel, toujours actif comme filet de sécurité. Embeddings OpenAI, stockés en SQLite local.

Recherche hybride : 70% vectoriel + 30% full-text. Couvre tout l'historique.

Une troisième dimension de rappel, complémentaire de la similarité textuelle et des souvenirs curatés.

La similarité textuelle et les souvenirs sémantiques répondent à une question : « qu'est-ce qui ressemble à ma requête ? ». Le graphe répond à une question différente : « qu'est-ce qui est connecté à ce que je mentionne ? ». Les deux approches sont complémentaires et ne se remplacent pas.

VOISINAGE D'ENTITÉRequête utilisateur"Parle-moi du projet X"QMDsimilarité textuelleMem0souvenirs sémantiquesGrapheXYZWcollaboreutiliseéchéanceFusion et injection dans le contexte

Principe

Lorsque l'utilisateur parle d'un projet, la recherche par similarité remonte les passages qui en parlent. Le graphe, lui, remonte les personnes qui travaillent dessus, les technologies associées, les échéances, les clients — même si aucun passage unique ne co-mentionne tout cela. Les relations existent dans la structure du graphe, pas dans la ressemblance des mots.

Trois couches complémentaires

QMD

Similarité textuelle

Recherche hybride BM25 + vectoriel. Trouve les passages qui ressemblent à la requête.

Mem0

Souvenirs sémantiques

Faits extraits et expériences curatées. Répond avec ce que l'agent a retenu.

Graphe

Voisinage structurel

Entités et relations typées. Répond avec ce qui est lié, pas ce qui ressemble.

Approche

  1. Détection légère des entités nommées dans la requête de l'utilisateur.
  2. Recherche ciblée des voisins immédiats de chaque entité dans le graphe.
  3. Injection compacte et structurée dans le contexte de l'agent : quelques relations, pas un vidage brut.

Bénéfices

Compacité

Quelques lignes de relations suffisent à enrichir le contexte, sans gonfler le budget de tokens.

Déterminisme

Les relations existent ou pas. Pas de scoring flou, pas de seuil à régler.

Relations non-évidentes

Le graphe révèle des connexions que la similarité textuelle seule n'aurait jamais vues.

Performance

Lookup en temps réel. Aucun LLM dans la boucle du rappel par relations.

CoucheMaxEvaStatut
Vectoriel SQLiteOKOKProduction
QMD (hybride BM25+vec+rerank)OKOKProduction
Mem0 + Qdrant (auto-facts)OKOKProduction
Graphiti (graphe de connaissances temporel)NEWOKOKProduction (migration depuis Cognee, 2026-04-16)
Memory Fusion (dedup + rerank)OKOKProduction
Extract-Memories (extraction de faits)NEWOKOKProduction
Auto-Dream (consolidation long-terme)NEWOK--Production
Memory Sélection (rappel sémantique)NEWOKOKProduction
Compaction multi-niveauNEWOKOKProduction
DaemonFréquenceRôle
Memory Extract daemonHoraireParse les sessions, produit les résumés structurés et relance l'indexation
Extract-Memories pluginNEWFin de sessionExtrait les faits significatifs des conversations, structure et stocke dans la mémoire long-terme
Memory Distill daemon2x/jourLe LLM compresse les interactions récentes et les extractions en mémoire curée, puis relance l'indexation
Auto-Dream pluginNEWQuotidien (3h)Consolide la mémoire long-terme : fusion des doublons, résolution des contradictions, archivage
Memory Shepherd daemonToutes les 3hProtège la baseline mémoire et archive les notes temporaires
Agent-Reflect daemon2x/jourL'agent écrit une réflexion autonome dans son journal introspectif
Graphiti + FalkorDB (stack Docker)PermanentServeur de graphe de connaissances permanent

Comment chaque composant fonctionne et pourquoi il existe.

Memory Extract daemon

Cron horaire (launchd)

Transforme les sessions de conversation brutes en mémoire structurée et cherchable. Première étape du pipeline, elle produit les données brutes que tous les autres systèmes consomment.

HOW IT WORKS

  1. Scanne tous les fichiers de session des dernières 24 heures
  2. Extrait des résumés structurés (rétention limitée) et maintient un journal glissant des interactions
  3. Déclenche la réindexation QMD après chaque exécution pour garder les embeddings à jour
  4. Zéro tokens LLM — parsing pur, aucun appel API

WHY IT MATTERS

Sans extraction, l'agent n'aurait que des logs JSONL bruts. Ce script cree la couche structuree sur laquelle tous les autres systèmes mémoire s'appuient.

extract-memories (plugin)

NEWFin de session (automatique)

Analyse chaque session terminee et en extrait les faits significatifs : préférences utilisateur, décisions techniques, contraintes projet, contacts. Les faits sont structures, categorises et dedupliques avant d'être stockes dans la mémoire persistante.

HOW IT WORKS

  1. Se déclenché automatiquement quand une conversation se termine ou atteint un seuil de longueur
  2. Un modèle spécialisé identifié les faits, préférences, décisions et elements de contexte significatifs
  3. Chaque fait est categorise (préférence, décision, contrainte, contact) et associé à des metadonnees (date, source, confiance)
  4. Les faits déjà connus sont fusionnes ou mis à jour plutot que dupliques
  5. Les souvenirs validés rejoignent la mémoire long-terme, disponibles pour Mem0 et la distillation

WHY IT MATTERS

Avant Extract-Memories, les informations precieuses des conversations étaient perdues à la fin de la session. Ce plugin assuré que les préférences, décisions et contexte projet sont automatiquement retenus, sans intervention manuelle.

En savoir plus

Memory Distill daemon

2x/jour (launchd)

Compresse les interactions quotidiennes et les extractions de faits en une mémoire curée et durable.

HOW IT WORKS

  1. Lit les résumés récents, le journal d'interactions glissant et les extractions du plugin Extract-Memories
  2. Utilise Claude pour résumer, fusionner et dédupliquer les entrées accumulées
  3. Réécrit la mémoire curée avec le résultat condensé, préserve le contexte important et supprime le bruit
  4. Déclenche la réindexation QMD après chaque cycle de distillation

WHY IT MATTERS

Les interactions brutes s'accumulent vite. Sans distillation, la mémoire curée grossirait indéfiniment et perdrait en signal. Le LLM agit comme curateur, ne gardant que l'essentiel.

auto-dream (plugin)

NEWQuotidien a 3h (inactivite)

Consolide la mémoire long-terme pendant les périodes d'inactivite, inspire du fonctionnement de la mémoire humaine pendant le sommeil. Complète et renforcé le travail de distill-memory.

HOW IT WORKS

  1. Détecté les périodes sans interaction (nuit, week-ends, seuil d'inactivite configurable)
  2. Scanne l'ensemble de la mémoire pour identifier les clusters de souvenirs proches sémantiquement
  3. Fusionne les souvenirs redondants ou complementaires en un fait unique, plus complet et mieux formule
  4. Quand deux souvenirs se contredisent, conserve le plus recent et archive l'ancien avec trace d'audit
  5. Archive les souvenirs obsoletes (dépassés par de nouvelles informations, trop anciens sans rappel)

WHY IT MATTERS

Au fil des sessions, la mémoire accumule des centaines de faits. Sans consolidation, elle devient bruitee : doublons, informations obsoletes, fragments incomplets. Auto-Dream maintient une mémoire compacte et cohérente qui s'amélioré avec le temps.

En savoir plus

memory-shepherd

Toutes les 3 heures (launchd)

Protège la mémoire curée contre la dérive identitaire lente causée par la réécriture LLM répétée (distill + auto-dream).

HOW IT WORKS

  1. Maintient une copie baseline de la mémoire curée vérifiée par l'humain
  2. Toutes les 3h, compare la mémoire curée actuelle avec la baseline par analyse de diff
  3. Si la dérive dépasse le seuil : archive la version corrompue, restaure la baseline et journalise l'incident
  4. Archive aussi les notes temporaires (scratch notes) pour éviter l'accumulation

WHY IT MATTERS

Distill et Auto-Dream utilisent un LLM pour réécrire la mémoire curée. Sur des centaines de cycles, les petites déviations s'accumulent — la personnalité, les instructions ou les connaissances de l'agent pourraient changer silencieusement. Le shepherd ancre tout sur une référence approuvée par l'humain.

Agent-Reflect daemon

2x/jour (launchd)

Donne à l'agent des capacités d'introspection autonome.

HOW IT WORKS

  1. L'agent écrit des réflexions libres sur son propre comportement, ses décisions et ses interactions dans son journal introspectif
  2. Les reflexions sont indexees par QMD et disponibles pour la recherche de contexte future
  3. Aucune revue humaine requise -- c'est l'agent qui reflechit sur lui-même

WHY IT MATTERS

L'auto-reflexion permet une amélioration comportementale au fil du temps. L'agent peut reconnaître les patterns dans ses propres erreurs et s'ajuster sans correction humaine explicite.

memory-sélection (core)

NEWA chaque message (temps réel)

Identifié et injecte les souvenirs les plus pertinents dans le contexte de l'agent avant qu'il ne formule sa réponse. L'agent ne se souvient pas de tout -- il se souvient de ce qui est pertinent.

HOW IT WORKS

  1. Le message entrant est transforme en vecteur sémantique et analyse pour en extraire les thèmes et entites clés
  2. Les souvenirs proches sémantiquement sont identifiés via recherche dans la base vectorielle (Qdrant, pgvector)
  3. Chaque souvenir candidat reçoit un score combine : pertinence sémantique (40%), recence (20%), fréquence de rappel (20%), importance (20%)
  4. Les N souvenirs les mieux scores sont sélectionnés (N configurable, typiquement 5-15)
  5. Les souvenirs sélectionnés sont injectes dans le contexte de l'agent, dans une section dédiée, avant la formulation de la réponse

WHY IT MATTERS

Un agent peut avoir des milliers de souvenirs. Tout injecter serait impossible et contre-productif. La sélection sémantique donne à l'agent exactement les bons souvenirs au bon moment, comme un collaborateur humain qui connaît bien le projet.

En savoir plus

memory-fusion

A chaque requête (plugin)

Déduplique et re-classe les résultats des 3 sources mémoire (QMD + Mem0/Qdrant + Graphiti) en un seul bloc propre. S'exécute après la sélection sémantique pour fusionner les résultats des différentes couches.

HOW IT WORKS

  1. Interroge QMD, Mem0/Qdrant et Graphiti en parallèle avec isolation des pannes : une source défaillante n'affecte pas les autres
  2. Déduplique les résultats par similarité sémantique (un seuil de chevauchement identifie les doublons)
  3. Reranking listwise via gpt-4.1-nano : le modèle compare tous les résultats entre eux et retourne un ordre complet (approche RankGPT), plutôt que des scores indépendants par item — même modèle que Mem0 et Graphiti pour la cohérence de la stack
  4. Injecte un seul bloc mémoire fusionné respectant un budget de contexte défini dans le prompt de l'agent

WHY IT MATTERS

Sans fusion, les 3 sources injecteraient chacune leurs propres résultats, creant des doublons et du bruit. La fusion donne à l'agent un seul contexte mémoire propre et classe au lieu de trois qui se chevauchent.

compaction multi-niveau (core)

NEWPendant la session (continu)

Gère intelligemment le contexte des conversations longues pour éviter la perte d'information quand la fenêtre de contexte du modèle est atteinte. Inspire de la gestion mémoire des systèmes d'exploitation.

HOW IT WORKS

  1. Surveille en continu la taille du contexte par rapport à la limite du modèle
  2. A 70% de la capacité, déclenché le premier niveau de compaction
  3. Résumé progressivement les échanges anciens en preservant les décisions clés, les faits importants et le fil conducteur
  4. Organise le contexte en 3 niveaux : détail complet (20 derniers messages), résumé détaillé (50 precedents), résumé condense (reste)
  5. Les elements marques comme critiques (décisions, code valide, instructions explicites) sont protégés de la compaction via des ancres

WHY IT MATTERS

Sans compaction, les conversations longues perdent leur debut (ou le design a été discute) quand le contexte deborde. La compaction multi-niveau permet des sessions de 3h+ sans perte de cohérence -- l'agent garde le plan global, les décisions en cours de route, et le détail complet des derniers échanges.

En savoir plus
Pipeline mémoire -- Architecture en détail | OpenClaw × Easylab