Speicherübersicht
Funktionsweise des Speichers.
Integrierte Engine
Standardmäßiges SQLite-Backend.
QMD-Engine
Local-First-Sidecar.
Speichersuche
Suchpipeline und Optimierung.
Active Memory
Speicher-Subagent für interaktive Sitzungen.
memory auf oberster Ebene in openclaw.json. Suchstandards verwenden memory.search; agentenspezifische Suchüberschreibungen verwenden agents.entries.*.memory.search.
Verwenden Sie für den empfohlenen persönlichen Agenten-Workflow
memory.search.rememberAcrossConversations. Erweiterte Steuerelemente für Zielauswahl,
Modell, Prompt und Latenz von Active Memory befinden sich unter plugins.entries.active-memory.Informationen zu beiden Aktivierungspfaden, zur Transkriptpersistenz und zu
Hinweisen für eine sichere Einführung finden Sie unter Active Memory.Gesprächsübergreifend erinnern
Konfigurieren Sie dies agentenspezifisch, wenn nur ein vertrauenswürdiger
persönlicher Agent den gesprächsübergreifenden Transkriptabruf verwenden soll:
memory.search mit einer
agentenspezifischen Überschreibung. Wenn er nicht gesetzt ist, ist er standardmäßig
nur aktiviert, wenn das globale session.dmScope nicht gesetzt oder "main" ist
und keine Bindung eine session.dmScope-Überschreibung besitzt. Jede konfigurierte
DM-Isolierung deaktiviert ihn standardmäßig. Ein explizites true oder
false hat immer Vorrang. Die Aktivierung impliziert die Indizierung von
Sitzungstranskripten und fügt sessions zu den aufgelösten Speicherquellen
des Agenten hinzu. Bei QMD aktiviert sie außerdem den Sitzungsexport dieses Agenten;
für diesen Modus ist keine separate Einstellung
memory.qmd.sessions.enabled erforderlich.
Der integrierte Speicher-Provider von OpenClaw unterstützt diesen geschützten Pfad
sowohl mit dem integrierten als auch mit dem QMD-Backend. Alternative Speicher-Provider
können weiterhin ihre eigenen Abruf-Hooks und erweiterten Active-Memory-Werkzeuge
verwenden, diese Einstellung wird jedoch übersprungen, sofern der aktuelle Provider
keinen geschützten Abruf privater Transkripte unterstützt.
openclaw doctor meldet einen nicht unterstützten Provider oder eine explizite
Active-Memory-Liste toolsAllow, in der memory_search fehlt.
Die Abrufgrenze ist enger als bei der allgemeinen Sitzungssuche:
- nur erkannte private Gespräche desselben Agenten sind zulässig
- das aktuell beantwortete Gespräch ist ausgeschlossen
- Gruppen und Kanäle sind als Quellen und Ziele ausgeschlossen
- unbekannte Gesprächsarten werden standardmäßig abgelehnt
- der Abruf in einer Sandbox kann die spezielle gesprächsübergreifende Autorisierung nicht verwenden
tools.sessions.visibility noch Sitzungsschlüssel,
Transkriptspeicherung, Zustellungsrouting oder die Berechtigungen von sessions_list,
sessions_history und sessions_send. Active Memory führt einen begrenzten,
schreibgeschützten Abrufdurchlauf aus; ein nicht verfügbarer oder wegen Zeitüberschreitung
abgebrochener Abruf blockiert die Antwort nicht.
Provider-Auswahl
Wenn
provider nicht gesetzt ist, verwendet OpenClaw OpenAI-Embeddings.
Legen Sie provider explizit fest, um Bedrock, DeepInfra, Gemini,
GitHub Copilot, Mistral, Ollama, Voyage, ein lokales GGUF-Modell oder einen
OpenAI-kompatiblen /v1/embeddings-Endpunkt zu verwenden.
Legacy-Konfigurationen, die noch provider: "auto" angeben, werden als
openai aufgelöst.
Wenn provider nicht gesetzt ist, das veraltete provider: "auto"
vorhanden ist oder provider: "none" absichtlich den reinen FTS-Modus auswählt,
kann der Speicherabruf weiterhin die lexikalische FTS-Rangfolge verwenden, wenn
Embeddings nicht verfügbar sind.
Explizite nicht lokale Provider werden standardmäßig abgelehnt. Wenn Sie
memory.search.provider auf einen konkreten, remote angebundenen Provider wie Bedrock,
DeepInfra, Gemini, GitHub Copilot, LM Studio, Mistral, Ollama, OpenAI, Voyage oder
einen OpenAI-kompatiblen benutzerdefinierten Provider setzen und dieser Provider
zur Laufzeit nicht verfügbar ist, gibt memory_search ein Ergebnis des Typs
„nicht verfügbar“ zurück, statt unbemerkt einen reinen FTS-Abruf zu verwenden.
Korrigieren Sie die Provider-/Authentifizierungskonfiguration, wechseln Sie zu
einem erreichbaren Provider oder setzen Sie provider: "none", wenn Sie bewusst
einen reinen FTS-Abruf verwenden möchten.
Benutzerdefinierte Provider-IDs
memory.search.provider kann auf einen benutzerdefinierten models.providers.<id>-Eintrag
für speicherspezifische Provider-Adapter wie ollama oder für
OpenAI-kompatible Modell-APIs wie openai-responses / openai-completions
verweisen. OpenClaw löst den api-Owner dieses Providers für den
Embedding-Adapter auf und behält dabei die benutzerdefinierte Provider-ID für
die Verarbeitung von Endpunkt, Authentifizierung und Modellpräfix bei. Dadurch
können Multi-GPU- oder Multi-Host-Konfigurationen Speicher-Embeddings einem
bestimmten lokalen Endpunkt zuweisen:
Auflösung des API-Schlüssels
Remote-Embeddings erfordern einen API-Schlüssel. Bedrock verwendet stattdessen die standardmäßige Anmeldedatenkette des AWS SDK (Instanzrollen, SSO, Zugriffsschlüssel oder einen Bedrock-API-Schlüssel).Codex OAuth deckt nur Chat/Vervollständigungen ab und erfüllt keine
Embedding-Anfragen.
Konfiguration des Remote-Endpunkts
Verwenden Sieprovider: "openai-compatible" für einen generischen OpenAI-kompatiblen
/v1/embeddings-Server, der keine globalen OpenAI-Chat-Anmeldedaten erben soll.
string
Benutzerdefinierte API-Basis-URL.
string
API-Schlüssel überschreiben.
object
Zusätzliche HTTP-Header (mit den Provider-Standards zusammengeführt).
Providerspezifische Konfiguration
Gemini
Gemini
Eingabetypen für OpenAI-Kompatibilität
Eingabetypen für OpenAI-Kompatibilität
OpenAI-kompatible Embedding-Endpunkte können providerspezifische
Änderungen an diesen Werten wirken sich auf die Identität des Embedding-Caches für die Batch-Indexierung des Providers aus. Wenn das vorgelagerte Modell die Bezeichnungen unterschiedlich behandelt, sollte anschließend der Speicher neu indexiert werden.
input_type-Anfragefelder aktivieren. Dies ist für asymmetrische
Embedding-Modelle nützlich, die unterschiedliche Bezeichnungen für Abfrage-
und Dokument-Embeddings erfordern.Bedrock
Bedrock
Bedrock-Embedding-Konfiguration
Bedrock verwendet die standardmäßige Anmeldedatenkette des AWS SDK sowie ein von OpenClaw geprüftes Bearer-Token, sodass keine API-Schlüssel in der Konfiguration gespeichert werden. Wenn OpenClaw auf EC2 mit einer für Bedrock aktivierten Instanzrolle ausgeführt wird, legen Sie lediglich Provider und Modell fest:Unterstützte Modelle (mit Familienerkennung und Standarddimensionen):
Varianten mit Durchsatzsuffix (z. B.
amazon.titan-embed-text-v1:2:8k) und Inferenzprofil-IDs mit Regionspräfix (z. B. us.amazon.titan-embed-text-v2:0) übernehmen die Konfiguration des Basismodells.Region: wird in dieser Reihenfolge ermittelt: die Überschreibung memory.search.remote.baseUrl, die Konfiguration models.providers.amazon-bedrock.baseUrl, AWS_REGION, AWS_DEFAULT_REGION und anschließend der Standardwert us-east-1.Authentifizierung: OpenClaw prüft zunächst auf AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY oder AWS_BEARER_TOKEN_BEDROCK und greift danach auf die standardmäßige Anmeldedaten-Provider-Kette des AWS SDK zurück:- Umgebungsvariablen (
AWS_ACCESS_KEY_ID+AWS_SECRET_ACCESS_KEY), sofern nicht auchAWS_PROFILEfestgelegt ist - SSO (nur wenn SSO-Felder konfiguriert sind)
- Freigegebene Anmeldedaten- und Konfigurationsdateien (
fromIni, einschließlichAWS_PROFILE) - Anmeldedatenprozess (
credential_processin der AWS-Konfigurationsdatei) - Anmeldedaten für Webidentitäts-Token
- Anmeldedaten aus ECS- oder EC2-Instanzmetadaten
InvokeModel auf das jeweilige Modell:Lokal (GGUF + llama.cpp)
Lokal (GGUF + llama.cpp)
Installieren Sie zunächst den offiziellen llama.cpp-Provider:
openclaw plugins install @openclaw/llama-cpp-provider.
Standardmodell: embeddinggemma-300m-qat-Q8_0.gguf (~0,6 GB, wird automatisch heruntergeladen). Quellcode-Checkouts erfordern weiterhin eine Genehmigung des nativen Builds: pnpm approve-builds und anschließend pnpm rebuild node-llama-cpp.Verwenden Sie die eigenständige CLI, um denselben Provider-Pfad zu überprüfen, den der Gateway verwendet:local.contextSize beeinflussen außerdem die automatische Platzierung der GPU-Schichten durch node-llama-cpp, sodass Modellgewichtungen und der angeforderte Embedding-Kontext gemeinsam eingepasst werden. openclaw memory status --deep meldet den zuletzt bekannten llama.cpp-Backend-, Geräte- und Auslagerungsstatus sowie den angeforderten Kontext und mit Zeitstempeln versehene Speicherinformationen, nachdem die Laufzeit geladen wurde; eine passive Statusabfrage lädt kein Modell.Legen Sie provider: "local" für lokale GGUF-Embeddings explizit fest. hf: und HTTP(S)-Modellreferenzen werden für explizite lokale Konfigurationen unterstützt (über die Modellauflösung von node-llama-cpp), ändern jedoch nicht den standardmäßigen Provider.Indexierungsverhalten
Speicher-Engines verwalten Synchronisierung, Batch-Verarbeitung, Überwachung und Indexierungsheuristiken nach der Compaction. OpenClaw hält diese Verhaltensweisen mit gepflegten Standardwerten aktiviert, anstatt installationsspezifische Zeitsteuerungsoptionen bereitzustellen.Konfiguration der hybriden Suche
Alle untermemory.search.query:
Der hybride Abruf bleibt aktiviert; MMR und zeitlicher Zerfall bleiben durch
die integrierte Engine-Richtlinie deaktiviert.
Vollständiges Beispiel
Zusätzliche Speicherpfade
.md-Dateien durchsucht. Die Behandlung symbolischer Verknüpfungen hängt vom aktiven Backend ab: Die integrierte Engine überspringt symbolische Verknüpfungen, während QMD dem Verhalten des zugrunde liegenden QMD-Scanners folgt.
Verwenden Sie für die agentenspezifische, agentenübergreifende Transkriptsuche agents.entries.*.memory.search.qmd.extraCollections anstelle von memory.qmd.paths. Diese zusätzlichen Sammlungen folgen derselben { path, name, pattern? }-Struktur, werden jedoch pro Agent zusammengeführt und können explizite gemeinsam verwendete Namen beibehalten, wenn der Pfad außerhalb des aktuellen Arbeitsbereichs liegt. Wenn derselbe aufgelöste Pfad sowohl in memory.qmd.paths als auch in memory.search.qmd.extraCollections vorkommt, behält QMD den ersten Eintrag bei und überspringt das Duplikat.
Multimodaler Speicher (Gemini)
Indexieren Sie Bilder und Audiodateien zusammen mit Markdown mithilfe von Gemini Embedding 2:Gilt nur für Dateien in
extraPaths. Standardspeicherstammverzeichnisse bleiben auf Markdown beschränkt. Erfordert gemini-embedding-2-preview. fallback muss "none" sein..jpg, .jpeg, .png, .webp, .gif, .heic, .heif (Bilder); .mp3, .wav, .ogg, .opus, .m4a, .aac, .flac (Audio).
Embedding-Cache
Verhindert, dass unveränderter Text bei einer Neuindexierung oder bei Transkriptaktualisierungen erneut eingebettet wird.
Batch-Indexierung
Verfügbar für
gemini, openai und voyage. Die Batch-Verarbeitung von OpenAI ist bei umfangreichen Nachindexierungen üblicherweise am schnellsten und kostengünstigsten.
Parallelität, Abfrageintervalle und Zeitüberschreitungsverhalten werden vom Provider verwaltet.
Sitzungsspeichersuche
Indexieren Sie Sitzungstranskripte und stellen Sie sie übermemory_search bereit:
Die gewöhnliche, vom Modell aufgerufene Suche in Sitzungstranskripten richtet sich nach
tools.sessions.visibility. Die standardmäßige
Sichtbarkeit tree umfasst die aktuelle Sitzung, von ihr gestartete Sitzungen und
Gruppensitzungen desselben Agenten, die über die implizite Gruppenwahrnehmung beobachtet werden. Andere,
nicht zusammenhängende Sitzungen erfordern die Sichtbarkeit agent (oder all nur, wenn auch
agentenübergreifender Abruf erforderlich ist und die Agent-zu-Agent-Richtlinie dies zulässt).
rememberAcrossConversations erweitert diese Einstellung nicht. Es stellt eine
separate, nur zur Laufzeit gültige Autorisierung bereit, die während des begrenzten
Active-Memory-Durchlaufs auf private Transkripte desselben Agenten beschränkt ist.
Die folgenden Beispiele platzieren diese Einstellungen unter memory.search auf oberster Ebene. Sie können
entsprechende Einstellungen auch in einer agentenspezifischen Überschreibung memory.search anwenden, wenn nur ein
Agent Sitzungstranskripte indizieren und durchsuchen soll.
Für den Abruf vom Gateway in Direktnachrichten durch denselben Agenten:
- Integriertes Backend
- QMD-Backend
sources: ["sessions"] Transkripte nicht von selbst nach QMD. Legen Sie
zusätzlich memory.qmd.sessions.enabled: true fest. Die übergeordnete
Einstellung rememberAcrossConversations: true bildet die Ausnahme: Sie impliziert den
erforderlichen QMD-Sitzungsexport für diesen Agenten. Implizite Exporte bleiben privat:
Sie verwenden immer den standardmäßigen internen Exportspeicherort (ein konfiguriertes
sessions.exportDir gilt nur für explizite Exporte), werden nur
beim konversationsübergreifenden Abruf dieses Agenten durchsucht und können von gewöhnlichem memory_get
nicht gelesen werden. Explizites
memory.qmd.sessions.enabled: true behält sein bestehendes Verhalten bei und macht
exportierte Transkripte zu einem Teil des gewöhnlichen Speicherkorpus.
SQLite-Vektorbeschleunigung (sqlite-vec)
Wenn sqlite-vec nicht verfügbar ist, greift OpenClaw automatisch auf die prozessinterne Kosinusähnlichkeit zurück.
Indexspeicherung
Integrierte Speicherindizes befinden sich in der OpenClaw-SQLite-Datenbank des jeweiligen Agenten unteragents/<agentId>/agent/openclaw-agent.sqlite.
QMD-Backend-Konfiguration
Legen Sie zum Aktivierenmemory.backend = "qmd" fest. Alle QMD-Einstellungen befinden sich unter memory.qmd:
searchMode: "search" arbeitet ausschließlich lexikalisch bzw. mit BM25. OpenClaw führt für diesen Modus keine semantischen Prüfungen der Vektorbereitschaft oder Wartung von QMD-Einbettungen aus, auch nicht während memory status --deep; vsearch und query erfordern weiterhin die QMD-Vektorbereitschaft und Einbettungen.
rerank: false ändert nur den QMD-Modus query und erfordert QMD 2.1 oder neuer. Im direkten CLI-Modus übergibt OpenClaw --no-rerank; im mcporter-basierten MCP-Modus übergibt es rerank: false an das vereinheitlichte Abfragewerkzeug von QMD. Lassen Sie die Einstellung weg, um das standardmäßige QMD-Reranking für Abfragen zu verwenden.
OpenClaw bevorzugt aktuelle QMD-Sammlungs- und MCP-Abfrageformate, unterstützt jedoch weiterhin ältere QMD-Versionen, indem es bei Bedarf kompatible Flags für Sammlungsmuster und ältere MCP-Werkzeugnamen ausprobiert. Wenn QMD die Unterstützung mehrerer Sammlungsfilter angibt, werden Sammlungen derselben Quelle mit einem einzigen QMD-Prozess durchsucht; ältere QMD-Builds behalten den Kompatibilitätspfad pro Sammlung bei. „Dieselbe Quelle“ bedeutet, dass dauerhafte Speichersammlungen (standardmäßige Speicherdateien sowie benutzerdefinierte Pfade) zusammen gruppiert werden, während Sammlungen von Sitzungstranskripten eine separate Gruppe bleiben, sodass der Diversifizierung nach Quellen weiterhin beide Eingaben zur Verfügung stehen.
QMD-Modellüberschreibungen verbleiben auf der QMD-Seite und nicht in der OpenClaw-Konfiguration. Wenn Sie die Modelle von QMD global überschreiben müssen, legen Sie Umgebungsvariablen wie
QMD_EMBED_MODEL, QMD_RERANK_MODEL und QMD_GENERATE_MODEL in der Laufzeitumgebung des Gateways fest.Grenzwerte
Grenzwerte
Geltungsbereich
Geltungsbereich
Steuert, welche Sitzungen QMD-Suchergebnisse erhalten können. Dasselbe Schema wie bei Der mitgelieferte Standard ist ausschließlich auf Direktnachrichten bzw. direkte Chats beschränkt und lehnt Gruppen sowie andere Kanaltypen ab.
session.sendPolicy:match.keyPrefix entspricht dem normalisierten Sitzungsschlüssel; match.rawKeyPrefix entspricht dem Rohschlüssel einschließlich agent:<id>:.Quellenangaben
Quellenangaben
memory.citations gilt für alle Backends:Vollständiges QMD-Beispiel
Dreaming
Dreaming wird unterplugins.entries.memory-core.config.dreaming konfiguriert, nicht unter memory.search.
Dreaming wird als ein geplanter Durchlauf ausgeführt und verwendet interne Leicht-/Tief-/REM-Phasen als Implementierungsdetail.
Informationen zum konzeptionellen Verhalten und zu Slash-Befehlen finden Sie unter Dreaming.
Benutzereinstellungen
Beispiel
- Dreaming schreibt den Maschinenzustand nach
memory/.dreams/. - Dreaming schreibt menschenlesbare narrative Ausgaben nach
DREAMS.md(oder in ein vorhandenesdreams.md). dreaming.modelverwendet die vorhandene Vertrauensprüfung des Plugins für Subagenten; legen Sie vor der Aktivierungplugins.entries.memory-core.subagent.allowModelOverride: truefest.- Dream Diary versucht es einmal erneut mit dem Standardmodell der Sitzung, wenn das konfigurierte Modell nicht verfügbar ist. Fehler bei der Vertrauensprüfung oder der Zulassungsliste werden protokolliert und nicht stillschweigend erneut versucht.
- Die Richtlinie und Schwellenwerte der Leicht-/Tief-/REM-Phasen sind internes Verhalten und keine benutzerseitige Konfiguration.