37 points par GN⁺ 2026-03-06 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Mise en place d’un système de mémoire combinant le moteur de recherche local QMD et la compétence /recall pour résoudre le problème de perte de contexte entre les sessions de Claude Code
  • QMD est un moteur de recherche local qui indexe un vault Obsidian et prend en charge trois modes de recherche : BM25, sémantique et hybride
  • La compétence /recall prend en charge trois modes — chronologique, thématique et visualisation en graphe — pour restaurer instantanément le contexte complet des sessions passées
  • Mise en œuvre d’un pipeline automatisé qui analyse et vectorise automatiquement les journaux de conversation JSONL de 700 sessions afin de les intégrer à l’index QMD
  • Présentation d’un workflow centré sur le contexte exploitable avec n’importe quel agent IA tant que le contexte est conservé, même si les outils changent

Le problème : Claude Code se réinitialise à chaque session

  • Toutes les conversations de Claude Code démarrent à zéro et, après 700 sessions sur trois semaines, il devenait difficile de suivre les décisions passées et le contexte des projets
  • Lorsqu’on atteint la limite de contexte (60 %) au milieu d’une session, il faut recourir à compact ou hand off, et la moitié des décisions se perd dans le processus
  • Le lendemain, reprendre le travail implique de nouveau la gêne de ne plus se souvenir de ce qui a été fait
  • L’approche classique de recherche basée sur grep dans les fichiers ne passe pas à l’échelle

QMD : un moteur de recherche local dédié aux vaults

  • QMD est un moteur de recherche local créé par le CEO de Shopify Tobias Lutke ; il indexe un vault Obsidian et renvoie les résultats en moins d’une seconde
  • Il est possible d’associer des collections QMD à chaque dossier du vault (notes, journaux quotidiens, sessions, transcriptions, etc.) pour effectuer des recherches ciblées
  • Il fonctionne avec une seule commande, comme qmd collection list, qmd search "video workflow" -c notes -n 3
  • La recherche par défaut de Claude Code repose sur un sous-agent Haiku qui lance grep sur tous les fichiers, une approche brute force qui, lors des tests, a pris 3 minutes pour renvoyer 300 fichiers, avec une qualité médiocre
  • La recherche QMD est immédiate, plus précise et moins coûteuse en tokens — aucun sous-agent n’est nécessaire

Grep vs BM25 vs recherche sémantique

  • BM25 (qmd search) : recherche plein texte déterministe qui, comme grep, fait correspondre des mots-clés, mais attribue un score à chaque fichier
    — elle se base sur la fréquence d’apparition des mots et leur rareté relative dans l’ensemble des documents, en n’utilisant que des calculs mathématiques, sans IA ni embeddings
    • Une note courte mentionnant "sleep" 5 fois obtiendra un score supérieur à un fichier de 10 000 mots qui ne le mentionne qu’une seule fois
  • Sémantique (qmd vsearch) : basée sur les embeddings, elle permet de rechercher par le sens même si les mots exacts n’apparaissent pas
  • Hybride (qmd query) : combine BM25 et recherche sémantique
  • Comparatif de benchmark sur la recherche de "sleep" :
    • grep : renvoie 200 fichiers, avec beaucoup de bruit, y compris des commandes de programmation sleep()
    • BM25 : renvoie en moins de 2 secondes des résultats pertinents comme des expériences sur la qualité du sommeil ou des journaux d’interruptions du sommeil
    • En revanche, qmd search "insomnia" renvoie 0 résultat si le mot n’existe pas dans le vault
    • Sémantique : une recherche comme "couldn't sleep, bad night" retrouve même un objectif d’habitudes de coucher défini des années plus tôt — 4 résultats sur 5 ne contenaient pas les mots de la requête
    • Hybride : fournit le meilleur classement, avec sleep quality improvement à 89 %, sleep interrupted at 3am à 51 % et health sleep optimization à 42 %
  • Schéma d’usage recommandé : 80 % des recherches passent par BM25 (adapté aux notes structurées), avec de la recherche sémantique en complément pour les transcriptions et les notes non structurées

Cas concrets de découverte grâce à la recherche sémantique

  • Pour une requête non structurée comme "find the days when I was happy and what was the reason", Claude combine automatiquement plusieurs recherches :
    • qmd vsearch "happy, grateful, excited", "energy, great day, feeling good", "satisfaction, accomplishment", etc.
  • Dans des notes quotidiennes couvrant plusieurs mois, il découvre des liens sémantiques et fait ressortir un schéma : "les jours les plus heureux sont ceux où quelque chose a été lancé, suivi d’une bonne récupération grâce au sauna ou à 9 heures de sommeil"

La compétence /recall : charger le contexte avant de commencer à travailler

  • /recall est une compétence Claude Code fonctionnant au-dessus de QMD, qui charge automatiquement le contexte avant le début du travail
  • Elle prend en charge trois modes :
    • temporal : analyse l’historique des sessions par date (/recall yesterday, /recall last week)
    • topic : recherche BM25 sur les collections QMD ciblées (/recall topic graph)
    • graph : visualisation interactive des sessions et des fichiers (/recall graph last week)
  • Lors d’un test de /recall yesterday, elle a reconstitué sous forme de timeline 39 sessions d’une journée — avec l’heure, le nombre de messages et le contenu du travail pour chaque session
  • Avec /recall topic "QMD video", elle retrouve en moins d’une minute, dans l’ensemble des sessions et des notes, des fichiers liés comme le tableau de bord, le plan de production ou la to-do list — meilleure que le grep brute force en temps, en tokens et en qualité de résultat
  • Le mode graph visualise les sessions sous forme de blobs colorés : les anciennes apparaissent estompées, les récentes sont mises en valeur en violet — les fichiers sont regroupés par type, comme goals, research, voice, docs, content, skills
  • Exemple : retrouver dans le graphe, une semaine plus tard, une session de recherche d’endroit où déjeuner, puis copier son chemin de fichier dans Claude Code pour reprendre le travail à partir de la conversation précédente

Indexation automatique de 700 sessions

  • Claude Code stocke toutes les conversations localement sous forme de fichiers JSONL — 700 sessions se sont accumulées en trois semaines
  • Les fichiers bruts contiennent les tool uses, les prompts système, les rôles, etc. ; ils sont analysés pour être convertis en Markdown propre (vrais messages utilisateur et signaux), puis vectorisés et intégrés à l’index QMD
  • À la fermeture du terminal, un hook automatique s’exécute pour exporter et vectoriser la session vers QMD — l’index reste toujours à jour sans aucune opération manuelle

Retrouver des idées jamais mises à exécution

  • Avec la recherche "find the ideas that I have never acted on", Claude synthétise les résultats QMD et retrouve notamment :
    • 19 octobre — projet de tableau de bord pour la rédaction de thèse jamais exécuté
    • Une idée d’application basée sur des illustrations sans suite
    • Une idée d’enregistrement d’écran d’un workflow Obsidian également non exécutée
  • Des éléments écrits plusieurs mois plus tôt et complètement oubliés sont ainsi redécouverts
  • Tous les embeddings sont stockés localement

Un workflow centré sur le contexte

  • Les notes ne restent plus enfermées dans Obsidian ; elles deviennent un contexte utile réellement exploité pour atteindre des objectifs
  • Les outils changent (nouveaux modèles, nouveaux agents), mais tant que le contexte est conservé, cela fonctionne partout : Claude Code, Codex, Gemini CLI, etc.
  • La couche mémoire fonctionne à l’échelle de toute la stack sous forme de compétence
  • Configuration réelle : Obsidian Sync synchronise le vault entre un Mac et un Mac Mini allumé en permanence ; sur le Mac Mini, OpenClaw tourne 24/7 — en s’y connectant depuis le téléphone, on retrouve partout le même vault, le même index QMD et les mêmes compétences
  • Structure de la stack complète :
    • En bas : Obsidian Vault
    • Au milieu : QMD Search
    • En haut : Claude Code / OpenClaw
    • Le contexte circule de bas en haut

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.