- Um das Problem des Kontextverlusts zwischen Sitzungen in Claude Code zu lösen, wurde ein Memory-System aufgebaut, das die lokale Suchmaschine QMD mit dem Skill /recall kombiniert
- QMD ist eine lokale Suchmaschine, die Obsidian-Vaults indiziert und drei Suchmodi unterstützt: BM25, semantisch und hybrid
- Der Skill /recall stellt den vollständigen Kontext vergangener Sitzungen sofort wieder her und bietet drei Modi: chronologisch, thematisch und als Graph-Visualisierung
- Es wurde eine automatisierte Pipeline implementiert, die JSONL-Gesprächsprotokolle aus 700 Sitzungen automatisch parst und einbettet und so in den QMD-Index übernimmt
- Vorgestellt wird ein kontextzentrierter Workflow, der mit jedem AI-Agenten nutzbar ist, solange der Kontext erhalten bleibt – auch wenn sich die Tools ändern
Problem: Claude Code wird in jeder Sitzung zurückgesetzt
- Jede Unterhaltung in Claude Code beginnt im Nullzustand, und nach 700 Sitzungen in drei Wochen wurde es schwierig, frühere Entscheidungen und Projektkontext nachzuverfolgen
- Wird mitten in einer Sitzung das Kontextlimit (60 %) erreicht, ist ein compact oder hand off nötig – dabei geht die Hälfte der getroffenen Entscheidungen verloren
- Wenn man am nächsten Tag weiterarbeiten will, wiederholt sich das frustrierende Problem, sich nicht mehr zu erinnern, was man getan hat
- Der bisherige Ansatz einer dateibasierten Suche mit grep skaliert nicht
QMD: Lokale Suchmaschine speziell für Vaults
- QMD ist eine lokale Suchmaschine von Shopify-CEO Tobias Lutke, die Obsidian-Vaults indiziert und Suchergebnisse in unter einer Sekunde liefert
- Für jeden Vault-Ordner lassen sich QMD-Collections zuordnen (Notizen, Tagesprotokolle, Sitzungen, Transkripte usw.), um gezielt zu suchen
- Die Bedienung erfolgt mit einzelnen Befehlen wie
qmd collection list oder qmd search "video workflow" -c notes -n 3
- Die Standardsuche von Claude Code arbeitet per Brute Force, bei der ein Haiku-Sub-Agent alle Dateien mit grep durchsucht; im Test dauerte das 3 Minuten, lieferte 300 Dateien und war qualitativ schwach
- Die Suche mit QMD ist sofort verfügbar, präziser und tokeneffizienter – ein Sub-Agent ist nicht nötig
Grep vs. BM25 vs. semantische Suche
- BM25 (
qmd search): deterministische Volltextsuche, die wie grep Schlüsselwörter abgleicht, aber jeder Datei einen Score zuweist
— basiert auf Worthäufigkeit und Seltenheit im Gesamtdokumentbestand und verwendet nur mathematische Berechnungen, kein AI und keine Embeddings
- Eine kurze Notiz mit 5 Erwähnungen von "sleep" erhält einen höheren Score als eine Datei mit 10.000 Wörtern, in der es nur einmal vorkommt
- Semantisch (
qmd vsearch): embeddingsbasierte Suche, die auch dann nach Bedeutung suchen kann, wenn das exakte Wort fehlt
- Hybrid (
qmd query): kombiniert BM25 und semantische Suche
- Vergleichsbenchmark zur Suche nach "sleep":
- grep: 200 Dateien, viel Rauschen, darunter sogar der Programmierbefehl
sleep()
- BM25: liefert in unter 2 Sekunden relevante Treffer wie Experimente zur Schlafqualität oder Aufzeichnungen über unterbrochenen Schlaf
- Allerdings ergibt
qmd search "insomnia" 0 Treffer, weil dieses Wort im Vault nicht vorkommt
- Semantisch: Bei der Suche nach "couldn't sleep, bad night" wurde sogar ein Jahre altes Ziel für Schlafgewohnheiten gefunden – 4 von 5 Treffern enthielten den Suchbegriff nicht
- Hybrid: liefert mit sleep quality improvement 89 %, sleep interrupted at 3am 51 % und health sleep optimization 42 % das beste Ranking
- Empfohlenes Nutzungsmuster: 80 % der Suchen mit BM25 (gut für strukturierte Notizen), ergänzt durch semantische Suche für Transkripte und unstrukturierte Memos
Konkrete Funde durch semantische Suche
- Bei unstrukturierten Anfragen wie "find the days when I was happy and what was the reason" kombiniert Claude automatisch mehrere Suchen:
qmd vsearch "happy, grateful, excited", "energy, great day, feeling good", "satisfaction, accomplishment" usw.
- In Tagesnotizen über mehrere Monate hinweg wurden semantische Zusammenhänge gefunden – etwa das Muster: „Die glücklichsten Tage waren jene, an denen etwas veröffentlicht wurde und danach gute Erholung durch Sauna oder 9 Stunden Schlaf folgte.“
Der Skill /recall: Kontext vor Arbeitsbeginn laden
- /recall ist ein Claude-Code-Skill, der auf QMD aufsetzt und vor Arbeitsbeginn automatisch Kontext lädt
- Unterstützt drei Modi:
- temporal: scannt den Sitzungsverlauf nach Datum (
/recall yesterday, /recall last week)
- topic: BM25-Suche über QMD-Collections (
/recall topic graph)
- graph: interaktive Visualisierung von Sitzungen und Dateien (
/recall graph last week)
- Test mit
/recall yesterday: 39 Sitzungen eines Tages wurden als Timeline rekonstruiert – inklusive Uhrzeit, Anzahl der Nachrichten und Arbeitsinhalt jeder Sitzung
- Ergebnis von
/recall topic "QMD video": Relevante Dateien wie Dashboard, Produktionsplan und To-do-Liste wurden in unter einer Minute aus Sitzungen und Notizen zurückgegeben – besser als Brute-Force-grep bei Zeit, Tokenverbrauch und Ergebnisqualität
- Im Graph-Modus werden Sitzungen als farbige Blobs visualisiert: ältere verblassen, neuere werden violett hervorgehoben; Dateien werden nach Typen wie goals, research, voice, docs, content und skills geclustert
- Beispiel: Eine Sitzung zur Suche nach einem Mittagsort wurde eine Woche später im Graphen wiedergefunden; durch Kopieren des Dateipfads in Claude Code ließ sich die frühere Unterhaltung direkt fortsetzen
Automatische Indizierung von 700 Sitzungen
- Claude Code speichert alle Gespräche lokal als JSONL-Dateien – in drei Wochen kamen 700 Sitzungen zusammen
- Da die Originaldateien Tool-Aufrufe, System-Prompts, Rollen usw. enthalten, werden sie geparst und in sauberes Markdown (echte Nutzernachrichten und Signale) umgewandelt, bevor sie in den QMD-Index eingebettet werden
- Beim Schließen des Terminals wird automatisch ein Hook ausgeführt, der die Sitzung nach QMD exportiert und einbettet – so bleibt der Index ohne manuelle Schritte stets aktuell
Nicht umgesetzte Ideen wiederfinden
- Bei der Suche nach "find the ideas that I have never acted on" fasste Claude die QMD-Ergebnisse zusammen und fand unter anderem:
-
- Oktober – Plan zum Aufbau eines PhD-Schreib-Dashboards, aber nicht umgesetzt
- Idee für eine illustrationsbasierte App, aber keine Nachverfolgung
- Idee für eine Bildschirmaufnahme des Obsidian-Workflows, aber nicht umgesetzt
- So wurden Monate alte, völlig vergessene Einträge wiederentdeckt
- Alle Embeddings werden lokal gespeichert
Kontextzentrierter Workflow
- Notizen bleiben nicht in Obsidian eingeschlossen, sondern werden zu nützlichem Kontext, der tatsächlich beim Erreichen von Zielen hilft
- Tools ändern sich zwar (neue Modelle, neue Agenten), aber wenn der Kontext erhalten bleibt, funktioniert der Workflow überall – etwa in Claude Code, Codex oder Gemini CLI
- Die Memory-Schicht arbeitet als Skill über den gesamten Stack hinweg
- Reale Konfiguration: Mit Obsidian Sync wird der Vault zwischen einem Mac und einem ständig laufenden Mac Mini synchronisiert; auf dem Mac Mini läuft OpenClaw rund um die Uhr – bei Zugriff auf OpenClaw vom Smartphone aus stehen derselbe Vault, derselbe QMD-Index und dieselben Skills überall zur Verfügung
- Struktur des gesamten Stacks:
- Unten: Obsidian Vault
- Mitte: QMD Search
- Oben: Claude Code / OpenClaw
- Der Kontext fließt von unten nach oben
11 Kommentare
Warum stirbt in letzter Zeit so viel?
Hahahaha
grepist tot. Nutztripgrep.Ich habe überlegt,
qmdauszuprobieren, und die AI mit der Recherche beauftragt. Dabei hieß es, dass der Embedding-Bereich ganz ordentlich sei, aber BM25 und Query Expansion wegen der schwachen Koreanisch-Unterstützung nicht empfohlen würden...Das gilt fast in den meisten Fällen auch für BM25.
Daher ist es gut, zusätzlich einen morphologischen Analysator zu verwenden.
https://github.com/bab2min/Kiwi
Ich habe das einem Faktencheck unterzogen, und es scheint keine eindeutigen Belege dafür zu geben. Hat vielleicht jemand hier andere Erfahrungen gemacht?
Da BM25 eine eher wortbasierte Suche ist, scheint die Ansicht von galadbran sinnvoll zu sein.
Klassischer betrachtet wirkt es so, als würden klassische Information-Retrieval-Techniken auf einer stärker lokalen Ebene wiederverwendet.
~~ ist tot 💀💀💀
Ist doch einfach nur RAG;
Auf der Installationsseite wird nach einer E-Mail-Adresse gefragt, daher dachte ich, es sei ein Private Repo, aber es ist ein Public Repo.
Über den untenstehenden Link kommt ihr dorthin.
https://github.com/ArtemXTech/personal-os-skills/…