Sessions and memory
Integrierte Memory-Engine
Die integrierte Engine ist das standardmäßige Memory-Backend. Sie speichert Ihren Memory-Index in einer SQLite-Datenbank pro Agent und benötigt für die ersten Schritte keine zusätzlichen Abhängigkeiten.
Funktionsumfang
- Schlüsselwortsuche über FTS5-Volltextindizierung (BM25-Bewertung).
- Vektorsuche über Embeddings eines beliebigen unterstützten Providers.
- Hybridsuche, die beide Ansätze kombiniert, um optimale Ergebnisse zu erzielen.
- CJK-Unterstützung über Trigramm-Tokenisierung für Chinesisch, Japanisch und Koreanisch.
- sqlite-vec-Beschleunigung für Vektorabfragen innerhalb der Datenbank (optional).
Erste Schritte
Standardmäßig verwendet die integrierte Engine OpenAI-Embeddings. Wenn OPENAI_API_KEY oder
models.providers.openai.apiKey bereits konfiguriert ist, funktioniert die Vektorsuche
ohne zusätzliche Memory-Konfiguration.
So legen Sie explizit einen Provider fest:
{ memory: { search: { provider: "openai", }, },}Ohne Embedding-Provider ist nur die Schlüsselwortsuche verfügbar.
Um lokale GGUF-Embeddings zu erzwingen, installieren Sie das offizielle llama.cpp-Provider-
Plugin und verweisen Sie dann mit local.modelPath auf eine GGUF-Datei:
openclaw plugins install @openclaw/llama-cpp-provider{ memory: { search: { provider: "local", fallback: "none", local: { modelPath: "~/.node-llama-cpp/models/embeddinggemma-300m-qat-Q8_0.gguf", }, }, },}Unterstützte Embedding-Provider
| Provider | ID | Hinweise |
|---|---|---|
| Bedrock | bedrock |
Verwendet die AWS-Anmeldedatenkette |
| DeepInfra | deepinfra |
Standard: BAAI/bge-m3 |
| Gemini | gemini |
Unterstützt multimodale Inhalte (Bild + Audio) |
| GitHub Copilot | github-copilot |
Verwendet Ihr Copilot-Abonnement |
| LM Studio | lmstudio |
Lokal/selbst gehostet |
| Local | local |
@openclaw/llama-cpp-provider |
| Mistral | mistral |
|
| Ollama | ollama |
Lokal/selbst gehostet |
| OpenAI | openai |
Standard: text-embedding-3-small |
| OpenAI-kompatibel | openai-compatible |
Generischer /v1/embeddings-Endpunkt |
| Voyage | voyage |
Legen Sie memory.search.provider fest, um von OpenAI zu einem anderen Provider zu wechseln.
Funktionsweise der Indizierung
OpenClaw indiziert MEMORY.md und memory/*.md in Abschnitten (standardmäßig 400 Token mit
einer Überlappung von 80 Token) und speichert sie in einer SQLite-Datenbank pro Agent.
- Indexspeicherort: die Datenbank des zuständigen Agenten unter
~/.openclaw/agents/<agentId>/agent/openclaw-agent.sqlite - Speicherverwaltung: SQLite-WAL-Begleitdateien werden durch regelmäßige Checkpoints und Checkpoints beim Herunterfahren begrenzt.
- Dateiüberwachung: Änderungen an Memory-Dateien lösen eine verzögerte Neuindizierung aus (standardmäßig 1.5s).
- Automatische Neuindizierung: Der Index wird automatisch neu aufgebaut, wenn sich der Embedding- Provider, das Modell, die Abschnittskonfiguration, die konfigurierten Quellen oder der Geltungsbereich ändern.
- Neuindizierung bei Bedarf:
openclaw memory index --force
Einsatzbereiche
Die integrierte Engine ist für die meisten Benutzer die richtige Wahl:
- Funktioniert ohne zusätzliche Abhängigkeiten sofort.
- Bietet eine leistungsfähige Schlüsselwort- und Vektorsuche.
- Unterstützt alle Embedding-Provider.
- Die Hybridsuche kombiniert die Vorteile beider Abrufansätze.
Erwägen Sie einen Wechsel zu QMD, wenn Sie eine Neugewichtung, eine Abfrage- erweiterung oder die Indizierung von Verzeichnissen außerhalb des Arbeitsbereichs benötigen.
Erwägen Sie Honcho, wenn Sie sitzungsübergreifendes Memory mit automatischer Benutzermodellierung wünschen.
Fehlerbehebung
Memory-Suche deaktiviert? Überprüfen Sie openclaw memory status. Wenn kein Provider
erkannt wird, legen Sie explizit einen fest oder fügen Sie einen API-Schlüssel hinzu.
Lokaler Provider nicht erkannt? Vergewissern Sie sich, dass der lokale Pfad vorhanden ist, und führen Sie Folgendes aus:
openclaw memory status --deep --agent mainopenclaw memory index --force --agent mainSowohl eigenständige CLI-Befehle als auch das Gateway verwenden dieselbe Provider-ID local.
Legen Sie memory.search.provider: "local" fest, wenn Sie lokale Embeddings verwenden möchten.
Veraltete Ergebnisse? Führen Sie openclaw memory index --force aus, um den Index neu aufzubauen. Die Dateiüberwachung
kann in seltenen Grenzfällen Änderungen übersehen.
sqlite-vec wird nicht geladen? OpenClaw greift automatisch auf die prozessinterne Kosinus-
Ähnlichkeit zurück. openclaw memory status --deep meldet den lokalen
Vektorspeicher getrennt vom Embedding-Provider, daher verweist Vector store: unavailable auf das Laden von sqlite-vec, während Embeddings: unavailable
auf die Bereitschaft des Providers, der Authentifizierung oder des Modells verweist. Prüfen Sie die Protokolle auf den konkreten Ladefehler.
Konfiguration
Informationen zur Einrichtung von Embedding-Providern, zur Optimierung der Hybridsuche (Gewichtungen, MMR, zeitlicher Verfall), zur Batch-Indizierung, zu multimodalem Memory, sqlite-vec, zusätzlichen Pfaden und allen anderen Konfigurationsoptionen finden Sie in der Referenz zur Memory-Konfiguration.