OpenClaw leest een optionele -configuratie uitDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
~/.openclaw/openclaw.json.
Het actieve configuratiepad moet een regulier bestand zijn. Gesymlinkte openclaw.json-
layouts worden niet ondersteund voor schrijfacties die OpenClaw beheert; een atomische schrijfactie kan
het pad vervangen in plaats van de symlink te behouden. Als je configuratie buiten de
standaardstatusmap bewaart, laat OPENCLAW_CONFIG_PATH dan rechtstreeks naar het echte bestand wijzen.
Als het bestand ontbreekt, gebruikt OpenClaw veilige standaardwaarden. Veelvoorkomende redenen om een configuratie toe te voegen:
- Kanalen verbinden en bepalen wie de bot berichten kan sturen
- Modellen, tools, sandboxing of automatisering instellen (Cron, hooks)
- Sessies, media, netwerken of UI afstemmen
config.schema.lookup gebruiken voor exacte documentatie
op veldniveau voordat ze configuratie bewerken. Gebruik deze pagina voor taakgerichte begeleiding en
Configuratiereferentie voor de bredere
veldkaart en standaardwaarden.
Minimale configuratie
Configuratie bewerken
- Interactieve wizard
- CLI (one-liners)
- Control UI
- Direct bewerken
Strikte validatie
openclaw config schema toont het canonieke JSON Schema dat door Control UI
en validatie wordt gebruikt. config.schema.lookup haalt een enkele node met padscope plus
samenvattingen van onderliggende items op voor verdiepende tooling. Documentatiemetadata voor velden
title/description wordt doorgegeven via geneste objecten, wildcard (*),
array-item ([]) en anyOf/oneOf/allOf-vertakkingen. Runtime plugin- en
kanaalschema’s worden samengevoegd wanneer het manifestregister is geladen.
Wanneer validatie mislukt:
- De Gateway start niet op
- Alleen diagnostische opdrachten werken (
openclaw doctor,openclaw logs,openclaw health,openclaw status) - Voer
openclaw doctoruit om de exacte problemen te zien - Voer
openclaw doctor --fix(of--yes) uit om reparaties toe te passen
openclaw.json later niet door validatie komt (of gateway.mode verliest, sterk
krimpt, of een losse logregel vooraan krijgt), bewaart OpenClaw het kapotte bestand
als .clobbered.*, herstelt de laatst bekende werkende kopie en logt de herstelreden.
De volgende agentbeurt ontvangt ook een systeemgebeurteniswaarschuwing, zodat de hoofdagent
de herstelde configuratie niet blind herschrijft. Promotie naar laatst bekend werkend
wordt overgeslagen wanneer een kandidaat geredigeerde geheime plaatshouders bevat, zoals ***.
Wanneer elk validatieprobleem is beperkt tot plugins.entries.<id>..., voert OpenClaw
geen herstel van het volledige bestand uit. Het houdt de huidige configuratie actief en
toont de plugin-lokale fout, zodat een plugin-schema of hostversie-mismatch
niet-gerelateerde gebruikersinstellingen niet kan terugdraaien.
Veelvoorkomende taken
Een kanaal instellen (WhatsApp, Telegram, Discord, enz.)
Een kanaal instellen (WhatsApp, Telegram, Discord, enz.)
channels.<provider>. Zie de specifieke kanaalpagina voor installatiestappen:- WhatsApp —
channels.whatsapp - Telegram —
channels.telegram - Discord —
channels.discord - Feishu —
channels.feishu - Google Chat —
channels.googlechat - Microsoft Teams —
channels.msteams - Slack —
channels.slack - Signal —
channels.signal - iMessage —
channels.imessage - Mattermost —
channels.mattermost
Modellen kiezen en configureren
Modellen kiezen en configureren
agents.defaults.modelsdefinieert de modelcatalogus en fungeert als allowlist voor/model.- Gebruik
openclaw config set agents.defaults.models '<json>' --strict-json --mergeom allowlist-items toe te voegen zonder bestaande modellen te verwijderen. Gewone vervangingen die items zouden verwijderen worden geweigerd tenzij je--replacedoorgeeft. - Modelrefs gebruiken de indeling
provider/model(bijv.anthropic/claude-opus-4-6). agents.defaults.imageMaxDimensionPxbepaalt het verkleinen van transcript-/toolafbeeldingen (standaard1200); lagere waarden verminderen meestal het gebruik van vision-tokens bij runs met veel screenshots.- Zie Modellen-CLI om modellen in chat te wisselen en Model-failover voor auth-rotatie en fallbackgedrag.
- Zie Aangepaste providers in de referentie voor aangepaste/zelfgehoste providers.
Bepalen wie de bot berichten kan sturen
Bepalen wie de bot berichten kan sturen
dmPolicy:"pairing"(standaard): onbekende afzenders krijgen een eenmalige koppelcode voor goedkeuring"allowlist": alleen afzenders inallowFrom(of de gekoppelde toestemmingsopslag)"open": sta alle inkomende DM’s toe (vereistallowFrom: ["*"])"disabled": negeer alle DM’s
groupPolicy + groupAllowFrom of kanaalspecifieke allowlists.Zie de volledige referentie voor details per kanaal.Vermeldingscontrole voor groepschat instellen
Vermeldingscontrole voor groepschat instellen
- Metadatavermeldingen: native @-vermeldingen (WhatsApp tik-om-te-vermelden, Telegram @bot, enz.)
- Tekstpatronen: veilige regex-patronen in
mentionPatterns - Zichtbare antwoorden:
messages.visibleReplieskan wereldwijd verzending via berichtentools vereisen;messages.groupChat.visibleRepliesoverschrijft dat voor groepen/kanalen. - Zie de volledige referentie voor zichtbare antwoordmodi, overschrijvingen per kanaal en zelfchatmodus.
Skills per agent beperken
Skills per agent beperken
agents.defaults.skills voor een gedeelde basis en overschrijf daarna specifieke
agents met agents.list[].skills:- 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. - Zie Skills, Skills-configuratie en de Configuratiereferentie.
Gezondheidsbewaking van Gateway-kanalen afstemmen
Gezondheidsbewaking van Gateway-kanalen afstemmen
- Stel
gateway.channelHealthCheckMinutes: 0in om health-monitor-herstarts wereldwijd uit te schakelen. channelStaleEventThresholdMinutesmoet groter zijn dan of gelijk zijn aan het controle-interval.- Gebruik
channels.<provider>.healthMonitor.enabledofchannels.<provider>.accounts.<id>.healthMonitor.enabledom automatische herstarts voor één kanaal of account uit te schakelen zonder de globale monitor uit te schakelen. - Zie Health Checks voor operationele foutopsporing en de volledige referentie voor alle velden.
Gateway WebSocket-handshake-time-out afstemmen
Gateway WebSocket-handshake-time-out afstemmen
- Standaard is
15000milliseconden. OPENCLAW_HANDSHAKE_TIMEOUT_MSheeft nog steeds voorrang voor eenmalige service- of shell-overschrijvingen.- Los bij voorkeur eerst vastlopers bij startup/event-loop op; deze knop is bedoeld voor hosts die gezond zijn maar traag tijdens het opwarmen.
Sessies en resets configureren
Sessies en resets configureren
dmScope:main(gedeeld) |per-peer|per-channel-peer|per-account-channel-peerthreadBindings: globale standaardwaarden voor sessierouting die aan threads is gebonden (Discord ondersteunt/focus,/unfocus,/agents,/session idleen/session max-age).- Zie Sessiebeheer voor scoping, identiteitskoppelingen en verzendbeleid.
- Zie volledige referentie voor alle velden.
Sandboxing inschakelen
Sandboxing inschakelen
scripts/sandbox-setup.shZie Sandboxing voor de volledige handleiding en volledige referentie voor alle opties.Relay-ondersteunde push voor officiële iOS-builds inschakelen
Relay-ondersteunde push voor officiële iOS-builds inschakelen
openclaw.json.Stel dit in de Gateway-configuratie in:- Laat de Gateway
push.test, wake-nudges en reconnect-wakes via de externe relay verzenden. - Gebruikt een verzendtoekenning met registratiescope die door de gekoppelde iOS-app wordt doorgestuurd. De Gateway heeft geen implementatiebrede relay-token nodig.
- Bindt elke relay-ondersteunde registratie aan de Gateway-identiteit waarmee de iOS-app is gekoppeld, zodat een andere Gateway de opgeslagen registratie niet opnieuw kan gebruiken.
- Houdt lokale/handmatige iOS-builds op directe APNs. Relay-ondersteunde verzendingen zijn alleen van toepassing op officiële gedistribueerde builds die via de relay zijn geregistreerd.
- Moet overeenkomen met de relay-basis-URL die in de officiële/TestFlight-iOS-build is ingebakken, zodat registratie- en verzendverkeer dezelfde relay-implementatie bereiken.
- Installeer een officiële/TestFlight-iOS-build die met dezelfde relay-basis-URL is gecompileerd.
- Configureer
gateway.push.apns.relay.baseUrlop de Gateway. - Koppel de iOS-app aan de Gateway en laat zowel node- als operatorsessies verbinding maken.
- De iOS-app haalt de Gateway-identiteit op, registreert zich bij de relay met App Attest plus het appbewijs, en publiceert daarna de relay-ondersteunde
push.apns.register-payload naar de gekoppelde Gateway. - De Gateway slaat de relay-handle en verzendtoekenning op en gebruikt deze daarna voor
push.test, wake-nudges en reconnect-wakes.
- Als je de iOS-app naar een andere Gateway overschakelt, verbind de app dan opnieuw zodat deze een nieuwe relay-registratie kan publiceren die aan die Gateway is gebonden.
- Als je een nieuwe iOS-build levert die naar een andere relay-implementatie verwijst, vernieuwt de app de gecachete relay-registratie in plaats van de oude relay-origin opnieuw te gebruiken.
OPENCLAW_APNS_RELAY_BASE_URLenOPENCLAW_APNS_RELAY_TIMEOUT_MSwerken nog steeds als tijdelijke env-overrides.OPENCLAW_APNS_RELAY_ALLOW_HTTP=trueblijft een ontwikkelingsuitweg alleen voor local loopback; sla HTTP-relay-URL’s niet persistent op in configuratie.
Heartbeat instellen (periodieke check-ins)
Heartbeat instellen (periodieke check-ins)
every: duurtekenreeks (30m,2h). Stel0min om uit te schakelen.target:last|none|<channel-id>(bijvoorbeelddiscord,matrix,telegramofwhatsapp)directPolicy:allow(standaard) ofblockvoor Heartbeat-doelen in DM-stijl- Zie Heartbeat voor de volledige handleiding.
Cron-taken configureren
Cron-taken configureren
sessionRetention: voltooide geïsoleerde uitvoeringssessies uitsessions.jsonopschonen (standaard24h; stelfalsein om uit te schakelen).runLog:cron/runs/<jobId>.jsonlopschonen op grootte en bewaarde regels.- Zie Cron-taken voor een functieoverzicht en CLI-voorbeelden.
Webhooks (hooks) instellen
Webhooks (hooks) instellen
- Behandel alle hook-/Webhook-payloadinhoud als niet-vertrouwde invoer.
- Gebruik een speciale
hooks.token; hergebruik de gedeelde Gateway-token niet. - Hook-authenticatie werkt alleen via headers (
Authorization: Bearer ...ofx-openclaw-token); querystringtokens worden geweigerd. hooks.pathmag niet/zijn; houd Webhook-ingress op een speciaal subpad zoals/hooks.- Houd bypassvlaggen voor onveilige inhoud uitgeschakeld (
hooks.gmail.allowUnsafeExternalContent,hooks.mappings[].allowUnsafeExternalContent), behalve voor strikt afgebakende foutopsporing. - Als je
hooks.allowRequestSessionKeyinschakelt, stel dan ookhooks.allowedSessionKeyPrefixesin om door de aanroeper gekozen sessiesleutels te begrenzen. - Geef voor door hooks aangestuurde agents de voorkeur aan sterke moderne modellagen en strikt toolbeleid (bijvoorbeeld alleen berichten plus sandboxing waar mogelijk).
Multi-agentrouting configureren
Multi-agentrouting configureren
Configuratie opsplitsen in meerdere bestanden ($include)
Configuratie opsplitsen in meerdere bestanden ($include)
$include om grote configuraties te organiseren:- Eén bestand: vervangt het bevattende object
- Array met bestanden: diep samengevoegd in volgorde (latere wint)
- Sleutels op hetzelfde niveau: samengevoegd na includes (overschrijven opgenomen waarden)
- Geneste includes: ondersteund tot 10 niveaus diep
- Relatieve paden: opgelost relatief ten opzichte van het include-bestand
- Door OpenClaw beheerde schrijfbewerkingen: wanneer een schrijfbewerking slechts één top-level sectie wijzigt
die wordt ondersteund door een include met één bestand, zoals
plugins: { $include: "./plugins.json5" }, werkt OpenClaw dat opgenomen bestand bij en laat hetopenclaw.jsonintact - Niet-ondersteunde doorschrijfbewerking: root-includes, include-arrays en includes met overrides op hetzelfde niveau falen gesloten voor door OpenClaw beheerde schrijfbewerkingen in plaats van de configuratie plat te maken
- Foutafhandeling: duidelijke fouten voor ontbrekende bestanden, parsefouten en circulaire includes
Hot reload van configuratie
De Gateway bewaakt~/.openclaw/openclaw.json en past wijzigingen automatisch toe — voor de meeste instellingen is geen handmatige herstart nodig.
Directe bestandsbewerkingen worden als niet-vertrouwd behandeld totdat ze valideren. De watcher wacht
tot temp-write-/rename-activiteit van de editor is gestabiliseerd, leest het uiteindelijke bestand en weigert
ongeldige externe bewerkingen door de laatst bekende goede configuratie te herstellen. Door OpenClaw beheerde
configuratieschrijfbewerkingen gebruiken dezelfde schemagate voordat ze schrijven; destructieve overschrijvingen zoals
het laten vallen van gateway.mode of het verkleinen van het bestand met meer dan de helft worden geweigerd
en opgeslagen als .rejected.* voor inspectie.
Plugin-lokale validatiefouten zijn de uitzondering: als alle problemen onder
plugins.entries.<id>... vallen, behoudt reload de huidige configuratie en rapporteert het Plugin-
probleem in plaats van .last-good te herstellen.
Als je Config auto-restored from last-known-good of
config reload restored last-known-good config in logs ziet, inspecteer dan het bijbehorende
.clobbered.*-bestand naast openclaw.json, herstel de geweigerde payload en voer daarna
openclaw config validate uit. Zie Gateway-probleemoplossing
voor de herstelchecklist.
Reload-modi
| Modus | Gedrag |
|---|---|
hybrid (standaard) | Past veilige wijzigingen direct hot toe. Herstart automatisch voor kritieke wijzigingen. |
hot | Past alleen veilige wijzigingen hot toe. Logt een waarschuwing wanneer een herstart nodig is — jij handelt dit af. |
restart | Herstart de Gateway bij elke configuratiewijziging, veilig of niet. |
off | Schakelt bestandsbewaking uit. Wijzigingen worden van kracht bij de volgende handmatige herstart. |
Wat hot wordt toegepast versus wat een herstart nodig heeft
De meeste velden worden hot toegepast zonder downtime. In de modushybrid worden wijzigingen die een herstart vereisen automatisch afgehandeld.
| Categorie | Velden | Herstart nodig? |
|---|---|---|
| Kanalen | channels.*, web (WhatsApp) — alle ingebouwde en Plugin-kanalen | Nee |
| Agent en modellen | agent, agents, models, routing | Nee |
| Automatisering | hooks, cron, agent.heartbeat | Nee |
| Sessies en berichten | session, messages | Nee |
| Tools en media | tools, browser, skills, mcp, audio, talk | Nee |
| UI en diversen | ui, logging, identity, bindings | Nee |
| Gateway-server | gateway.* (poort, bind, auth, tailscale, TLS, HTTP) | Ja |
| Infrastructuur | discovery, canvasHost, plugins | Ja |
gateway.reload en gateway.remote zijn uitzonderingen — het wijzigen hiervan activeert geen herstart.Reload-planning
Wanneer je een bronbestand bewerkt waarnaar via$include wordt verwezen, plant OpenClaw
het herladen vanuit de door de bron geschreven lay-out, niet vanuit de afgevlakte
in-memory-weergave. Dat houdt beslissingen voor hot-reload (hot-apply versus opnieuw starten)
voorspelbaar, zelfs wanneer een enkele sectie op het hoogste niveau in een eigen included bestand staat, zoals
plugins: { $include: "./plugins.json5" }. Herlaadplanning faalt gesloten als de
bronlay-out ambigu is.
Config-RPC (programmatische updates)
Voor tooling die configuratie via de Gateway-API schrijft, gebruik bij voorkeur deze flow:config.schema.lookupom één subtree te inspecteren (ondiepe schemanode + child-samenvattingen)config.getom de huidige snapshot plushashop te halenconfig.patchvoor gedeeltelijke updates (JSON merge patch: objecten worden samengevoegd,nullverwijdert, arrays worden vervangen)config.applyalleen wanneer je de volledige configuratie wilt vervangenupdate.runvoor expliciete self-update plus herstartupdate.statusom de nieuwste update-herstartsentinel te inspecteren en na een herstart de actieve versie te verifiëren
config.schema.lookup behandelen als de eerste halte voor exacte
documentatie en beperkingen op veldniveau. Gebruik Configuratiereferentie
wanneer ze de bredere configuratiekaart, standaardwaarden of links naar specifieke
subsystem-referenties nodig hebben.
config.apply, config.patch, update.run) zijn
beperkt tot 3 requests per 60 seconden per deviceId+clientIp. Herstartrequests
worden samengevoegd en dwingen daarna een cooldown van 30 seconden af tussen herstartcycli.
update.status is alleen-lezen maar admin-scoped, omdat de herstartsentinel
samenvattingen van updatestappen en staarten van command-uitvoer kan bevatten.config.apply als config.patch accepteren raw, baseHash, sessionKey,
note en restartDelayMs. baseHash is voor beide methoden vereist wanneer er al
een configuratie bestaat.
Omgevingsvariabelen
OpenClaw leest env vars uit het parent process plus:.envuit de huidige werkdirectory (indien aanwezig)~/.openclaw/.env(globale fallback)
Shell env import (optional)
Shell env import (optional)
OPENCLAW_LOAD_SHELL_ENV=1Env var substitution in config values
Env var substitution in config values
${VAR_NAME}:- Alleen namen in hoofdletters matchen:
[A-Z_][A-Z0-9_]* - Ontbrekende/lege vars geven een fout bij het laden
- Escape met
$${VAR}voor letterlijke uitvoer - Werkt binnen
$include-bestanden - Inline substitutie:
"${BASE}/v1"→"https://api.example.com/v1"
Secret refs (env, file, exec)
Secret refs (env, file, exec)
secrets.providers voor env/file/exec) staan in Secrets Management.
Ondersteunde credential-paden staan vermeld in SecretRef Credential Surface.Volledige referentie
Voor de volledige referentie per veld, zie Configuratiereferentie.Gerelateerd: Configuratievoorbeelden · Configuratiereferentie · Doctor