Geheugenoverzicht
Hoe het geheugen werkt.
Ingebouwde engine
Standaard SQLite-backend.
QMD-engine
Local-first-sidecar.
Geheugen doorzoeken
Zoekpijplijn en afstemming.
Active Memory
Geheugensubagent voor interactieve sessies.
memory op het hoogste niveau in openclaw.json. Zoekstandaarden gebruiken memory.search; zoekspecifieke overschrijvingen per agent gebruiken agents.entries.*.memory.search.
Gebruik voor de aanbevolen workflow voor persoonlijke agents
memory.search.rememberAcrossConversations. Geavanceerde instellingen voor doelbepaling,
model, prompt en latentie van Active Memory staan onder plugins.entries.active-memory.Zie Active Memory voor beide activeringspaden,
persistentie van transcripten en richtlijnen voor een veilige uitrol.Onthouden tussen gesprekken
Configureer dit per agent wanneer alleen een vertrouwde persoonlijke agent
transcripten uit andere gesprekken mag ophalen:
memory.search met een
overschrijving per agent. Wanneer deze niet is ingesteld, is deze standaard alleen ingeschakeld als globale
session.dmScope niet is ingesteld of "main" is en geen binding een overschrijving voor session.dmScope
heeft. Elke geconfigureerde DM-isolatie schakelt deze standaard uit. Een expliciete true of
false heeft altijd voorrang. Als dit wordt ingeschakeld, wordt sessietranscriptindexering geactiveerd en
wordt sessions toegevoegd aan de opgeloste geheugenbronnen van de agent. Met QMD wordt ook
de sessie-export van die agent ingeschakeld; voor deze modus is geen afzonderlijke instelling
memory.qmd.sessions.enabled vereist.
De ingebouwde geheugenprovider van OpenClaw ondersteunt dit beveiligde pad met zowel de
ingebouwde backend als de QMD-backend. Alternatieve geheugenproviders kunnen hun eigen
ophaalhooks en geavanceerde Active Memory-tools blijven gebruiken, maar deze instelling wordt overgeslagen
tenzij de huidige provider beveiligd ophalen van privétranscripten ondersteunt.
openclaw doctor meldt een niet-ondersteunde provider of een expliciete Active Memory-lijst
toolsAllow waarin memory_search ontbreekt.
De ophaalgrens is beperkter dan bij algemeen zoeken in sessies:
- alleen herkende privégesprekken van dezelfde agent komen in aanmerking
- het gesprek dat wordt beantwoord, wordt uitgesloten
- groepen en kanalen worden uitgesloten als bronnen en bestemmingen
- onbekende gesprekstypen worden standaard geweigerd
- ophalen in een sandbox kan de speciale autorisatie voor meerdere gesprekken niet gebruiken
tools.sessions.visibility, sessiesleutels,
transcriptopslag, afleveringsroutering of de machtigingen van sessions_list,
sessions_history en sessions_send niet. Active Memory voert een begrensde
alleen-lezen-ophaalronde uit; niet-beschikbaar of door een time-out afgebroken ophalen blokkeert het
antwoord niet.
Providerselectie
Wanneer
provider niet is ingesteld, gebruikt OpenClaw embeddings van OpenAI. Stel provider
expliciet in om Bedrock, DeepInfra, Gemini, GitHub Copilot, Mistral, Ollama,
Voyage, een lokaal GGUF-model of een OpenAI-compatibel /v1/embeddings-eindpunt te gebruiken.
Verouderde configuraties die nog provider: "auto" vermelden, worden omgezet naar openai.
Wanneer provider niet is ingesteld, de verouderde provider: "auto" aanwezig is, of
provider: "none" bewust de modus met alleen FTS selecteert, kan het ophalen uit het geheugen nog steeds
lexicale FTS-rangschikking gebruiken wanneer embeddings niet beschikbaar zijn.
Expliciete niet-lokale providers worden standaard geweigerd. Als je memory.search.provider instelt op
een concrete provider met een externe backend, zoals Bedrock, DeepInfra, Gemini, GitHub
Copilot, LM Studio, Mistral, Ollama, OpenAI, Voyage of een OpenAI-compatibele
aangepaste provider, en die provider tijdens runtime niet beschikbaar is, retourneert memory_search
een resultaat dat aangeeft dat deze niet beschikbaar is, in plaats van stilzwijgend alleen FTS-ophalen te gebruiken. Herstel de
provider-/authenticatieconfiguratie, schakel over naar een bereikbare provider of stel
provider: "none" in als je bewust alleen FTS wilt gebruiken voor het ophalen.
Aangepaste provider-ID’s
memory.search.provider kan verwijzen naar een aangepaste models.providers.<id>-vermelding voor geheugenspecifieke provideradapters zoals ollama, of voor OpenAI-compatibele model-API’s zoals openai-responses / openai-completions. OpenClaw bepaalt de eigenaar van api van die provider voor de embeddingadapter, terwijl de aangepaste provider-ID behouden blijft voor de verwerking van eindpunten, authenticatie en modelvoorvoegsels. Hierdoor kunnen opstellingen met meerdere GPU’s of hosts geheugenembeddings aan een specifiek lokaal eindpunt toewijzen:
API-sleutel bepalen
Externe embeddings vereisen een API-sleutel. Bedrock gebruikt in plaats daarvan de standaardreferentieketen van de AWS SDK (instancerollen, SSO, toegangssleutels of een Bedrock-API-sleutel).Codex OAuth dekt alleen chat/voltooiingen en voldoet niet aan embeddingverzoeken.
Configuratie van extern eindpunt
Gebruikprovider: "openai-compatible" voor een generieke OpenAI-compatibele
/v1/embeddings-server die geen globale OpenAI-chatreferenties mag overnemen.
string
Aangepaste basis-URL voor de API.
string
API-sleutel overschrijven.
object
Extra HTTP-headers (samengevoegd met de standaardwaarden van de provider).
Providerspecifieke configuratie
Gemini
Gemini
Invoertypen voor OpenAI-compatibele eindpunten
Invoertypen voor OpenAI-compatibele eindpunten
OpenAI-compatibele embeddingeindpunten kunnen providerspecifieke aanvraagvelden voor Het wijzigen van deze waarden beïnvloedt de identiteit van de embeddingcache voor batchindexering door de provider en moet worden gevolgd door een herindexering van het geheugen wanneer het upstreammodel de labels anders behandelt.
input_type inschakelen. Dit is nuttig voor asymmetrische embeddingmodellen die verschillende labels vereisen voor embeddings van zoekopdrachten en documenten.Bedrock
Bedrock
Configuratie voor Bedrock-embeddings
Bedrock gebruikt de standaardreferentieketen van de AWS SDK plus een door OpenClaw gecontroleerd bearertoken, zodat er geen API-sleutels in de configuratie worden opgeslagen. Als OpenClaw op EC2 draait met een voor Bedrock ingeschakelde instantiëringsrol, hoef je alleen de provider en het model in te stellen:Ondersteunde modellen (met detectie van de familie en standaarddimensies):
Varianten met een throughputachtervoegsel (bijvoorbeeld
amazon.titan-embed-text-v1:2:8k) en inferentieprofiel-ID’s met een regiovoorvoegsel (bijvoorbeeld us.amazon.titan-embed-text-v2:0) nemen de configuratie van het basismodel over.Regio: wordt in deze volgorde bepaald: de overschrijving memory.search.remote.baseUrl, de configuratie models.providers.amazon-bedrock.baseUrl, AWS_REGION, AWS_DEFAULT_REGION, en vervolgens de standaardwaarde us-east-1.Authenticatie: OpenClaw controleert eerst op AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY of AWS_BEARER_TOKEN_BEDROCK en valt daarna terug op de standaardketen van referentieproviders van de AWS SDK:- Omgevingsvariabelen (
AWS_ACCESS_KEY_ID+AWS_SECRET_ACCESS_KEY), tenzijAWS_PROFILEook is ingesteld - SSO (alleen wanneer SSO-velden zijn geconfigureerd)
- Gedeelde referentie- en configuratiebestanden (
fromIni, inclusiefAWS_PROFILE) - Referentieproces (
credential_processin het AWS-configuratiebestand) - Referenties voor webidentiteitstokens
- Referenties uit ECS- of EC2-instantiemetadata
InvokeModel tot het specifieke model:Lokaal (GGUF + llama.cpp)
Lokaal (GGUF + llama.cpp)
Installeer eerst de officiële llama.cpp-provider:
openclaw plugins install @openclaw/llama-cpp-provider.
Standaardmodel: embeddinggemma-300m-qat-Q8_0.gguf (~0.6 GB, automatisch gedownload). Voor broncodecheck-outs blijft goedkeuring voor een native build vereist: pnpm approve-builds en vervolgens pnpm rebuild node-llama-cpp.Gebruik de zelfstandige CLI om hetzelfde providerpad te verifiëren dat de Gateway gebruikt:local.contextSize sturen ook de automatische plaatsing van GPU-lagen door node-llama-cpp aan, zodat de modelgewichten en de aangevraagde embeddingcontext samen passen. openclaw memory status --deep rapporteert de laatst bekende llama.cpp-backend, het apparaat, de offload, de aangevraagde context en geheugengegevens met tijdstempel nadat de runtime is geladen; passieve status laadt geen model.Stel provider: "local" expliciet in voor lokale GGUF-embeddings. hf: en HTTP(S)-modelverwijzingen worden ondersteund voor expliciete lokale configuraties (via de modelresolutie van node-llama-cpp), maar ze wijzigen de standaardprovider niet.Indexeringsgedrag
Geheugenengines beheren synchronisatie, batchverwerking, bewaking en heuristieken voor indexering na Compaction. OpenClaw houdt dit gedrag ingeschakeld met onderhouden standaardwaarden in plaats van tijdschakelaars per installatie beschikbaar te stellen.Configuratie voor hybride zoeken
Alles ondermemory.search.query:
Hybride opvraging blijft ingeschakeld; MMR en tijdsverval blijven uitgeschakeld door
het ingebouwde enginebeleid.
Volledig voorbeeld
Aanvullende geheugenpaden
.md-bestanden. De afhandeling van symbolische koppelingen hangt af van de actieve backend: de ingebouwde engine slaat symbolische koppelingen over, terwijl QMD het gedrag van de onderliggende QMD-scanner volgt.
Gebruik voor agentgebonden zoekopdrachten in transcripties van andere agents agents.entries.*.memory.search.qmd.extraCollections in plaats van memory.qmd.paths. Die aanvullende verzamelingen volgen dezelfde { path, name, pattern? }-structuur, maar worden per agent samengevoegd en kunnen expliciete gedeelde namen behouden wanneer het pad buiten de huidige werkruimte wijst. Als hetzelfde opgeloste pad zowel in memory.qmd.paths als in memory.search.qmd.extraCollections voorkomt, behoudt QMD de eerste vermelding en slaat het duplicaat over.
Multimodaal geheugen (Gemini)
Indexeer afbeeldingen en audio naast Markdown met Gemini Embedding 2:Alleen van toepassing op bestanden in
extraPaths. Standaardgeheugenroots blijven uitsluitend voor Markdown. Vereist gemini-embedding-2-preview. fallback moet "none" zijn..jpg, .jpeg, .png, .webp, .gif, .heic, .heif (afbeeldingen); .mp3, .wav, .ogg, .opus, .m4a, .aac, .flac (audio).
Embeddingcache
Voorkomt dat ongewijzigde tekst opnieuw wordt ingebed tijdens herindexering of transcriptupdates.
Batchindexering
Beschikbaar voor
gemini, openai en voyage. OpenAI-batchverwerking is doorgaans het snelst en goedkoopst voor grote aanvullingen met historische gegevens.
Gelijktijdigheid, polling en time-outgedrag worden door de provider beheerd.
Zoeken in sessiegeheugen
Indexeer sessietranscripties en maak ze beschikbaar viamemory_search:
Gewone, door het model aangeroepen zoekopdrachten in sessietranscripten volgen
tools.sessions.visibility. De standaardzichtbaarheid
tree maakt de huidige sessie zichtbaar, evenals sessies die hierdoor zijn gestart en
groepssessies van dezelfde agent die via omgevingsbewustzijn van groepen worden gevolgd. Voor andere,
niet-gerelateerde sessies is zichtbaarheid agent vereist (of all alleen wanneer herinneringen
tussen agents ook vereist zijn en het agent-naar-agentbeleid dit toestaat).
rememberAcrossConversations verruimt die instelling niet. Het biedt
een afzonderlijke, uitsluitend voor runtime geldende autorisatie die tijdens de begrensde Active Memory-pass
beperkt is tot privétranscripten van dezelfde agent.
In de onderstaande voorbeelden staan deze instellingen onder memory.search op het hoogste niveau. Je kunt ook
gelijkwaardige instellingen toepassen in een memory.search-override per agent wanneer slechts één
agent sessietranscripten moet indexeren en doorzoeken.
Voor herinneringen van dezelfde agent van gateway naar DM:
- Ingebouwde backend
- QMD-backend
sources: ["sessions"] op zichzelf geen transcripten naar QMD. Stel ook
memory.qmd.sessions.enabled: true in. De instelling op hoger niveau
rememberAcrossConversations: true vormt de uitzondering: deze impliceert de
vereiste export van QMD-sessies voor die agent. Impliciete exports blijven privé:
ze gebruiken altijd de standaard interne exportlocatie (een geconfigureerde
sessions.exportDir geldt alleen voor expliciete exports), worden alleen doorzocht
tijdens de herinneringen tussen gesprekken van die agent en gewone memory_get
kan ze niet lezen. Expliciete
memory.qmd.sessions.enabled: true behoudt het bestaande gedrag en maakt
geëxporteerde transcripten onderdeel van de gewone geheugencorpus.
SQLite-vectorversnelling (sqlite-vec)
Wanneer sqlite-vec niet beschikbaar is, valt OpenClaw automatisch terug op cosinusgelijkenis binnen het proces.
Indexopslag
Ingebouwde geheugenindexen staan in de OpenClaw SQLite-database van elke agent opagents/<agentId>/agent/openclaw-agent.sqlite.
Configuratie van de QMD-backend
Stelmemory.backend = "qmd" in om deze in te schakelen. Alle QMD-instellingen staan onder memory.qmd:
searchMode: "search" is uitsluitend lexicaal/BM25. OpenClaw voert voor die modus geen gereedheidscontroles voor semantische vectoren of onderhoud van QMD-embeddings uit, ook niet tijdens memory status --deep; vsearch en query blijven QMD-vectorgereedheid en embeddings vereisen.
rerank: false wijzigt alleen de QMD-query-modus en vereist QMD 2.1 of nieuwer. In directe CLI-modus geeft OpenClaw --no-rerank door; in door mcporter ondersteunde MCP-modus geeft het rerank: false door aan QMD’s uniforme querytool. Laat dit oningesteld om het standaardgedrag van QMD voor het herrangschikken van query’s te gebruiken.
OpenClaw geeft de voorkeur aan actuele QMD-collectie- en MCP-querystructuren, maar houdt oudere QMD-releases werkend door waar nodig compatibele vlaggen voor collectiepatronen en oudere MCP-toolnamen te proberen. Wanneer QMD ondersteuning voor meerdere collectiefilters aangeeft, worden collecties met dezelfde bron met één QMD-proces doorzocht; oudere QMD-builds behouden het compatibiliteitspad per collectie. Dezelfde bron betekent dat duurzame geheugencollecties (standaardgeheugenbestanden plus aangepaste paden) samen worden gegroepeerd, terwijl collecties met sessietranscripten een afzonderlijke groep blijven, zodat brondiversificatie nog steeds beide invoerbronnen heeft.
Overrides voor QMD-modellen blijven aan de QMD-zijde en niet in de OpenClaw-configuratie. Als je de modellen van QMD globaal moet overschrijven, stel dan omgevingsvariabelen zoals
QMD_EMBED_MODEL, QMD_RERANK_MODEL en QMD_GENERATE_MODEL in de runtimeomgeving van de Gateway in.Limieten
Limieten
Bereik
Bereik
Bepaalt welke sessies QMD-zoekresultaten kunnen ontvangen. Hetzelfde schema als De meegeleverde standaard staat alleen DM/direct toe en weigert groepen en andere kanaaltypen.
session.sendPolicy:match.keyPrefix komt overeen met de genormaliseerde sessiesleutel; match.rawKeyPrefix komt overeen met de onbewerkte sleutel inclusief agent:<id>:.Citaten
Citaten
memory.citations geldt voor alle backends:Volledig QMD-voorbeeld
Dreaming
Dreaming wordt geconfigureerd onderplugins.entries.memory-core.config.dreaming, niet onder memory.search.
Dreaming wordt uitgevoerd als één geplande controlecyclus en gebruikt interne lichte/diepe/REM-fasen als implementatiedetail.
Zie Dreaming voor conceptueel gedrag en slash-opdrachten.
Gebruikersinstellingen
Voorbeeld
- Dreaming schrijft machinestatus naar
memory/.dreams/. - Dreaming schrijft voor mensen leesbare verhalende uitvoer naar
DREAMS.md(of bestaandedreams.md). dreaming.modelgebruikt de bestaande vertrouwenspoort voor pluginsubagents; stelplugins.entries.memory-core.subagent.allowModelOverride: truein voordat je dit inschakelt.- Dream Diary probeert het eenmaal opnieuw met het standaardsessiemodel wanneer het geconfigureerde model niet beschikbaar is. Fouten met vertrouwen of toelatingslijsten worden geregistreerd en niet stilzwijgend opnieuw geprobeerd.
- Het beleid en de drempelwaarden voor de lichte/diepe/REM-fasen zijn intern gedrag, geen gebruikersconfiguratie.