Memory-Suche
memory_search findet relevante Notizen aus Ihren Memory-Dateien, auch wenn die
Formulierung vom Originaltext abweicht. Dazu wird der Memory-Inhalt in kleine
Chunks indiziert und mit Embeddings, Keywords oder beidem durchsucht.
Schnelleinstieg
Wenn Sie einen API-Schlüssel für OpenAI, Gemini, Voyage oder Mistral konfiguriert haben, funktioniert die Memory-Suche automatisch. So legen Sie einen Provider explizit fest:
{
agents: {
defaults: {
memorySearch: {
provider: "openai", // or "gemini", "local", "ollama", etc.
},
},
},
}
Für lokale Embeddings ohne API-Schlüssel verwenden Sie provider: "local" (erfordert
node-llama-cpp).
Unterstützte Provider
| Provider | ID | Benötigt API-Schlüssel | Hinweise |
|---|
| OpenAI | openai | Ja | Automatisch erkannt, schnell |
| Gemini | gemini | Ja | Unterstützt Bild-/Audio-Indizierung |
| Voyage | voyage | Ja | Automatisch erkannt |
| Mistral | mistral | Ja | Automatisch erkannt |
| Ollama | ollama | Nein | Lokal, muss explizit gesetzt werden |
| Local | local | Nein | GGUF-Modell, Download ca. 0,6 GB |
So funktioniert die Suche
OpenClaw führt zwei Retrieval-Pfade parallel aus und führt die Ergebnisse zusammen:
- Vektorsuche findet Notizen mit ähnlicher Bedeutung („gateway host“ passt zu
„dem Rechner, auf dem OpenClaw läuft“).
- BM25-Keyword-Suche findet exakte Treffer (IDs, Fehlerstrings, Konfigurationsschlüssel).
Wenn nur ein Pfad verfügbar ist (keine Embeddings oder kein FTS), läuft der andere allein.
Verbesserung der Suchqualität
Zwei optionale Funktionen helfen, wenn Sie einen großen Notizverlauf haben:
Zeitlicher Abfall
Alte Notizen verlieren nach und nach an Ranking-Gewicht, damit aktuelle Informationen zuerst erscheinen.
Mit der Standard-Halbwertszeit von 30 Tagen erzielt eine Notiz vom letzten Monat 50 % ihres
ursprünglichen Gewichts. Dauerhafte Dateien wie MEMORY.md werden nie abgeschwächt.
Aktivieren Sie den zeitlichen Abfall, wenn Ihr Agent monatelange tägliche Notizen hat und veraltete
Informationen immer wieder höher eingestuft werden als aktueller Kontext.
MMR (Diversität)
Reduziert redundante Ergebnisse. Wenn fünf Notizen alle dieselbe Router-Konfiguration erwähnen, sorgt MMR
dafür, dass die besten Ergebnisse verschiedene Themen abdecken, statt sich zu wiederholen.
Aktivieren Sie MMR, wenn memory_search immer wieder nahezu identische Ausschnitte aus
verschiedenen täglichen Notizen zurückgibt.
Beides aktivieren
{
agents: {
defaults: {
memorySearch: {
query: {
hybrid: {
mmr: { enabled: true },
temporalDecay: { enabled: true },
},
},
},
},
},
}
Multimodaler Memory
Mit Gemini Embedding 2 können Sie Bilder und Audiodateien zusammen mit
Markdown indizieren. Suchabfragen bleiben textbasiert, werden aber mit visuellen und Audio-Inhalten abgeglichen. Siehe die Konfigurationsreferenz für Memory für die
Einrichtung.
Sitzungsspeicher-Suche
Optional können Sie Sitzungsprotokolle indizieren, damit memory_search
frühere Unterhaltungen abrufen kann. Dies ist ein Opt-in über
memorySearch.experimental.sessionMemory. Siehe die
Konfigurationsreferenz für Details.
Fehlerbehebung
Keine Ergebnisse? Führen Sie openclaw memory status aus, um den Index zu prüfen. Wenn er leer ist, führen Sie
openclaw memory index --force aus.
Nur Keyword-Treffer? Ihr Embedding-Provider ist möglicherweise nicht konfiguriert. Prüfen Sie
openclaw memory status --deep.
CJK-Text wird nicht gefunden? Erstellen Sie den FTS-Index mit
openclaw memory index --force neu.