Deze pagina vermeldt elke configuratieknop voor OpenClaw-geheugenzoekopdrachten. Zie voor conceptuele overzichten:Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Memory overview
Hoe geheugen werkt.
Builtin engine
Standaard SQLite-backend.
QMD engine
Local-first sidecar.
Memory search
Zoekpijplijn en afstemming.
Active memory
Geheugen-subagent voor interactieve sessies.
agents.defaults.memorySearch in openclaw.json, tenzij anders vermeld.
Als je zoekt naar de functieschakelaar en subagentconfiguratie voor actief geheugen, die staat onder
plugins.entries.active-memory in plaats van memorySearch.Actief geheugen gebruikt een model met twee poorten:- de Plugin moet ingeschakeld zijn en gericht zijn op de huidige agent-id
- het verzoek moet een geschikte interactieve permanente chatsessie zijn
Providerselectie
| Sleutel | Type | Standaard | Beschrijving |
|---|---|---|---|
provider | string | automatisch gedetecteerd | Embeddingadapter-id zoals bedrock, deepinfra, gemini, github-copilot, local, mistral, ollama, openai of voyage; kan ook een geconfigureerde models.providers.<id> zijn waarvan api naar een van die adapters wijst |
model | string | providerstandaard | Naam van het embeddingmodel |
fallback | string | "none" | Fallbackadapter-id wanneer de primaire adapter faalt |
enabled | boolean | true | Geheugenzoekopdrachten in- of uitschakelen |
Volgorde voor automatische detectie
Wanneerprovider niet is ingesteld, selecteert OpenClaw de eerste beschikbare optie:
github-copilot
Geselecteerd als een GitHub Copilot-token kan worden opgelost (env-var of authprofiel).
ollama wordt ondersteund, maar niet automatisch gedetecteerd (stel het expliciet in).
Aangepaste provider-id’s
memorySearch.provider kan verwijzen naar een aangepaste models.providers.<id>-vermelding. OpenClaw lost de api-eigenaar van die provider op voor de embeddingadapter, terwijl de aangepaste provider-id behouden blijft voor endpoint-, auth- en modelprefixafhandeling. Zo kunnen multi-GPU- of multi-host-setups geheugenembeddings toewijzen aan een specifiek lokaal endpoint:
API-sleutelresolutie
Remote embeddings vereisen een API-sleutel. Bedrock gebruikt in plaats daarvan de standaard AWS SDK-referentieketen (instantierollen, SSO, toegangssleutels).| Provider | Env-var | Configuratiesleutel |
|---|---|---|
| Bedrock | AWS-referentieketen | Geen API-sleutel nodig |
| DeepInfra | DEEPINFRA_API_KEY | models.providers.deepinfra.apiKey |
| Gemini | GEMINI_API_KEY | models.providers.google.apiKey |
| GitHub Copilot | COPILOT_GITHUB_TOKEN, GH_TOKEN, GITHUB_TOKEN | Authprofiel via apparaatlogin |
| Mistral | MISTRAL_API_KEY | models.providers.mistral.apiKey |
| Ollama | OLLAMA_API_KEY (placeholder) | — |
| OpenAI | OPENAI_API_KEY | models.providers.openai.apiKey |
| Voyage | VOYAGE_API_KEY | models.providers.voyage.apiKey |
Codex OAuth dekt alleen chat/completions en voldoet niet voor embeddingverzoeken.
Configuratie van remote endpoints
Voor aangepaste OpenAI-compatibele endpoints of het overschrijven van providerstandaarden:Aangepaste API-basis-URL.
API-sleutel overschrijven.
Extra HTTP-headers (samengevoegd met providerstandaarden).
Provider-specifieke configuratie
Gemini
Gemini
| Sleutel | Type | Standaard | Beschrijving |
|---|---|---|---|
model | string | gemini-embedding-001 | Ondersteunt ook gemini-embedding-2-preview |
outputDimensionality | number | 3072 | Voor Embedding 2: 768, 1536 of 3072 |
OpenAI-compatible input types
OpenAI-compatible input types
OpenAI-compatibele embeddingendpoints kunnen provider-specifieke
Het wijzigen van deze waarden beïnvloedt de identiteit van de embeddingcache voor provider-batchindexering en moet worden gevolgd door een geheugenherindexering wanneer het upstreammodel de labels verschillend behandelt.
input_type-verzoekvelden gebruiken. Dit is nuttig voor asymmetrische embeddingmodellen die verschillende labels vereisen voor query- en documentembeddings.| Sleutel | Type | Standaard | Beschrijving |
|---|---|---|---|
inputType | string | niet ingesteld | Gedeelde input_type voor query- en documentembeddings |
queryInputType | string | niet ingesteld | input_type tijdens query’s; overschrijft inputType |
documentInputType | string | niet ingesteld | Index-/document-input_type; overschrijft inputType |
Bedrock
Bedrock
Bedrock gebruikt de standaard AWS SDK-referentieketen; er zijn geen API-sleutels nodig. Als OpenClaw op EC2 draait met een Bedrock-ingeschakelde instantierol, stel dan alleen de provider en het model in:
Ondersteunde modellen (met familiedetectie en dimensiestandaarden):
Varianten met throughput-suffixen (bijv. Voor least privilege beperk je
| Sleutel | Type | Standaard | Beschrijving |
|---|---|---|---|
model | string | amazon.titan-embed-text-v2:0 | Elk Bedrock-embeddingmodel-id |
outputDimensionality | number | modelstandaard | Voor Titan V2: 256, 512 of 1024 |
| Model-id | Provider | Standaarddimensies | Configureerbare dimensies |
|---|---|---|---|
amazon.titan-embed-text-v2:0 | Amazon | 1024 | 256, 512, 1024 |
amazon.titan-embed-text-v1 | Amazon | 1536 | — |
amazon.titan-embed-g1-text-02 | Amazon | 1536 | — |
amazon.titan-embed-image-v1 | Amazon | 1024 | — |
amazon.nova-2-multimodal-embeddings-v1:0 | Amazon | 1024 | 256, 384, 1024, 3072 |
cohere.embed-english-v3 | Cohere | 1024 | — |
cohere.embed-multilingual-v3 | Cohere | 1024 | — |
cohere.embed-v4:0 | Cohere | 1536 | 256-1536 |
twelvelabs.marengo-embed-3-0-v1:0 | TwelveLabs | 512 | — |
twelvelabs.marengo-embed-2-7-v1:0 | TwelveLabs | 1024 | — |
amazon.titan-embed-text-v1:2:8k) erven de configuratie van het basismodel.Authenticatie: Bedrock-auth gebruikt de standaardvolgorde voor AWS SDK-referentieresolutie:- Omgevingsvariabelen (
AWS_ACCESS_KEY_ID+AWS_SECRET_ACCESS_KEY) - SSO-tokencache
- Referenties voor webidentiteitstokens
- Gedeelde referentie- en configuratiebestanden
- ECS- of EC2-metadatareferenties
AWS_REGION, AWS_DEFAULT_REGION, de baseUrl van de amazon-bedrock-provider, of valt terug op us-east-1.IAM-machtigingen: de IAM-rol of -gebruiker heeft nodig:InvokeModel tot het specifieke model:Lokaal (GGUF + node-llama-cpp)
Lokaal (GGUF + node-llama-cpp)
| Sleutel | Type | Standaard | Beschrijving |
|---|---|---|---|
local.modelPath | string | automatisch gedownload | Pad naar GGUF-modelbestand |
local.modelCacheDir | string | node-llama-cpp-standaard | Cachemap voor gedownloade modellen |
local.contextSize | number | "auto" | 4096 | Grootte van het contextvenster voor de embedding-context. 4096 dekt typische chunks (128–512 tokens) terwijl niet-gewicht-VRAM wordt begrensd. Verlaag naar 1024–2048 op beperkte hosts. "auto" gebruikt het getrainde maximum van het model — niet aanbevolen voor 8B+-modellen (Qwen3-Embedding-8B: 40 960 tokens → ~32 GB VRAM tegenover ~8,8 GB bij 4096). |
embeddinggemma-300m-qat-Q8_0.gguf (~0,6 GB, automatisch gedownload). Vereist native build: pnpm approve-builds en daarna pnpm rebuild node-llama-cpp.Gebruik de zelfstandige CLI om hetzelfde providerpad te verifiëren dat de Gateway gebruikt:provider auto is, wordt local alleen geselecteerd wanneer local.modelPath naar een bestaand lokaal bestand verwijst. hf:- en HTTP(S)-modelverwijzingen kunnen nog steeds expliciet worden gebruikt met provider: "local", maar ze zorgen er niet voor dat auto lokaal selecteert voordat het model op schijf beschikbaar is.Time-out voor inline embedding
Overschrijf de time-out voor inline embedding-batches tijdens geheugenindexering.Niet ingesteld gebruikt de providerstandaard: 600 seconden voor lokale/zelfgehoste providers zoals
local, ollama en lmstudio, en 120 seconden voor gehoste providers. Verhoog dit wanneer lokale CPU-gebonden embedding-batches gezond maar traag zijn.Configuratie voor hybride zoeken
Alles ondermemorySearch.query.hybrid:
| Sleutel | Type | Standaard | Beschrijving |
|---|---|---|---|
enabled | boolean | true | Hybride BM25 + vectorzoekopdracht inschakelen |
vectorWeight | number | 0.7 | Gewicht voor vectorscores (0-1) |
textWeight | number | 0.3 | Gewicht voor BM25-scores (0-1) |
candidateMultiplier | number | 4 | Vermenigvuldiger voor grootte van kandidaatpool |
- MMR (diversiteit)
- Temporeel verval (recentheid)
| Sleutel | Type | Standaard | Beschrijving |
|---|---|---|---|
mmr.enabled | boolean | false | MMR-herordening inschakelen |
mmr.lambda | number | 0.7 | 0 = maximale diversiteit, 1 = maximale relevantie |
Volledig voorbeeld
Aanvullende geheugenpaden
| Sleutel | Type | Beschrijving |
|---|---|---|
extraPaths | string[] | Aanvullende mappen of bestanden om te indexeren |
.md-bestanden. Afhandeling van symlinks hangt af van de actieve backend: de ingebouwde engine negeert symlinks, terwijl QMD het gedrag van de onderliggende QMD-scanner volgt.
Voor agent-gebonden transcriptzoekopdrachten tussen agents gebruikt u agents.list[].memorySearch.qmd.extraCollections in plaats van memory.qmd.paths. Die extra collecties volgen dezelfde { path, name, pattern? }-vorm, maar ze worden per agent samengevoegd en kunnen expliciete gedeelde namen behouden wanneer het pad buiten de huidige workspace wijst. Als hetzelfde opgeloste pad in zowel memory.qmd.paths als memorySearch.qmd.extraCollections voorkomt, behoudt QMD de eerste vermelding en slaat het het duplicaat over.
Multimodaal geheugen (Gemini)
Indexeer afbeeldingen en audio naast Markdown met Gemini Embedding 2:| Sleutel | Type | Standaard | Beschrijving |
|---|---|---|---|
multimodal.enabled | boolean | false | Multimodale indexering inschakelen |
multimodal.modalities | string[] | — | ["image"], ["audio"], of ["all"] |
multimodal.maxFileBytes | number | 10000000 | Maximale bestandsgrootte voor indexering |
Geldt alleen voor bestanden in
extraPaths. Standaardgeheugenroots blijven alleen 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
| Sleutel | Type | Standaard | Beschrijving |
|---|---|---|---|
cache.enabled | boolean | false | Cache chunk-embeddings in SQLite |
cache.maxEntries | number | 50000 | Maximaal gecachete embeddings |
Batchindexering
| Sleutel | Type | Standaard | Beschrijving |
|---|---|---|---|
remote.nonBatchConcurrency | number | 4 | Parallelle inline embeddings |
remote.batch.enabled | boolean | false | Batch-embedding-API inschakelen |
remote.batch.concurrency | number | 2 | Parallelle batchtaken |
remote.batch.wait | boolean | true | Wachten op voltooiing van batch |
remote.batch.pollIntervalMs | number | — | Pollinterval |
remote.batch.timeoutMinutes | number | — | Batch-time-out |
openai, gemini en voyage. OpenAI-batch is doorgaans het snelst en goedkoopst voor grote backfills.
remote.nonBatchConcurrency bepaalt inline embedding-aanroepen die worden gebruikt door lokale/zelfgehoste providers en gehoste providers wanneer batch-API’s van providers niet actief zijn. Ollama gebruikt standaard 1 voor niet-batchindexering om kleinere lokale hosts niet te overbelasten; stel een hogere waarde in op grotere machines.
Dit staat los van sync.embeddingBatchTimeoutSeconds, dat de time-out voor inline embedding-aanroepen bepaalt.
Sessiegeheugen zoeken (experimenteel)
Indexeer sessietranscripten en maak ze beschikbaar viamemory_search:
| Sleutel | Type | Standaard | Beschrijving |
|---|---|---|---|
experimental.sessionMemory | boolean | false | Sessie-indexering inschakelen |
sources | string[] | ["memory"] | Voeg "sessions" toe om transcripten op te nemen |
sync.sessions.deltaBytes | number | 100000 | Bytedrempel voor herindexering |
sync.sessions.deltaMessages | number | 50 | Berichtdrempel voor herindexering |
SQLite-vectorversnelling (sqlite-vec)
| Sleutel | Type | Standaard | Beschrijving |
|---|---|---|---|
store.vector.enabled | boolean | true | Gebruik sqlite-vec voor vectorqueries |
store.vector.extensionPath | string | meegeleverd | Overschrijf het sqlite-vec-pad |
Indexopslag
| Sleutel | Type | Standaard | Beschrijving |
|---|---|---|---|
store.path | string | ~/.openclaw/memory/{agentId}.sqlite | Indexlocatie (ondersteunt {agentId}-token) |
store.fts.tokenizer | string | unicode61 | FTS5-tokenizer (unicode61 of trigram) |
QMD-backendconfiguratie
Stelmemory.backend = "qmd" in om dit in te schakelen. Alle QMD-instellingen staan onder memory.qmd:
| Sleutel | Type | Standaard | Beschrijving |
|---|---|---|---|
command | string | qmd | Pad naar QMD-uitvoerbaar bestand; stel een absoluut pad in wanneer de service-PATH verschilt van je shell |
searchMode | string | search | Zoekopdracht: search, vsearch, query |
includeDefaultMemory | boolean | true | Indexeer automatisch MEMORY.md + memory/**/*.md |
paths[] | array | — | Extra paden: { name, path, pattern? } |
sessions.enabled | boolean | false | Indexeer sessietranscripten |
sessions.retentionDays | number | — | Bewaartermijn van transcripten |
sessions.exportDir | string | — | Exportdirectory |
searchMode: "search" is alleen lexicaal/BM25. OpenClaw voert voor die modus geen semantische gereedheidsprobes voor vectoren of QMD-embeddingonderhoud uit, ook niet tijdens memory status --deep; vsearch en query blijven QMD-vectorgereedheid en embeddings vereisen.
OpenClaw geeft de voorkeur aan huidige QMD-collecties en MCP-queryvormen, 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 meldt, worden collecties met dezelfde bron met één QMD-proces doorzocht; oudere QMD-builds blijven het compatibiliteitspad per collectie gebruiken. Dezelfde bron betekent dat duurzame geheugencollecties samen worden gegroepeerd, terwijl sessietranscriptcollecties een aparte groep blijven, zodat brondifferentiatie nog steeds beide invoeren heeft.
QMD-modeloverschrijvingen blijven aan de QMD-kant, 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 runtime-omgeving van de Gateway in.Updateschema
Updateschema
| Sleutel | Type | Standaard | Beschrijving |
|---|---|---|---|
update.interval | string | 5m | Vernieuwingsinterval |
update.debounceMs | number | 15000 | Bestandswijzigingen debouncen |
update.onBoot | boolean | true | Vernieuwen wanneer de langlevende QMD-manager wordt geopend; stuurt ook de opt-in-opstartvernieuwing aan |
update.startup | string | off | Optionele vernieuwing bij Gateway-start: off, idle of immediate |
update.startupDelayMs | number | 120000 | Vertraging voordat de vernieuwing met startup: "idle" wordt uitgevoerd |
update.waitForBootSync | boolean | false | Het openen van de manager blokkeren totdat de initiële vernieuwing is voltooid |
update.embedInterval | string | — | Afzonderlijk embedritme |
update.commandTimeoutMs | number | — | Time-out voor QMD-commando’s |
update.updateTimeoutMs | number | — | Time-out voor QMD-updatebewerkingen |
update.embedTimeoutMs | number | — | Time-out voor QMD-embedbewerkingen |
Limieten
Limieten
| Sleutel | Type | Standaard | Beschrijving |
|---|---|---|---|
limits.maxResults | number | 6 | Maximaal aantal zoekresultaten |
limits.maxSnippetChars | number | — | Fragmentlengte begrenzen |
limits.maxInjectedChars | number | — | Totaal aantal geïnjecteerde tekens begrenzen |
limits.timeoutMs | number | 4000 | Zoektime-out |
Bereik
Bereik
Bepaalt welke sessies QMD-zoekresultaten kunnen ontvangen. Zelfde schema als De meegeleverde standaard staat directe sessies en kanaalsessies toe, terwijl groepen nog steeds worden geweigerd.Standaard is alleen DM.
session.sendPolicy:match.keyPrefix komt overeen met de genormaliseerde sessiesleutel; match.rawKeyPrefix komt overeen met de ruwe sleutel inclusief agent:<id>:.Citaties
Citaties
memory.citations geldt voor alle backends:| Waarde | Gedrag |
|---|---|
auto (standaard) | Source: <path#line>-voettekst opnemen in fragmenten |
on | Voettekst altijd opnemen |
off | Voettekst weglaten (pad wordt intern nog steeds aan de agent doorgegeven) |
Volledig QMD-voorbeeld
Dreaming
Dreaming wordt geconfigureerd onderplugins.entries.memory-core.config.dreaming, niet onder agents.defaults.memorySearch.
Dreaming wordt uitgevoerd als één geplande sweep en gebruikt interne lichte/diepe/REM-fasen als implementatiedetail.
Zie Dreaming voor conceptueel gedrag en slash-commando’s.
Gebruikersinstellingen
| Sleutel | Type | Standaardmodel | Beschrijving |
|---|---|---|---|
enabled | boolean | false | Dreaming volledig in- of uitschakelen |
frequency | string | 0 3 * * * | Optioneel Cron-ritme voor de volledige Dreaming-sweep |
model | string | standaardmodel | Optionele modeloverschrijving voor de Dream Diary-subagent |
Voorbeeld
- Dreaming schrijft machinestatus naar
memory/.dreams/. - Dreaming schrijft voor mensen leesbare narratieve uitvoer naar
DREAMS.md(of bestaandedreams.md). dreaming.modelgebruikt de bestaande vertrouwenspoort voor Plugin-subagents; stelplugins.entries.memory-core.subagent.allowModelOverride: truein voordat je dit inschakelt.- Dream Diary probeert het één keer opnieuw met het standaardmodel van de sessie wanneer het geconfigureerde model niet beschikbaar is. Vertrouwens- of allowlistfouten worden gelogd en worden niet stilzwijgend opnieuw geprobeerd.
- Het beleid en de drempels voor de lichte/diepe/REM-fase zijn intern gedrag, geen gebruikersgerichte configuratie.