QMD Memory Engine
QMD ist ein lokaler Search-Sidecar, der neben OpenClaw ausgeführt wird. Er kombiniert BM25, Vektorsuche und Reranking in einer einzigen Binärdatei und kann Inhalte über Ihre Workspace-Memory-Dateien hinaus indizieren.Was es gegenüber der integrierten Lösung ergänzt
- Reranking und Query-Erweiterung für besseren Recall.
- Zusätzliche Verzeichnisse indizieren — Projektdokumentation, Teamnotizen, alles auf der Festplatte.
- Sitzungstranskripte indizieren — frühere Unterhaltungen wiederfinden.
- Vollständig lokal — läuft über Bun + node-llama-cpp, lädt GGUF-Modelle automatisch herunter.
- Automatischer Fallback — wenn QMD nicht verfügbar ist, wechselt OpenClaw nahtlos auf die integrierte Engine zurück.
Erste Schritte
Voraussetzungen
- QMD installieren:
npm install -g @tobilu/qmdoderbun install -g @tobilu/qmd - SQLite-Build, das Erweiterungen erlaubt (
brew install sqliteauf macOS). - QMD muss im
PATHdes Gateway vorhanden sein. - macOS und Linux funktionieren sofort. Windows wird am besten über WSL2 unterstützt.
Aktivieren
~/.openclaw/agents/<agentId>/qmd/ und verwaltet den Lebenszyklus des Sidecars
automatisch — Collections, Updates und Embedding-Läufe werden für Sie übernommen.
Es bevorzugt die aktuellen QMD-Collection- und MCP-Abfrageformen, greift aber weiterhin auf
Legacy-Collection-Flags mit --mask und ältere MCP-Tool-Namen zurück, wenn nötig.
So funktioniert der Sidecar
- OpenClaw erstellt Collections aus Ihren Workspace-Memory-Dateien und allen
konfigurierten
memory.qmd.paths, führt dannqmd update+qmd embedbeim Start und regelmäßig aus (standardmäßig alle 5 Minuten). - Die standardmäßige Workspace-Collection verfolgt
MEMORY.mdsowie denmemory/- Baum. Kleingeschriebenesmemory.mdbleibt ein Bootstrap-Fallback, keine separate QMD- Collection. - Die Aktualisierung beim Start läuft im Hintergrund, damit der Chat-Start nicht blockiert wird.
- Suchvorgänge verwenden den konfigurierten
searchMode(Standard:search; unterstützt auchvsearchundquery). Wenn ein Modus fehlschlägt, versucht OpenClaw es erneut mitqmd query. - Wenn QMD vollständig fehlschlägt, greift OpenClaw auf die integrierte SQLite-Engine zurück.
Die erste Suche kann langsam sein — QMD lädt GGUF-Modelle (~2 GB) für
Reranking und Query-Erweiterung beim ersten
qmd query-Lauf automatisch herunter.Modell-Overrides
QMD-Modell-Umgebungsvariablen werden unverändert aus dem Gateway- Prozess durchgereicht, sodass Sie QMD global abstimmen können, ohne neue OpenClaw-Konfiguration hinzuzufügen:Zusätzliche Pfade indizieren
Richten Sie QMD auf zusätzliche Verzeichnisse aus, damit diese durchsuchbar werden:qmd/<collection>/<relative-path> in
Suchergebnissen. memory_get versteht dieses Präfix und liest aus dem korrekten
Collection-Root.
Sitzungstranskripte indizieren
Aktivieren Sie die Sitzungsindizierung, um frühere Unterhaltungen wiederzufinden:~/.openclaw/agents/<id>/qmd/sessions/ exportiert.
Suchbereich
Standardmäßig werden QMD-Suchergebnisse in direkten Sitzungen und Channel-Sitzungen angezeigt (nicht in Gruppen). Konfigurieren Siememory.qmd.scope, um dies zu ändern:
Zitate
Wennmemory.citations auf auto oder on gesetzt ist, enthalten Such-Snippets eine
Source: <path#line>-Fußzeile. Setzen Sie memory.citations = "off", um die Fußzeile wegzulassen,
während der Pfad intern weiterhin an den Agent übergeben wird.
Wann verwenden
Wählen Sie QMD, wenn Sie Folgendes benötigen:- Reranking für höherwertige Ergebnisse.
- Suche in Projektdokumentation oder Notizen außerhalb des Workspace.
- Wiederfinden vergangener Sitzungsunterhaltungen.
- Vollständig lokale Suche ohne API-Schlüssel.
Fehlerbehebung
QMD nicht gefunden? Stellen Sie sicher, dass sich die Binärdatei imPATH des Gateway befindet. Wenn OpenClaw
als Dienst läuft, erstellen Sie einen Symlink:
sudo ln -s ~/.bun/bin/qmd /usr/local/bin/qmd.
Erste Suche sehr langsam? QMD lädt GGUF-Modelle bei der ersten Verwendung herunter. Wärmen Sie sie vor
mit qmd query "test" unter Verwendung derselben XDG-Verzeichnisse, die OpenClaw verwendet.
Suche läuft in ein Timeout? Erhöhen Sie memory.qmd.limits.timeoutMs (Standard: 4000ms).
Setzen Sie den Wert auf 120000 für langsamere Hardware.
Leere Ergebnisse in Gruppenchats? Prüfen Sie memory.qmd.scope — standardmäßig sind nur
direkte Sitzungen und Channel-Sitzungen erlaubt.
Workspace-sichtbare temporäre Repositories verursachen ENAMETOOLONG oder fehlerhafte Indizierung?
Die QMD-Durchquerung folgt derzeit dem zugrunde liegenden Verhalten des QMD-Scanners statt
den integrierten Symlink-Regeln von OpenClaw. Bewahren Sie temporäre Monorepo-Checkouts unter
versteckten Verzeichnissen wie .tmp/ oder außerhalb indizierter QMD-Roots auf, bis QMD
zyklussichere Traversierung oder explizite Ausschlusssteuerungen bereitstellt.
Konfiguration
Für die vollständige Konfigurationsoberfläche (memory.qmd.*), Suchmodi, Aktualisierungsintervalle,
Bereichsregeln und alle weiteren Optionen siehe die
Referenz zur Memory-Konfiguration.