Agent-specifieke configuratiesleutels onderDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
agents.*, multiAgent.*, session.*,
messages.* en talk.*. Voor kanalen, tools, Gateway-runtime en andere
sleutels op het hoogste niveau, zie Configuratiereferentie.
Standaardwaarden voor agents
agents.defaults.workspace
Standaardwaarde: ~/.openclaw/workspace.
agents.defaults.repoRoot
Optionele repository-root die wordt weergegeven in de Runtime-regel van de systeemprompt. Als deze niet is ingesteld, detecteert OpenClaw dit automatisch door vanaf de workspace omhoog te lopen.
agents.defaults.skills
Optionele standaard-allowlist voor Skills voor agents die
agents.list[].skills niet instellen.
- Laat
agents.defaults.skillsweg voor standaard onbeperkte Skills. - Laat
agents.list[].skillsweg om de standaardwaarden te erven. - Stel
agents.list[].skills: []in voor geen Skills. - Een niet-lege lijst
agents.list[].skillsis de definitieve set voor die agent; deze wordt niet samengevoegd met standaardwaarden.
agents.defaults.skipBootstrap
Schakelt het automatisch aanmaken van bootstrapbestanden voor de workspace uit (AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md, BOOTSTRAP.md).
agents.defaults.contextInjection
Bepaalt wanneer bootstrapbestanden van de workspace in de systeemprompt worden geïnjecteerd. Standaardwaarde: "always".
"continuation-skip": veilige vervolgbeurten (na een voltooide assistentreactie) slaan herinjectie van de workspace-bootstrap over, waardoor de promptgrootte afneemt. Heartbeat-runs en nieuwe pogingen na Compaction bouwen de context nog steeds opnieuw op."never": schakel workspace-bootstrap en injectie van contextbestanden op elke beurt uit. Gebruik dit alleen voor agents die hun promptlevenscyclus volledig zelf beheren (aangepaste context-engines, native runtimes die hun eigen context bouwen, of gespecialiseerde workflows zonder bootstrap). Heartbeat- en Compaction-herstelbeurten slaan injectie ook over.
agents.defaults.bootstrapMaxChars
Maximaal aantal tekens per bootstrapbestand van de workspace vóór afkapping. Standaardwaarde: 12000.
agents.defaults.bootstrapTotalMaxChars
Maximaal totaal aantal tekens dat over alle bootstrapbestanden van de workspace wordt geïnjecteerd. Standaardwaarde: 60000.
agents.defaults.bootstrapPromptTruncationWarning
Bepaalt de voor de agent zichtbare waarschuwingstekst wanneer bootstrapcontext wordt afgekapt.
Standaardwaarde: "once".
"off": injecteer nooit waarschuwingstekst in de systeemprompt."once": injecteer de waarschuwing eenmaal per unieke afkappingshandtekening (aanbevolen)."always": injecteer bij elke run een waarschuwing wanneer er afkapping bestaat.
Eigendomskaart voor contextbudgetten
OpenClaw heeft meerdere prompt-/contextbudgetten met hoog volume, en die zijn bewust opgesplitst per subsysteem in plaats van allemaal via één generieke knop te lopen.agents.defaults.bootstrapMaxChars/agents.defaults.bootstrapTotalMaxChars: normale injectie van workspace-bootstrap.agents.defaults.startupContext.*: eenmalige prelude voor reset-/startup-modelruns, inclusief recente dagelijksememory/*.md-bestanden. Kale chatopdrachten/newen/resetworden bevestigd zonder het model aan te roepen.skills.limits.*: de compacte Skills-lijst die in de systeemprompt wordt geïnjecteerd.agents.defaults.contextLimits.*: begrensde runtime-fragmenten en geïnjecteerde blokken die eigendom zijn van de runtime.memory.qmd.limits.*: snippet voor geïndexeerde geheugenzoekopdrachten en injectiegrootte.
agents.list[].skillsLimits.maxSkillsPromptCharsagents.list[].contextLimits.*
agents.defaults.startupContext
Bepaalt de startup-prelude voor de eerste beurt die wordt geïnjecteerd bij reset-/startup-modelruns.
Kale chatopdrachten /new en /reset bevestigen de reset zonder het model aan te roepen,
dus laden ze deze prelude niet.
agents.defaults.contextLimits
Gedeelde standaardwaarden voor begrensde runtime-contextoppervlakken.
memoryGetMaxChars: standaardlimiet voormemory_get-fragmenten voordat afkappingsmetadata en een vervolgmelding worden toegevoegd.memoryGetDefaultLines: standaardregelvenster voormemory_getwanneerlinesis weggelaten.toolResultMaxChars: limiet voor live toolresultaten die wordt gebruikt voor opgeslagen resultaten en overloopherstel.postCompactionMaxChars: fragmentlimiet voor AGENTS.md die wordt gebruikt tijdens refresh-injectie na Compaction.
agents.list[].contextLimits
Override per agent voor de gedeelde contextLimits-knoppen. Weggelaten velden erven
van agents.defaults.contextLimits.
skills.limits.maxSkillsPromptChars
Globale limiet voor de compacte Skills-lijst die in de systeemprompt wordt geïnjecteerd. Dit
heeft geen invloed op het lezen van SKILL.md-bestanden op aanvraag.
agents.list[].skillsLimits.maxSkillsPromptChars
Override per agent voor het Skills-promptbudget.
agents.defaults.imageMaxDimensionPx
Maximale pixelgrootte voor de langste afbeeldingszijde in transcript-/toolafbeeldingsblokken vóór provider-aanroepen.
Standaardwaarde: 1200.
Lagere waarden verminderen meestal het gebruik van vision-tokens en de grootte van requestpayloads voor runs met veel screenshots.
Hogere waarden behouden meer visuele details.
agents.defaults.userTimezone
Tijdzone voor systeempromptcontext (niet voor berichttijdstempels). Valt terug op de tijdzone van de host.
agents.defaults.timeFormat
Tijdnotatie in de systeemprompt. Standaardwaarde: auto (OS-voorkeur).
agents.defaults.model
model: accepteert een tekenreeks ("provider/model") of een object ({ primary, fallbacks }).- De tekenreeksvorm stelt alleen het primaire model in.
- De objectvorm stelt het primaire model plus geordende failovermodellen in.
imageModel: accepteert een tekenreeks ("provider/model") of een object ({ primary, fallbacks }).- Gebruikt door het
image-toolpad als configuratie voor het vision-model. - Ook gebruikt als fallback-routering wanneer het geselecteerde/standaardmodel geen afbeeldingsinvoer kan accepteren.
- Geef de voorkeur aan expliciete
provider/model-referenties. Kale ID’s worden geaccepteerd voor compatibiliteit; als een kaal ID uniek overeenkomt met een geconfigureerde afbeeldingsgeschikte vermelding inmodels.providers.*.models, kwalificeert OpenClaw dit naar die provider. Ambigue geconfigureerde overeenkomsten vereisen een expliciet providerprefix.
- Gebruikt door het
imageGenerationModel: accepteert een tekenreeks ("provider/model") of een object ({ primary, fallbacks }).- Gebruikt door de gedeelde afbeeldingsgeneratiecapaciteit en elk toekomstig tool-/Plugin-oppervlak dat afbeeldingen genereert.
- Typische waarden:
google/gemini-3.1-flash-image-previewvoor native Gemini-afbeeldingsgeneratie,fal/fal-ai/flux/devvoor fal,openai/gpt-image-2voor OpenAI Images, ofopenai/gpt-image-1.5voor OpenAI PNG/WebP-uitvoer met transparante achtergrond. - Als je rechtstreeks een provider/model selecteert, configureer dan ook de bijbehorende provider-authenticatie (bijvoorbeeld
GEMINI_API_KEYofGOOGLE_API_KEYvoorgoogle/*,OPENAI_API_KEYof OpenAI Codex OAuth vooropenai/gpt-image-2/openai/gpt-image-1.5,FAL_KEYvoorfal/*). - Indien weggelaten, kan
image_generatenog steeds een door authenticatie ondersteunde providerstandaard afleiden. Het probeert eerst de huidige standaardprovider en daarna de resterende geregistreerde afbeeldingsgeneratieproviders in provider-ID-volgorde.
musicGenerationModel: accepteert een tekenreeks ("provider/model") of een object ({ primary, fallbacks }).- Gebruikt door de gedeelde muziekgeneratiecapaciteit en de ingebouwde
music_generate-tool. - Typische waarden:
google/lyria-3-clip-preview,google/lyria-3-pro-preview, ofminimax/music-2.6. - Indien weggelaten, kan
music_generatenog steeds een door authenticatie ondersteunde providerstandaard afleiden. Het probeert eerst de huidige standaardprovider en daarna de resterende geregistreerde muziekgeneratieproviders in provider-ID-volgorde. - Als je rechtstreeks een provider/model selecteert, configureer dan ook de bijbehorende provider-authenticatie/API-sleutel.
- Gebruikt door de gedeelde muziekgeneratiecapaciteit en de ingebouwde
videoGenerationModel: accepteert een tekenreeks ("provider/model") of een object ({ primary, fallbacks }).- Gebruikt door de gedeelde videogeneratiecapaciteit en de ingebouwde
video_generate-tool. - Typische waarden:
qwen/wan2.6-t2v,qwen/wan2.6-i2v,qwen/wan2.6-r2v,qwen/wan2.6-r2v-flash, ofqwen/wan2.7-r2v. - Indien weggelaten, kan
video_generatenog steeds een door authenticatie ondersteunde providerstandaard afleiden. Het probeert eerst de huidige standaardprovider en daarna de resterende geregistreerde videogeneratieproviders in provider-ID-volgorde. - Als je rechtstreeks een provider/model selecteert, configureer dan ook de bijbehorende provider-authenticatie/API-sleutel.
- De gebundelde Qwen-provider voor videogeneratie ondersteunt maximaal 1 uitvoervideo, 1 invoerafbeelding, 4 invoervideo’s, een duur van 10 seconden, en provider-niveauopties
size,aspectRatio,resolution,audioenwatermark.
- Gebruikt door de gedeelde videogeneratiecapaciteit en de ingebouwde
pdfModel: accepteert een tekenreeks ("provider/model") of een object ({ primary, fallbacks }).- Gebruikt door de
pdf-tool voor modelroutering. - Indien weggelaten, valt de PDF-tool terug op
imageModelen daarna op het opgeloste sessie-/standaardmodel.
- Gebruikt door de
pdfMaxBytesMb: standaardlimiet voor PDF-grootte voor depdf-tool wanneermaxBytesMbniet bij het aanroepen wordt doorgegeven.pdfMaxPages: standaardmaximum aantal pagina’s dat wordt meegenomen door de extractiefallbackmodus in depdf-tool.verboseDefault: standaardniveau voor uitgebreide uitvoer voor agents. Waarden:"off","on","full". Standaard:"off".reasoningDefault: standaardzichtbaarheid van redeneringen voor agents. Waarden:"off","on","stream". Per-agentagents.list[].reasoningDefaultoverschrijft deze standaard. Geconfigureerde redeneerstandaarden worden alleen toegepast voor eigenaren, geautoriseerde afzenders of operator-admin-Gateway-contexten wanneer geen redeneeroverride per bericht of sessie is ingesteld.elevatedDefault: standaardniveau voor verhoogde uitvoer voor agents. Waarden:"off","on","ask","full". Standaard:"on".model.primary: indelingprovider/model(bijv.openai/gpt-5.5voor toegang met API-sleutel ofopenai-codex/gpt-5.5voor Codex OAuth). Als je de provider weglaat, probeert OpenClaw eerst een alias, daarna een unieke geconfigureerde-provider-overeenkomst voor dat exacte model-ID, en pas daarna valt het terug op de geconfigureerde standaardprovider (verouderd compatibiliteitsgedrag, dus geef de voorkeur aan explicietprovider/model). Als die provider het geconfigureerde standaardmodel niet langer aanbiedt, valt OpenClaw terug op de eerste geconfigureerde provider/model in plaats van een verouderde standaard van een verwijderde provider te tonen.models: de geconfigureerde modelcatalogus en allowlist voor/model. Elke vermelding kanalias(snelkoppeling) enparams(providerspecifiek, bijvoorbeeldtemperature,maxTokens,cacheRetention,context1m,responsesServerCompaction,responsesCompactThreshold,chat_template_kwargs,extra_body/extraBody) bevatten.- Veilige bewerkingen: gebruik
openclaw config set agents.defaults.models '<json>' --strict-json --mergeom vermeldingen toe te voegen.config setweigert vervangingen die bestaande allowlist-vermeldingen zouden verwijderen, tenzij je--replacedoorgeeft. - Provider-gescopeerde configuratie-/onboardingflows voegen geselecteerde providermodellen samen in deze map en behouden niet-gerelateerde providers die al zijn geconfigureerd.
- Voor directe OpenAI Responses-modellen wordt server-side Compaction automatisch ingeschakeld. Gebruik
params.responsesServerCompaction: falseom het injecteren vancontext_managementte stoppen, ofparams.responsesCompactThresholdom de drempel te overschrijven. Zie OpenAI server-side compaction.
- Veilige bewerkingen: gebruik
params: globale standaardproviderparameters die op alle modellen worden toegepast. Ingesteld opagents.defaults.params(bijv.{ cacheRetention: "long" }).- Samenvoegprioriteit van
params(configuratie):agents.defaults.params(globale basis) wordt overschreven dooragents.defaults.models["provider/model"].params(per model), daarna overschrijftagents.list[].params(overeenkomend agent-ID) per sleutel. Zie Prompt Caching voor details. params.extra_body/params.extraBody: geavanceerde pass-through-JSON die wordt samengevoegd inapi: "openai-completions"-requestbody’s voor OpenAI-compatibele proxies. Als dit botst met gegenereerde requestsleutels, wint de extra body; niet-native completions-routes verwijderen daarna nog steeds OpenAI-onlystore.params.chat_template_kwargs: vLLM/OpenAI-compatibele chat-template-argumenten die worden samengevoegd in top-levelapi: "openai-completions"-requestbody’s. Voorvllm/nemotron-3-*met denken uit verzendt de gebundelde vLLM-Plugin automatischenable_thinking: falseenforce_nonempty_content: true; explicietechat_template_kwargsoverschrijven gegenereerde standaarden, enextra_body.chat_template_kwargsheeft nog steeds de laatste prioriteit. Voor Qwen-denkbedieningselementen in vLLM stel jeparams.qwenThinkingFormatin op"chat-template"of"top-level"voor die modelvermelding.compat.supportedReasoningEfforts: per-model OpenAI-compatibele lijst met redeneerinspanning. Neem"xhigh"op voor aangepaste eindpunten die dit daadwerkelijk accepteren; OpenClaw toont dan/think xhighin opdrachtmenu’s, Gateway-sessierijen, validatie van sessiepatches, validatie van agent-CLI enllm-task-validatie voor die geconfigureerde provider/model. Gebruikcompat.reasoningEffortMapwanneer de backend een providerspecifieke waarde voor een canoniek niveau wil.params.preserveThinking: alleen voor Z.AI opt-in voor behouden denken. Wanneer ingeschakeld en denken aan staat, verzendt OpenClawthinking.clear_thinking: falseen speelt het eerderereasoning_contentopnieuw af; zie Z.AI thinking and preserved thinking.agentRuntime: standaard laag-niveau agent-runtimebeleid. Een weggelaten ID gebruikt standaard OpenClaw Pi. Gebruikid: "pi"om de ingebouwde PI-harnas te forceren,id: "auto"om geregistreerde Plugin-harnassen ondersteunde modellen te laten claimen, een geregistreerd harnas-ID zoalsid: "codex", of een ondersteunde CLI-backendalias zoalsid: "claude-cli". Stelfallback: "none"in om automatische PI-fallback uit te schakelen. Expliciete Plugin-runtimes zoalscodexfalen standaard gesloten, tenzij jefallback: "pi"instelt in dezelfde overschrijvingsscope. Houd modelreferenties canoniek alsprovider/model; selecteer Codex, Claude CLI, Gemini CLI en andere uitvoeringsbackends via runtimeconfiguratie in plaats van verouderde runtimeproviderprefixen. Zie Agent runtimes voor hoe dit verschilt van provider/model-selectie.- Configuratieschrijvers die deze velden wijzigen (bijvoorbeeld
/models set,/models set-imageen opdrachten voor fallback toevoegen/verwijderen), slaan de canonieke objectvorm op en behouden bestaande fallbacklijsten waar mogelijk. maxConcurrent: maximaal aantal parallelle agentruns over sessies heen (elke sessie blijft geserialiseerd). Standaard: 4.
agents.defaults.agentRuntime
agentRuntime bepaalt welke laag-niveau executor agentbeurten uitvoert. De meeste
implementaties zouden de standaard OpenClaw Pi-runtime moeten behouden. Gebruik deze wanneer een vertrouwde
Plugin een native harnas biedt, zoals het gebundelde Codex app-server-harnas,
of wanneer je een ondersteunde CLI-backend zoals Claude CLI wilt. Zie voor het mentale
model Agent runtimes.
id:"auto","pi", een geregistreerd Plugin-harnas-ID, of een ondersteunde CLI-backendalias. De gebundelde Codex-Plugin registreertcodex; de gebundelde Anthropic-Plugin levert declaude-cliCLI-backend.fallback:"pi"of"none". Inid: "auto"gebruikt een weggelaten fallback standaard"pi"zodat oude configuraties PI kunnen blijven gebruiken wanneer geen Plugin-harnas een run claimt. In expliciete Plugin-runtime-modus, zoalsid: "codex", gebruikt een weggelaten fallback standaard"none"zodat een ontbrekend harnas faalt in plaats van stilzwijgend PI te gebruiken. Runtime-overschrijvingen erven fallback niet uit een bredere scope; stelfallback: "pi"in naast de expliciete runtime wanneer je die compatibiliteitsfallback bewust wilt. Fouten in geselecteerde Plugin-harnassen worden altijd direct getoond.- Omgevingsoverschrijvingen:
OPENCLAW_AGENT_RUNTIME=<id|auto|pi>overschrijftid;OPENCLAW_AGENT_HARNESS_FALLBACK=pi|noneoverschrijft fallback voor dat proces. - Voor Codex-only implementaties stel je
model: "openai/gpt-5.5"enagentRuntime.id: "codex"in. Je kunt ook explicietagentRuntime.fallback: "none"instellen voor leesbaarheid; dit is de standaard voor expliciete Plugin-runtimes. - Voor Claude CLI-implementaties geef je de voorkeur aan
model: "anthropic/claude-opus-4-7"plusagentRuntime.id: "claude-cli". Verouderdeclaude-cli/claude-opus-4-7-modelreferenties blijven werken voor compatibiliteit, maar nieuwe configuratie moet provider/model-selectie canoniek houden en de uitvoeringsbackend inagentRuntime.idplaatsen. - Oudere runtimebeleidssleutels worden door
openclaw doctor --fixherschreven naaragentRuntime. - De harnaskeuze wordt per sessie-ID vastgezet na de eerste ingebedde run. Configuratie-/omgevingswijzigingen beïnvloeden nieuwe of geresette sessies, niet een bestaand transcript. Verouderde sessies met transcriptgeschiedenis maar zonder geregistreerde pin worden behandeld als PI-vastgezet.
/statusrapporteert de effectieve runtime, bijvoorbeeldRuntime: OpenClaw Pi DefaultofRuntime: OpenAI Codex. - Dit bepaalt alleen de uitvoering van tekstagentbeurten. Mediageneratie, vision, PDF, muziek, video en TTS blijven hun provider/model-instellingen gebruiken.
agents.defaults.models staat):
| Alias | Model |
|---|---|
opus | anthropic/claude-opus-4-6 |
sonnet | anthropic/claude-sonnet-4-6 |
gpt | openai/gpt-5.5 of openai-codex/gpt-5.5 |
gpt-mini | openai/gpt-5.4-mini |
gpt-nano | openai/gpt-5.4-nano |
gemini | google/gemini-3.1-pro-preview |
gemini-flash | google/gemini-3-flash-preview |
gemini-flash-lite | google/gemini-3.1-flash-lite-preview |
--thinking off instelt of zelf agents.defaults.models["zai/<model>"].params.thinking definieert.
Z.AI-modellen schakelen standaard tool_stream in voor het streamen van toolaanroepen. Stel agents.defaults.models["zai/<model>"].params.tool_stream in op false om dit uit te schakelen.
Anthropic Claude 4.6-modellen gebruiken standaard adaptive denken wanneer er geen expliciet denkniveau is ingesteld.
agents.defaults.cliBackends
Optionele CLI-backends voor alleen-tekst fallback-runs (geen toolaanroepen). Nuttig als back-up wanneer API-providers falen.
- CLI-backends zijn tekstgericht; tools zijn altijd uitgeschakeld.
- Sessies worden ondersteund wanneer
sessionArgis ingesteld. - Afbeeldingsdoorgifte wordt ondersteund wanneer
imageArgbestandspaden accepteert.
agents.defaults.systemPromptOverride
Vervang de volledige door OpenClaw samengestelde systeemprompt door een vaste tekenreeks. Stel dit in op standaardniveau (agents.defaults.systemPromptOverride) of per agent (agents.list[].systemPromptOverride). Waarden per agent hebben voorrang; een lege waarde of een waarde met alleen witruimte wordt genegeerd. Nuttig voor gecontroleerde prompt-experimenten.
agents.defaults.promptOverlays
Provider-onafhankelijke prompt-overlays toegepast per modelfamilie. Model-id’s uit de GPT-5-familie krijgen het gedeelde gedragscontract over providers heen; personality regelt alleen de vriendelijke interactiestijllaag.
"friendly"(standaard) en"on"schakelen de vriendelijke interactiestijllaag in."off"schakelt alleen de vriendelijke laag uit; het getagde GPT-5-gedragscontract blijft ingeschakeld.- De verouderde instelling
plugins.entries.openai.config.personalitywordt nog steeds gelezen wanneer deze gedeelde instelling niet is ingesteld.
agents.defaults.heartbeat
Periodieke Heartbeat-runs.
every: duurtekenreeks (ms/s/m/h). Standaard:30m(API-sleutelauthenticatie) of1h(OAuth-authenticatie). Stel in op0mom uit te schakelen.includeSystemPromptSection: wanneer dit false is, wordt de Heartbeat-sectie uit de systeemprompt weggelaten en wordtHEARTBEAT.md-injectie in de bootstrap-context overgeslagen. Standaard:true.suppressToolErrorWarnings: wanneer dit true is, worden waarschuwingspayloads voor toolfouten tijdens Heartbeat-runs onderdrukt.timeoutSeconds: maximale toegestane tijd in seconden voor een Heartbeat-agentbeurt voordat deze wordt afgebroken. Laat niet ingesteld omagents.defaults.timeoutSecondste gebruiken.directPolicy: beleid voor directe/DM-bezorging.allow(standaard) staat bezorging naar directe doelen toe.blockonderdrukt bezorging naar directe doelen en geeftreason=dm-blockeduit.lightContext: wanneer dit true is, gebruiken Heartbeat-runs een lichtgewicht bootstrap-context en behouden ze alleenHEARTBEAT.mduit de workspace-bootstrapbestanden.isolatedSession: wanneer dit true is, draait elke Heartbeat in een nieuwe sessie zonder eerdere gespreksgeschiedenis. Zelfde isolatiepatroon als CronsessionTarget: "isolated". Verlaagt de tokenkosten per Heartbeat van ~100K naar ~2-5K tokens.skipWhenBusy: wanneer dit true is, stellen Heartbeat-runs uit bij extra bezette lanes: subagent- of geneste commandowerkzaamheden. Cron-lanes stellen Heartbeats altijd uit, zelfs zonder deze vlag.- Per agent: stel
agents.list[].heartbeatin. Wanneer een agentheartbeatdefinieert, voeren alleen die agents Heartbeats uit. - Heartbeats voeren volledige agentbeurten uit — kortere intervallen verbruiken meer tokens.
agents.defaults.compaction
mode:defaultofsafeguard(gechunkte samenvatting voor lange geschiedenissen). Zie Compaction.provider: id van een geregistreerde compaction-provider-Plugin. Wanneer ingesteld, wordt desummarize()van de provider aangeroepen in plaats van ingebouwde LLM-samenvatting. Valt bij falen terug op ingebouwd gedrag. Het instellen van een provider forceertmode: "safeguard". Zie Compaction.timeoutSeconds: maximaal aantal seconden toegestaan voor één compaction-bewerking voordat OpenClaw deze afbreekt. Standaard:900.keepRecentTokens: Pi-knippuntbudget om het meest recente transcriptstaartstuk letterlijk te behouden. Handmatige/compactrespecteert dit wanneer expliciet ingesteld; anders is handmatige compaction een hard checkpoint.identifierPolicy:strict(standaard),offofcustom.strictvoegt ingebouwde richtlijnen voor behoud van ondoorzichtige identificatoren toe aan het begin tijdens compaction-samenvatting.identifierInstructions: optionele aangepaste tekst voor identificatorbehoud die wordt gebruikt wanneeridentifierPolicy=custom.qualityGuard: controles voor opnieuw proberen bij onjuist gevormde uitvoer voor safeguard-samenvattingen. Standaard ingeschakeld in safeguard-modus; stelenabled: falsein om de audit over te slaan.postCompactionSections: optionele AGENTS.md H2/H3-sectienamen om opnieuw te injecteren na compaction. Standaard["Session Startup", "Red Lines"]; stel[]in om herinjectie uit te schakelen. Wanneer niet ingesteld of expliciet ingesteld op dat standaardpaar, worden oudere koppenEvery Session/Safetyook geaccepteerd als legacy-fallback.model: optioneleprovider/model-id-override alleen voor compaction-samenvatting. Gebruik dit wanneer de hoofdsessie één model moet behouden maar compaction-samenvattingen op een ander model moeten draaien; wanneer niet ingesteld, gebruikt compaction het primaire model van de sessie.maxActiveTranscriptBytes: optionele bytedrempel (numberof tekenreeksen zoals"20mb") die normale lokale compaction activeert vóór een run wanneer de actieve JSONL voorbij de drempel groeit. VereisttruncateAfterCompactionzodat succesvolle compaction kan roteren naar een kleiner opvolgtranscript. Uitgeschakeld wanneer niet ingesteld of0.notifyUser: wanneertrue, stuurt korte meldingen naar de gebruiker wanneer compaction start en wanneer deze voltooit (bijvoorbeeld “Compacting context…” en “Compaction complete”). Standaard uitgeschakeld om compaction stil te houden.memoryFlush: stille agentische beurt vóór automatische compaction om duurzame herinneringen op te slaan. Stelmodelin op een exacte provider/model zoalsollama/qwen3:8bwanneer deze onderhoudsbeurt op een lokaal model moet blijven; de override erft de fallback-keten van de actieve sessie niet. Overgeslagen wanneer de workspace alleen-lezen is.
agents.defaults.contextPruning
Snoeit oude toolresultaten uit de in-memory context voordat deze naar de LLM wordt verzonden. Wijzigt de sessiegeschiedenis op schijf niet.
gedrag van cache-ttl-modus
gedrag van cache-ttl-modus
mode: "cache-ttl"schakelt snoeipasses in.ttlbepaalt hoe vaak snoeien opnieuw kan draaien (na de laatste cache-aanraking).- Snoeien soft-trimt eerst te grote toolresultaten en hard-cleart daarna oudere toolresultaten indien nodig.
... in het midden in.Hard-clear vervangt het volledige toolresultaat door de placeholder.Opmerkingen:- Afbeeldingsblokken worden nooit getrimd/gewist.
- Ratio’s zijn gebaseerd op tekens (bij benadering), niet op exacte tokenaantallen.
- Als er minder dan
keepLastAssistantsassistentberichten bestaan, wordt snoeien overgeslagen.
Blokstreaming
- Niet-Telegram-kanalen vereisen expliciet
*.blockStreaming: trueom blokantwoorden in te schakelen. - Kanaaloverrides:
channels.<channel>.blockStreamingCoalesce(en varianten per account). Signal/Slack/Discord/Google Chat gebruiken standaardminChars: 1500. humanDelay: gerandomiseerde pauze tussen blokantwoorden.natural= 800–2500ms. Override per agent:agents.list[].humanDelay.
Typindicatoren
- Standaardwaarden:
instantvoor directe chats/vermeldingen,messagevoor groepschats zonder vermelding. - Overschrijvingen per sessie:
session.typingMode,session.typingIntervalSeconds.
agents.defaults.sandbox
Optionele sandboxing voor de ingebedde agent. Zie Sandboxing voor de volledige gids.
Sandboxdetails
Sandboxdetails
Backend:OpenShell-modus:
docker: lokale Docker-runtime (standaard)ssh: generieke externe runtime ondersteund door SSHopenshell: OpenShell-runtime
backend: "openshell" is geselecteerd, verplaatsen runtime-specifieke instellingen naar
plugins.entries.openshell.config.SSH-backendconfiguratie:target: SSH-doel in de vormuser@host[:port]command: opdracht voor de SSH-client (standaard:ssh)workspaceRoot: absolute externe root gebruikt voor werkruimten per bereikidentityFile/certificateFile/knownHostsFile: bestaande lokale bestanden die aan OpenSSH worden doorgegevenidentityData/certificateData/knownHostsData: inline-inhoud of SecretRefs die OpenClaw tijdens runtime omzet in tijdelijke bestandenstrictHostKeyChecking/updateHostKeys: OpenSSH-knoppen voor hostkeybeleid
identityDatawint vanidentityFilecertificateDatawint vancertificateFileknownHostsDatawint vanknownHostsFile- Door SecretRef ondersteunde
*Data-waarden worden uit de actieve runtime-snapshot met geheimen opgelost voordat de sandboxsessie start
- vult de externe werkruimte eenmalig na maken of opnieuw maken
- houdt daarna de externe SSH-werkruimte canoniek
- routeert
exec, bestandstools en mediapaden via SSH - synchroniseert externe wijzigingen niet automatisch terug naar de host
- ondersteunt geen sandbox-browsercontainers
none: sandboxwerkruimte per bereik onder~/.openclaw/sandboxesro: sandboxwerkruimte op/workspace, agentwerkruimte alleen-lezen gemount op/agentrw: agentwerkruimte lezen/schrijven gemount op/workspace
session: container + werkruimte per sessieagent: één container + werkruimte per agent (standaard)shared: gedeelde container en werkruimte (geen isolatie tussen sessies)
mirror: vul extern vanuit lokaal voor exec, synchroniseer terug na exec; lokale werkruimte blijft canoniekremote: vul extern eenmalig wanneer de sandbox wordt gemaakt en houd daarna de externe werkruimte canoniek
remote-modus worden host-lokale bewerkingen die buiten OpenClaw zijn gedaan na de vulstap niet automatisch naar de sandbox gesynchroniseerd.
Transport is SSH naar de OpenShell-sandbox, maar de Plugin beheert de sandboxlevenscyclus en optionele spiegelsynchronisatie.setupCommand wordt eenmaal uitgevoerd na het maken van de container (via sh -lc). Vereist uitgaand netwerkverkeer, schrijfbare root en rootgebruiker.Containers gebruiken standaard network: "none" — stel dit in op "bridge" (of een aangepast bridge-netwerk) als de agent uitgaande toegang nodig heeft.
"host" wordt geblokkeerd. "container:<id>" wordt standaard geblokkeerd tenzij je expliciet
sandbox.docker.dangerouslyAllowContainerNamespaceJoin: true instelt (noodoptie).Inkomende bijlagen worden klaargezet in media/inbound/* in de actieve werkruimte.docker.binds mount extra hostmappen; globale binds en binds per agent worden samengevoegd.Sandboxbrowser (sandbox.browser.enabled): Chromium + CDP in een container. noVNC-URL geïnjecteerd in systeemprompt. Vereist geen browser.enabled in openclaw.json.
noVNC-observatortoegang gebruikt standaard VNC-authenticatie en OpenClaw geeft een kortlevende token-URL uit (in plaats van het wachtwoord in de gedeelde URL bloot te leggen).allowHostControl: false(standaard) blokkeert sandboxsessies om de hostbrowser als doel te gebruiken.networkis standaardopenclaw-sandbox-browser(toegewijd bridge-netwerk). Stel dit alleen in opbridgewanneer je expliciet globale bridge-connectiviteit wilt.cdpSourceRangebeperkt optioneel CDP-ingress aan de containerrand tot een CIDR-bereik (bijvoorbeeld172.21.0.1/32).sandbox.browser.bindsmount extra hostmappen alleen in de sandboxbrowsercontainer. Wanneer ingesteld (inclusief[]), vervangt ditdocker.bindsvoor de browsercontainer.- Startstandaarden zijn gedefinieerd in
scripts/sandbox-browser-entrypoint.shen afgestemd op containerhosts:--remote-debugging-address=127.0.0.1--remote-debugging-port=<derived from OPENCLAW_BROWSER_CDP_PORT>--user-data-dir=${HOME}/.chrome--no-first-run--no-default-browser-check--disable-3d-apis--disable-gpu--disable-software-rasterizer--disable-dev-shm-usage--disable-background-networking--disable-features=TranslateUI--disable-breakpad--disable-crash-reporter--renderer-process-limit=2--no-zygote--metrics-recording-only--disable-extensions(standaard ingeschakeld)--disable-3d-apis,--disable-software-rasterizeren--disable-gpuzijn standaard ingeschakeld en kunnen worden uitgeschakeld metOPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0als WebGL/3D-gebruik dit vereist.OPENCLAW_BROWSER_DISABLE_EXTENSIONS=0schakelt extensies weer in als je workflow ervan afhankelijk is.--renderer-process-limit=2kan worden gewijzigd metOPENCLAW_BROWSER_RENDERER_PROCESS_LIMIT=<N>; stel0in om de standaardproceslimiet van Chromium te gebruiken.- plus
--no-sandboxwanneernoSandboxis ingeschakeld. - Standaarden zijn de basislijn van de containerimage; gebruik een aangepaste browserimage met een aangepast entrypoint om containerstandaarden te wijzigen.
sandbox.docker.binds zijn alleen voor Docker.
Images bouwen:
agents.list (overschrijvingen per agent)
Gebruik agents.list[].tts om een agent een eigen TTS-provider, stem, model,
stijl of automatische TTS-modus te geven. Het agentblok wordt diep samengevoegd over globale
messages.tts, zodat gedeelde inloggegevens op één plek kunnen blijven terwijl individuele
agents alleen de stem- of providervelden overschrijven die ze nodig hebben. De overschrijving van de actieve agent
geldt voor automatische gesproken antwoorden, /tts audio, /tts status en
de agenttool tts. Zie Tekst-naar-spraak
voor providervoorbeelden en prioriteit.
id: stabiele agent-id (vereist).default: wanneer er meerdere zijn ingesteld, wint de eerste (waarschuwing gelogd). Als er geen is ingesteld, is de eerste lijstvermelding de standaard.model: tekenreeksvorm stelt een strikte primaire waarde per agent in zonder model-fallback; objectvorm{ primary }is ook strikt, tenzij jefallbackstoevoegt. Gebruik{ primary, fallbacks: [...] }om die agent voor fallback aan te melden, of{ primary, fallbacks: [] }om strikt gedrag expliciet te maken. Cron-taken die alleenprimaryoverschrijven, erven nog steeds standaard-fallbacks tenzij jefallbacks: []instelt.params: streamparameters per agent samengevoegd over de geselecteerde modelvermelding inagents.defaults.models. Gebruik dit voor agent-specifieke overschrijvingen zoalscacheRetention,temperatureofmaxTokenszonder de volledige modelcatalogus te dupliceren.tts: optionele text-to-speech-overschrijvingen per agent. Het blok wordt diep samengevoegd overmessages.tts, dus houd gedeelde providerreferenties en fallbackbeleid inmessages.ttsen stel hier alleen persona-specifieke waarden in, zoals provider, stem, model, stijl of automatische modus.skills: optionele Skills-toestaanlijst per agent. Als dit wordt weggelaten, erft de agentagents.defaults.skillswanneer dat is ingesteld; een expliciete lijst vervangt standaardwaarden in plaats van ermee samen te voegen, en[]betekent geen Skills.thinkingDefault: optioneel standaarddenkniveau per agent (off | minimal | low | medium | high | xhigh | adaptive | max). Overschrijftagents.defaults.thinkingDefaultvoor deze agent wanneer er geen overschrijving per bericht of sessie is ingesteld. Het geselecteerde provider-/modelprofiel bepaalt welke waarden geldig zijn; voor Google Gemini behoudtadaptiveprovider-eigen dynamisch denken (thinkingLevelweggelaten op Gemini 3/3.1,thinkingBudget: -1op Gemini 2.5).reasoningDefault: optionele standaardzichtbaarheid van redenering per agent (on | off | stream). Overschrijftagents.defaults.reasoningDefaultvoor deze agent wanneer er geen redeneringsoverschrijving per bericht of sessie is ingesteld.fastModeDefault: optionele standaardwaarde per agent voor snelle modus (true | false). Wordt toegepast wanneer er geen overschrijving voor snelle modus per bericht of sessie is ingesteld.agentRuntime: optionele low-level runtimebeleid-overschrijving per agent. Gebruik{ id: "codex" }om één agent alleen Codex te laten gebruiken, terwijl andere agents de standaard Pi-fallback inauto-modus behouden.runtime: optionele runtimedescriptor per agent. Gebruiktype: "acp"metruntime.acp-standaardwaarden (agent,backend,mode,cwd) wanneer de agent standaard ACP-harness-sessies moet gebruiken.identity.avatar: werkruimte-relatief pad,http(s)-URL ofdata:-URI.identityleidt standaardwaarden af:ackReactionuitemoji,mentionPatternsuitname/emoji.subagents.allowAgents: toestaanlijst van agent-id’s voor explicietesessions_spawn.agentId-doelen (["*"]= willekeurig; standaard: alleen dezelfde agent). Neem de requester-id op wanneer zelfgerichteagentId-aanroepen toegestaan moeten zijn.- Sandbox-overervingsbewaking: als de requester-sessie in een sandbox draait, weigert
sessions_spawndoelen die zonder sandbox zouden draaien. subagents.requireAgentId: wanneer waar, blokkeersessions_spawn-aanroepen dieagentIdweglaten (dwingt expliciete profielselectie af; standaard: onwaar).
Routering voor meerdere agents
Voer meerdere geïsoleerde agents uit binnen één Gateway. Zie Multi-Agent.Binding-matchvelden
type(optioneel):routevoor normale routering (ontbrekend type gebruikt standaard route),acpvoor persistente ACP-gespreksbindings.match.channel(vereist)match.accountId(optioneel;*= elk account; weggelaten = standaardaccount)match.peer(optioneel;{ kind: direct|group|channel, id })match.guildId/match.teamId(optioneel; kanaalspecifiek)acp(optioneel; alleen voortype: "acp"):{ mode, label, cwd, backend }
match.peermatch.guildIdmatch.teamIdmatch.accountId(exact, geen peer/guild/team)match.accountId: "*"(kanaalbreed)- Standaardagent
bindings-vermelding.
Voor type: "acp"-vermeldingen lost OpenClaw op via exacte gespreksidentiteit (match.channel + account + match.peer.id) en gebruikt het de routebindingslaagvolgorde hierboven niet.
Toegangsprofielen per agent
Volledige toegang (geen sandbox)
Volledige toegang (geen sandbox)
Alleen-lezen tools + werkruimte
Alleen-lezen tools + werkruimte
Geen bestandssysteemtoegang (alleen berichten)
Geen bestandssysteemtoegang (alleen berichten)
Sessie
Details van sessievelden
Details van sessievelden
scope: basissessie-groeperingsstrategie voor groepschatcontexten.per-sender(standaard): elke verzender krijgt een geïsoleerde sessie binnen een kanaalcontext.global: alle deelnemers in een kanaalcontext delen één sessie (gebruik dit alleen wanneer gedeelde context bedoeld is).
dmScope: hoe DM’s worden gegroepeerd.main: alle DM’s delen de hoofdsessie.per-peer: isoleer op verzender-id over kanalen heen.per-channel-peer: isoleer per kanaal + verzender (aanbevolen voor inboxen met meerdere gebruikers).per-account-channel-peer: isoleer per account + kanaal + verzender (aanbevolen voor meerdere accounts).
identityLinks: koppel canonieke id’s aan provider-geprefixte peers voor sessiedeling tussen kanalen. Dock-opdrachten zoals/dock_discordgebruiken dezelfde koppeling om de antwoordroute van de actieve sessie naar een andere gekoppelde kanaalpeer te schakelen; zie Kanaal-docking.reset: primair resetbeleid.dailyreset op lokale tijdatHour;idlereset naidleMinutes. Wanneer beide zijn geconfigureerd, wint degene die het eerst verloopt. Versheid voor dagelijkse resets gebruikt desessionStartedAtvan de sessierij; versheid voor inactiviteitsresets gebruiktlastInteractionAt. Achtergrond-/systeemevent-writes zoals Heartbeat, Cron-wakeups, exec-meldingen en Gateway-boekhouding kunnenupdatedAtbijwerken, maar ze houden dagelijkse/inactiviteitssessies niet vers.resetByType: overschrijvingen per type (direct,group,thread). Legacydmwordt geaccepteerd als alias voordirect.parentForkMaxTokens: maximaal toegestanetotalTokensvan de oudersessie bij het maken van een geforkte threadsessie (standaard100000).- Als
totalTokensvan de ouder boven deze waarde ligt, start OpenClaw een nieuwe threadsessie in plaats van de transcriptgeschiedenis van de ouder te erven. - Stel
0in om deze bewaking uit te schakelen en ouderforking altijd toe te staan.
- Als
mainKey: legacy veld. Runtime gebruikt altijd"main"voor de hoofd-bucket voor directe chats.agentToAgent.maxPingPongTurns: maximaal aantal heen-en-weer antwoordbeurten tussen agents tijdens agent-naar-agent-uitwisselingen (integer, bereik:0–5).0schakelt pingpongketens uit.sendPolicy: match opchannel,chatType(direct|group|channel, met legacy-aliasdm),keyPrefixofrawKeyPrefix. Eerste weigering wint.maintenance: opschoning van sessiestore + bewaarbeheer.mode:warngeeft alleen waarschuwingen;enforcepast opschoning toe.pruneAfter: leeftijdsgrens voor verouderde vermeldingen (standaard30d).maxEntries: maximaal aantal vermeldingen insessions.json(standaard500). Runtime schrijft batchopschoning met een kleine high-water-buffer voor productie-grote limieten;openclaw sessions cleanup --enforcepast de limiet onmiddellijk toe.rotateBytes: verouderd en genegeerd;openclaw doctor --fixverwijdert het uit oudere configuraties.resetArchiveRetention: bewaartermijn voor*.reset.<timestamp>-transcriptarchieven. Standaard gelijk aanpruneAfter; stelfalsein om uit te schakelen.maxDiskBytes: optioneel schijfbudget voor de sessiemap. Inwarn-modus logt dit waarschuwingen; inenforce-modus verwijdert dit eerst de oudste artefacten/sessies.highWaterBytes: optioneel doel na budgetopschoning. Standaard80%vanmaxDiskBytes.
threadBindings: globale standaardwaarden voor threadgebonden sessiefuncties.enabled: hoofdschakelaar voor standaardwaarde (providers kunnen overschrijven; Discord gebruiktchannels.discord.threadBindings.enabled)idleHours: standaard automatische ontfocus bij inactiviteit in uren (0schakelt uit; providers kunnen overschrijven)maxAgeHours: standaard harde maximumleeftijd in uren (0schakelt uit; providers kunnen overschrijven)
Berichten
Antwoordprefix
Overschrijvingen per kanaal/account:channels.<channel>.responsePrefix, channels.<channel>.accounts.<id>.responsePrefix.
Resolutie (meest specifiek wint): account → kanaal → globaal. "" schakelt uit en stopt cascade. "auto" leidt [{identity.name}] af.
Sjabloonvariabelen:
| Variabele | Beschrijving | Voorbeeld |
|---|---|---|
{model} | Korte modelnaam | claude-opus-4-6 |
{modelFull} | Volledige model-id | anthropic/claude-opus-4-6 |
{provider} | Providernaam | anthropic |
{thinkingLevel} | Huidig denkniveau | high, low, off |
{identity.name} | Naam van agentidentiteit | (hetzelfde als "auto") |
{think} is een alias voor {thinkingLevel}.
Bevestigingsreactie
- Staat standaard op
identity.emojivan de actieve agent, anders"👀". Stel in op""om uit te schakelen. - Overschrijvingen per kanaal:
channels.<channel>.ackReaction,channels.<channel>.accounts.<id>.ackReaction. - Resolutievolgorde: account → kanaal →
messages.ackReaction→ terugval op identiteit. - Bereik:
group-mentions(standaard),group-all,direct,all. removeAckAfterReply: verwijdert de bevestiging na het antwoord op kanalen met reactieondersteuning, zoals Slack, Discord, Telegram, WhatsApp en BlueBubbles.messages.statusReactions.enabled: schakelt statusreacties voor de levenscyclus in op Slack, Discord en Telegram. Op Slack en Discord blijven statusreacties ingeschakeld wanneer bevestigingsreacties actief zijn als dit niet is ingesteld. Stel dit op Telegram expliciet in optrueom statusreacties voor de levenscyclus in te schakelen.
Inkomende debounce
Bundelt snelle tekstberichten van dezelfde afzender in één agentbeurt. Media/bijlagen flushen onmiddellijk. Besturingsopdrachten omzeilen debouncing.TTS (tekst-naar-spraak)
autobeheert de standaardmodus voor automatische TTS:off,always,inboundoftagged./tts on|offkan lokale voorkeuren overschrijven, en/tts statustoont de effectieve status.summaryModeloverschrijftagents.defaults.model.primaryvoor automatische samenvatting.modelOverridesis standaard ingeschakeld;modelOverrides.allowProviderstaat standaard opfalse(opt-in).- API-sleutels vallen terug op
ELEVENLABS_API_KEY/XI_API_KEYenOPENAI_API_KEY. - Meegeleverde spraakproviders zijn eigendom van plugins. Als
plugins.allowis ingesteld, neem dan elke TTS-providerplugin op die je wilt gebruiken, bijvoorbeeldmicrosoftvoor Edge TTS. De verouderde provider-idedgewordt geaccepteerd als alias voormicrosoft. providers.openai.baseUrloverschrijft het OpenAI TTS-eindpunt. De resolutievolgorde is configuratie, daarnaOPENAI_TTS_BASE_URL, daarnahttps://api.openai.com/v1.- Wanneer
providers.openai.baseUrlnaar een niet-OpenAI-eindpunt verwijst, behandelt OpenClaw dit als een OpenAI-compatibele TTS-server en versoepelt het model-/stemvalidatie.
Spreken
Standaardwaarden voor de spreekmodus (macOS/iOS/Android).talk.providermoet overeenkomen met een sleutel intalk.providerswanneer meerdere spreekproviders zijn geconfigureerd.- Verouderde platte spreeksleutels (
talk.voiceId,talk.voiceAliases,talk.modelId,talk.outputFormat,talk.apiKey) zijn alleen voor compatibiliteit en worden automatisch gemigreerd naartalk.providers.<provider>. - Stem-id’s vallen terug op
ELEVENLABS_VOICE_IDofSAG_VOICE_ID. providers.*.apiKeyaccepteert platteteksttekenreeksen of SecretRef-objecten.- Terugval op
ELEVENLABS_API_KEYis alleen van toepassing wanneer er geen Talk-API-sleutel is geconfigureerd. providers.*.voiceAliaseslaat Talk-richtlijnen vriendelijke namen gebruiken.providers.mlx.modelIdselecteert de Hugging Face-repo die wordt gebruikt door de macOS local MLX-helper. Als dit is weggelaten, gebruikt macOSmlx-community/Soprano-80M-bf16.- macOS MLX-weergave loopt via de meegeleverde
openclaw-mlx-tts-helper wanneer die aanwezig is, of via een uitvoerbaar bestand opPATH;OPENCLAW_MLX_TTS_BINoverschrijft het helperpad voor ontwikkeling. speechLocalestelt de BCP 47-locale-id in die wordt gebruikt door iOS/macOS-spraakherkenning voor Talk. Laat dit uitgeschakeld om de apparaatstandaard te gebruiken.silenceTimeoutMsbepaalt hoe lang de spreekmodus na stilte van de gebruiker wacht voordat het transcript wordt verzonden. Niet ingesteld behoudt het standaard pauzevenster van het platform (700 ms op macOS en Android, 900 ms op iOS).
Gerelateerd
- Configuratiereferentie — alle andere configuratiesleutels
- Configuratie — veelvoorkomende taken en snelle installatie
- Configuratievoorbeelden