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. Symlinked openclaw.json-
lay-outs worden niet ondersteund voor schrijfbewerkingen die eigendom zijn van OpenClaw; een atomische schrijfbewerking kan
het pad vervangen in plaats van de symlink te behouden. Als je de configuratie buiten de
standaard statusmap bewaart, wijs OPENCLAW_CONFIG_PATH dan rechtstreeks naar het echte bestand.
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, netwerk of UI afstemmen
config.schema.lookup gebruiken voor exacte documentatie
op veldniveau voordat ze configuratie bewerken. Gebruik deze pagina voor taakgerichte richtlijnen en
Configuratiereferentie voor de bredere
veldenkaart en standaardwaarden.
Minimale configuratie
Configuratie bewerken
- Interactive wizard
- CLI (one-liners)
- Control UI
- Direct edit
Strikte validatie
openclaw config schema print het canonieke JSON Schema dat door Control UI
en validatie wordt gebruikt. config.schema.lookup haalt één knooppunt met padbereik op plus
samenvattingen van onderliggende items voor doorklik-tooling. Documentatiemetadata voor velden title/description
wordt doorgegeven via geneste objecten, wildcard (*), array-item ([]) en anyOf/
oneOf/allOf-takken. 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
validatie niet doorstaat (inclusief Plugin-lokale validatie), mislukt het starten van de Gateway of
wordt de herlaadactie overgeslagen en behoudt de huidige runtime de laatst geaccepteerde configuratie.
Voer openclaw doctor --fix (of --yes) uit om configuratie met prefixes/overschrijvingen te repareren of
de laatst bekende werkende kopie te herstellen. Promotie naar laatst bekende werkende configuratie wordt overgeslagen wanneer een
kandidaat geredigeerde geheime placeholders bevat, zoals ***.
Veelvoorkomende taken
Set up a channel (WhatsApp, Telegram, Discord, etc.)
Set up a channel (WhatsApp, Telegram, Discord, etc.)
channels.<provider>. Zie de speciale 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
Choose and configure models
Choose and configure models
agents.defaults.modelsdefinieert de modelcatalogus en fungeert als de allowlist voor/model;provider/*-items filteren/model,/modelsen modelkiezers tot geselecteerde providers, terwijl ze nog steeds dynamische modelontdekking gebruiken.- 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. - Modelverwijzingen gebruiken de indeling
provider/model(bijv.anthropic/claude-opus-4-6). agents.defaults.imageMaxDimensionPxregelt het verkleinen van transcript-/toolafbeeldingen (standaard1200); lagere waarden verminderen meestal het gebruik van vision-tokens bij runs met veel screenshots.- Zie Models CLI voor het wisselen van modellen in chat en Model Failover voor auth-rotatie en fallback-gedrag.
- Voor aangepaste/zelf gehoste providers, zie Aangepaste providers in de referentie.
Control who can message the bot
Control who can message the bot
dmPolicy:"pairing"(standaard): onbekende afzenders krijgen een eenmalige koppelcode om goed te keuren"allowlist": alleen afzenders inallowFrom(of de gekoppelde allow-store)"open": alle inkomende DM’s toestaan (vereistallowFrom: ["*"])"disabled": alle DM’s negeren
groupPolicy + groupAllowFrom of kanaalspecifieke allowlists.Zie de volledige referentie voor details per kanaal.Set up group chat mention gating
Set up group chat mention gating
- Metadatavermeldingen: native @-vermeldingen (WhatsApp tik-om-te-vermelden, Telegram @bot, enz.)
- Tekstpatronen: veilige regex-patronen in
mentionPatterns - Zichtbare antwoorden:
messages.visibleReplieskan bericht-toolverzendingen globaal vereisen;messages.groupChat.visibleRepliesoverschrijft dat voor groepen/kanalen. - Zie volledige referentie voor modi voor zichtbare antwoorden, overschrijvingen per kanaal en zelfchatmodus.
Restrict skills per agent
Restrict skills per agent
agents.defaults.skills voor een gedeelde basislijn en overschrijf daarna specifieke
agenten 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.
Tune gateway channel health monitoring
Tune gateway channel health monitoring
- Stel
gateway.channelHealthCheckMinutes: 0in om health-monitor-herstarts globaal 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 operationeel debuggen en de volledige referentie voor alle velden.
Tune gateway WebSocket handshake timeout
Tune gateway WebSocket handshake timeout
- Standaard is
15000milliseconden. OPENCLAW_HANDSHAKE_TIMEOUT_MSheeft nog steeds voorrang voor eenmalige service- of shell-overschrijvingen.- Los bij voorkeur eerst startup-/event-loop-stalls op; deze knop is bedoeld voor hosts die gezond zijn maar traag tijdens het opwarmen.
Configure sessions and resets
Configure sessions and resets
dmScope:main(gedeeld) |per-peer|per-channel-peer|per-account-channel-peerthreadBindings: globale standaardwaarden voor sessieroutering 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.sh uit, of zie vanuit een npm-installatie de inline docker build-opdracht in Sandboxing § Images en installatie.Zie Sandboxing voor de volledige handleiding en volledige referentie voor alle opties.Relay-ondersteunde push inschakelen voor officiele iOS-builds
Relay-ondersteunde push inschakelen voor officiele iOS-builds
openclaw.json.Stel dit in de gatewayconfiguratie in:- Laat de gateway
push.test, wake-nudges en reconnect-wakes via de externe relay verzenden. - Gebruikt een registratie-gebonden verzendmachtiging die door de gekoppelde iOS-app wordt doorgestuurd. De gateway heeft geen implementatiebrede relay-token nodig.
- Bindt elke relay-ondersteunde registratie aan de gatewayidentiteit 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 gelden alleen voor officieel gedistribueerde builds die via de relay zijn geregistreerd.
- Moet overeenkomen met de relay-basis-URL die in de officiele/TestFlight iOS-build is ingebakken, zodat registratie- en verzendverkeer dezelfde relay-implementatie bereiken.
- Installeer een officiele/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 gatewayidentiteit op, registreert zich bij de relay met App Attest plus de appreceipt en publiceert daarna de relay-ondersteunde
push.apns.register-payload naar de gekoppelde gateway. - De gateway slaat de relay-handle en verzendmachtiging op en gebruikt ze daarna voor
push.test, wake-nudges en reconnect-wakes.
- Als je de iOS-app naar een andere gateway omschakelt, verbind de app dan opnieuw zodat deze een nieuwe relayregistratie kan publiceren die aan die gateway is gebonden.
- Als je een nieuwe iOS-build verzendt die naar een andere relay-implementatie verwijst, vernieuwt de app de gecachete relayregistratie in plaats van de oude relay-oorsprong opnieuw te gebruiken.
OPENCLAW_APNS_RELAY_BASE_URLenOPENCLAW_APNS_RELAY_TIMEOUT_MSwerken nog steeds als tijdelijke omgevingsoverschrijvingen.OPENCLAW_APNS_RELAY_ALLOW_HTTP=trueblijft een local loopback-ontwikkeluitweg; sla geen HTTP-relay-URL’s blijvend op in configuratie.
Heartbeat instellen (periodieke check-ins)
Heartbeat instellen (periodieke check-ins)
every: duurstring (30m,2h). Stel0min om uit te schakelen.target:last|none|<channel-id>(bijvoorbeelddiscord,matrix,telegramofwhatsapp)directPolicy:allow(standaard) ofblockvoor DM-achtige heartbeatdoelen- Zie Heartbeat voor de volledige handleiding.
Cron-taken configureren
Cron-taken configureren
sessionRetention: verwijder voltooide geisoleerde runsessies uitsessions.json(standaard24h; stelfalsein om uit te schakelen).runLog: snoeicron/runs/<jobId>.jsonlop grootte en behouden regels.- Zie Cron-taken voor een functieoverzicht en CLI-voorbeelden.
Webhooks instellen (hooks)
Webhooks instellen (hooks)
- Behandel alle hook-/webhookpayloadinhoud als niet-vertrouwde invoer.
- Gebruik een speciale
hooks.token; hergebruik de gedeelde Gateway-token niet. - Hookauthenticatie werkt alleen via headers (
Authorization: Bearer ...ofx-openclaw-token); querystringtokens worden geweigerd. hooks.pathmag niet/zijn; houd webhookingress op een speciaal subpad zoals/hooks.- Houd bypassvlaggen voor onveilige inhoud uitgeschakeld (
hooks.gmail.allowUnsafeExternalContent,hooks.mappings[].allowUnsafeExternalContent), behalve bij strikt afgebakende debugging. - Als je
hooks.allowRequestSessionKeyinschakelt, stel dan ookhooks.allowedSessionKeyPrefixesin om door de aanroeper gekozen sessiesleutels te begrenzen. - Geef voor hook-gestuurde agents de voorkeur aan sterke moderne modelniveaus en strikt toolbeleid (bijvoorbeeld alleen messaging plus waar mogelijk sandboxing).
Multi-agentrouting configureren
Multi-agentrouting configureren
Configuratie splitsen over meerdere bestanden ($include)
Configuratie splitsen over meerdere bestanden ($include)
$include om grote configuraties te organiseren:- Enkel bestand: vervangt het bevattende object
- Array van bestanden: in volgorde diep samengevoegd (latere wint)
- Sibling keys: samengevoegd na includes (overschrijven geinclude waarden)
- Geneste includes: ondersteund tot 10 niveaus diep
- Relatieve paden: opgelost relatief aan het includende bestand
- OpenClaw-owned writes: wanneer een schrijfactie slechts een top-level sectie wijzigt
die wordt ondersteund door een single-file include zoals
plugins: { $include: "./plugins.json5" }, werkt OpenClaw dat geinclude bestand bij en laatopenclaw.jsonintact - Niet-ondersteunde write-through: root-includes, include-arrays en includes met sibling-overschrijvingen falen gesloten voor OpenClaw-owned writes in plaats van de configuratie af te vlakken
- Inperking:
$include-paden moeten uitkomen onder de directory dieopenclaw.jsonbevat. Om een boomstructuur tussen machines of gebruikers te delen, stelOPENCLAW_INCLUDE_ROOTSin op een padenlijst (:op POSIX,;op Windows) met extra directories waarnaar includes mogen verwijzen. Symlinks worden opgelost en opnieuw gecontroleerd, dus een pad dat lexicaal in een configuratiedirectory staat maar waarvan het echte doel buiten elke toegestane root valt, wordt nog steeds geweigerd. - Foutafhandeling: duidelijke fouten voor ontbrekende bestanden, parsefouten en circulaire includes
Configuratie-hot reload
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 editor-temp-write-/rename-activiteit is gestabiliseerd, leest het uiteindelijke bestand en weigert
ongeldige externe bewerkingen zonder openclaw.json te herschrijven. OpenClaw-owned configuratie
schrijfacties gebruiken dezelfde schemagate voordat ze schrijven; destructieve overschrijvingen zoals
het laten vallen van gateway.mode of het met meer dan de helft verkleinen van het bestand worden geweigerd en
opgeslagen als .rejected.* voor inspectie.
Als je config reload skipped (invalid config) ziet of de startup Invalid config meldt, inspecteer dan de configuratie, voer openclaw config validate uit en voer daarna openclaw doctor --fix uit voor reparatie. Zie Gateway-probleemoplossing
voor de checklist.
Herlaadmodi
| 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 vereist
De meeste velden worden hot toegepast zonder downtime. Inhybrid-modus 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 overig | ui, logging, identity, bindings | Nee |
| Gatewayserver | gateway.* (poort, bind, auth, tailscale, TLS, HTTP) | Ja |
| Infrastructuur | discovery, plugins | Ja |
gateway.reload en gateway.remote zijn uitzonderingen - als je ze wijzigt, wordt er geen herstart geactiveerd.Herlaadplanning
Wanneer je een bronbestand bewerkt waarnaar via$include wordt verwezen, plant OpenClaw
het herladen vanuit de door de bron geschreven indeling, niet vanuit de afgeplatte weergave in het geheugen.
Daardoor blijven beslissingen voor hot-reload (hot-apply versus herstart) voorspelbaar, zelfs wanneer een
enkele sectie op topniveau in een eigen opgenomen bestand staat, zoals
plugins: { $include: "./plugins.json5" }. Herlaadplanning faalt gesloten als de
bronindeling dubbelzinnig is.
Configuratie-RPC (programmatische updates)
Gebruik voor tooling die configuratie schrijft via de Gateway-API bij voorkeur deze flow:config.schema.lookupom één subtree te inspecteren (ondiep schemaknooppunt + onderliggende 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 zelfupdate plus herstart; neemcontinuationMessageop wanneer de sessie na de herstart één vervolgronde moet uitvoerenupdate.statusom de nieuwste update-herstartsentinel te inspecteren en de actieve versie na een herstart te verifiëren
config.schema.lookup behandelen als de eerste plek voor exacte
documentatie en beperkingen op veldniveau. Gebruik Configuratiereferentie
wanneer ze de bredere configuratiekaart, standaardwaarden of links naar specifieke
subsystemreferenties nodig hebben.
config.apply, config.patch, update.run) zijn
rate-limited tot 3 aanvragen per 60 seconden per deviceId+clientIp. Herstartaanvragen
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 opdrachtuitvoer kan bevatten.config.apply als config.patch accepteren raw, baseHash, sessionKey,
note en restartDelayMs. baseHash is vereist voor beide methoden wanneer er al een
configuratie bestaat.
Omgevingsvariabelen
OpenClaw leest env vars uit het bovenliggende proces plus:.envuit de huidige werkdirectory (indien aanwezig)~/.openclaw/.env(globale fallback)
Shell-env importeren (optioneel)
Shell-env importeren (optioneel)
OPENCLAW_LOAD_SHELL_ENV=1Env var-substitutie in configuratiewaarden
Env var-substitutie in configuratiewaarden
${VAR_NAME}:- Alleen hoofdletternamen komen overeen:
[A-Z_][A-Z0-9_]* - Ontbrekende/lege vars veroorzaken een fout tijdens 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 Geheimenbeheer.
Ondersteunde credential-paden staan vermeld in SecretRef-credentialoppervlak.Volledige referentie
Zie Configuratiereferentie voor de volledige referentie per veld.Gerelateerd: Configuratievoorbeelden · Configuratiereferentie · Doctor