Kernconfiguratiereferentie voorDocumentation Index
Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
~/.openclaw/openclaw.json. Zie Configuratie voor een taakgericht overzicht.
Behandelt de belangrijkste OpenClaw-configuratieoppervlakken en linkt door wanneer een subsysteem een eigen diepgaandere referentie heeft. Kanaal- en pluginbeheerde opdrachtcatalogi en diepgaande geheugen-/QMD-instellingen staan op hun eigen pagina’s in plaats van op deze pagina.
Codewaarheid:
openclaw config schemadrukt het live JSON Schema af dat wordt gebruikt voor validatie en Control UI, met gebundelde/plugin-/kanaalmetadata samengevoegd wanneer beschikbaarconfig.schema.lookupretourneert één padgebonden schemaknooppunt voor drill-downtoolingpnpm config:docs:check/pnpm config:docs:genvalideren de baselinehash van de configuratiedocumentatie tegen het huidige schemaoppervlak
gateway-toolactie config.schema.lookup voor
exacte veldniveau-documentatie en beperkingen vóór bewerkingen. Gebruik
Configuratie voor taakgerichte begeleiding en deze pagina
voor de bredere veldenkaart, standaardwaarden en links naar subsysteemreferenties.
Toegewijde diepgaande referenties:
- Referentie voor geheugenconfiguratie voor
agents.defaults.memorySearch.*,memory.qmd.*,memory.citationsen Dreaming-configuratie onderplugins.entries.memory-core.config.dreaming - Slash-opdrachten voor de huidige ingebouwde + gebundelde opdrachtcatalogus
- eigenaarspagina’s van kanalen/plugins voor kanaalspecifieke opdrachtoppervlakken
Kanalen
Configuratiesleutels per kanaal zijn verplaatst naar een toegewijde pagina - zie Configuratie - kanalen voorchannels.*,
inclusief Slack, Discord, Telegram, WhatsApp, Matrix, iMessage en andere
gebundelde kanalen (auth, toegangscontrole, meerdere accounts, vermeldingsgating).
Agentstandaardwaarden, meerdere agents, sessies en berichten
Verplaatst naar een toegewijde pagina - zie Configuratie - agents voor:agents.defaults.*(werkruimte, model, denken, Heartbeat, geheugen, media, skills, sandbox)multiAgent.*(routering en bindingen voor meerdere agents)session.*(sessielevenscyclus, Compaction, snoeien)messages.*(berichtbezorging, TTS, markdownweergave)talk.*(Talk-modus)talk.consultThinkingLevel: override voor denkniveau voor de volledige OpenClaw-agentrun achter realtime consults van Control UI Talktalk.consultFastMode: eenmalige fast-mode-override voor realtime consults van Control UI Talktalk.speechLocale: optionele BCP 47-locale-id voor Talk-spraakherkenning op iOS/macOStalk.silenceTimeoutMs: wanneer niet ingesteld, behoudt Talk het platformstandaard pauzevenster voordat het transcript wordt verzonden (700 ms on macOS and Android, 900 ms on iOS)
Tools en aangepaste providers
Toolbeleid, experimentele schakelaars, providerondersteunde toolconfiguratie en aangepaste provider-/basis-URL-instelling zijn verplaatst naar een toegewijde pagina - zie Configuratie - tools en aangepaste providers.Modellen
Providerdefinities, model-allowlists en aangepaste providerinstellingen staan in Configuratie - tools en aangepaste providers. Demodels-root beheert ook globaal gedrag van de modelcatalogus.
models.mode: gedrag van providercatalogus (mergeofreplace).models.providers: aangepaste providermap, gesleuteld op provider-id.models.providers.*.localService: optionele procesmanager op aanvraag voor lokale modelservers. OpenClaw controleert het geconfigureerde health-eindpunt, start de absolutecommandwanneer nodig, wacht op gereedheid en verzendt daarna het modelverzoek. Zie Lokale modelservices.models.pricing.enabled: beheert de achtergrondbootstrap voor prijzen die start nadat sidecars en kanalen het Gateway-gereedpad bereiken. Wanneerfalse, slaat de Gateway het ophalen van OpenRouter- en LiteLLM-prijscatalogi over; geconfigureerde waarden voormodels.providers.*.models[].costblijven werken voor lokale kostenramingen.
MCP
Door OpenClaw beheerde MCP-serverdefinities staan ondermcp.servers en worden
gebruikt door embedded Pi en andere runtime-adapters. De opdrachten openclaw mcp list,
show, set en unset beheren dit blok zonder tijdens configuratiebewerkingen verbinding te maken met de
doelserver.
mcp.servers: benoemde stdio- of remote MCP-serverdefinities voor runtimes die geconfigureerde MCP-tools beschikbaar maken. Remote-items gebruikentransport: "streamable-http"oftransport: "sse";type: "http"is een CLI-native alias dieopenclaw mcp setenopenclaw doctor --fixnormaliseren naar het canonieketransport-veld.mcp.sessionIdleTtlMs: idle-TTL voor sessiegebonden gebundelde MCP-runtimes. Eenmalige embedded runs vragen opschoning aan het einde van de run aan; deze TTL is de achtervang voor langlevende sessies en toekomstige callers.- Wijzigingen onder
mcp.*worden hot-applied door MCP-runtimes in gecachte sessies te verwijderen. De volgende tooldiscovery/-gebruik maakt ze opnieuw aan vanuit de nieuwe configuratie, zodat verwijderdemcp.servers-items direct worden opgeschoond in plaats van te wachten op de idle-TTL.
Skills
allowBundled: optionele allowlist alleen voor gebundelde skills (beheerde/werkruimte-skills blijven onaangetast).load.extraDirs: extra gedeelde skill-roots (laagste prioriteit).load.allowSymlinkTargets: vertrouwde echte doelroots waarnaar skill-symlinks mogen resolven wanneer de link buiten de geconfigureerde bronroot staat.install.preferBrew: wanneer true, geef de voorkeur aan Homebrew-installers wanneerbrewbeschikbaar is voordat wordt teruggevallen op andere installertypen.install.nodeManager: voorkeur voor node-installer voormetadata.openclaw.installspecificaties (npm|pnpm|yarn|bun).install.allowUploadedArchives: sta vertrouwdeoperator.adminGateway-clients toe privé-ziparchieven te installeren die zijn gestaged viaskills.upload.*(standaard: false). Dit schakelt alleen het pad voor geüploade archieven in; normale ClawHub- installaties vereisen dit niet.entries.<skillKey>.enabled: falseschakelt een skill uit, zelfs als deze gebundeld/geïnstalleerd is.entries.<skillKey>.apiKey: gemak voor skills die een primaire env-var declareren (plaintext string of SecretRef-object).
Plugins
- Geladen vanuit
~/.openclaw/extensions,<workspace>/.openclaw/extensions, plusplugins.load.paths. - Discovery accepteert native OpenClaw-plugins plus compatibele Codex-bundels en Claude-bundels, inclusief manifestloze Claude-bundels met standaardlay-out.
- Configuratiewijzigingen vereisen een gateway-herstart.
allow: optionele allowlist (alleen vermelde plugins worden geladen).denywint.bundledDiscovery: standaard"allowlist"voor nieuwe configuraties, zodat een niet-legeplugins.allowook gebundelde providerplugins gate, inclusief web-search runtimeproviders. Doctor schrijft"compat"voor gemigreerde verouderde allowlist- configuraties om bestaand gedrag van gebundelde providers te behouden totdat je je aanmeldt.plugins.entries.<id>.apiKey: gemakveld voor API-sleutel op pluginniveau (wanneer ondersteund door de plugin).plugins.entries.<id>.env: env-var-map met pluginscope.plugins.entries.<id>.hooks.allowPromptInjection: wanneerfalse, blokkeert corebefore_prompt_builden negeert promptmuterende velden uit legacybefore_agent_start, terwijl legacymodelOverrideenproviderOverridebehouden blijven. Geldt voor native pluginhooks en ondersteunde door bundels geleverde hookmappen.plugins.entries.<id>.hooks.allowConversationAccess: wanneertrue, mogen vertrouwde niet-gebundelde plugins ruwe conversatie-inhoud lezen uit getypte hooks zoalsllm_input,llm_output,before_model_resolve,before_agent_reply,before_agent_run,before_agent_finalizeenagent_end.plugins.entries.<id>.subagent.allowModelOverride: vertrouw deze plugin expliciet om per-runprovider- enmodel-overrides aan te vragen voor achtergrondsubagentruns.plugins.entries.<id>.subagent.allowedModels: optionele allowlist van canoniekeprovider/model-doelen voor vertrouwde subagent-overrides. Gebruik"*"alleen wanneer je bewust elk model wilt toestaan.plugins.entries.<id>.llm.allowModelOverride: vertrouw deze plugin expliciet om modeloverrides aan te vragen voorapi.runtime.llm.complete.plugins.entries.<id>.llm.allowedModels: optionele allowlist van canoniekeprovider/model-doelen voor vertrouwde LLM-voltooiingsoverrides van plugins. Gebruik"*"alleen wanneer je bewust elk model wilt toestaan.plugins.entries.<id>.llm.allowAgentIdOverride: vertrouw deze plugin expliciet omapi.runtime.llm.completeuit te voeren tegen een niet-standaard agent-id.plugins.entries.<id>.config: door plugin gedefinieerd configuratieobject (gevalideerd door native OpenClaw-pluginschema wanneer beschikbaar).- Account-/runtime-instellingen van kanaalplugins staan onder
channels.<id>en moeten worden beschreven door dechannelConfigs-metadata van het manifest van de eigenaarplugin, niet door een centraal OpenClaw-optieregister.
Configuratie van Codex-harnasplugin
De gebundeldecodex-plugin beheert native Codex-app-serverharnasinstellingen onder
plugins.entries.codex.config. Zie
Codex-harnasreferentie voor het volledige configuratie-
oppervlak en Codex-harnas voor het runtimemodel.
codexPlugins is alleen van toepassing op sessies die het native Codex-harnas selecteren.
Het schakelt geen Codex-plugins in voor Pi, normale OpenAI-providerruns, ACP-
conversatiebindingen of een niet-Codex-harnas.
plugins.entries.codex.config.codexPlugins.enabled: schakelt native Codex plugin-/app-ondersteuning in voor de Codex-harness. Standaard:false.plugins.entries.codex.config.codexPlugins.allow_destructive_actions: standaardbeleid voor destructieve acties voor gemigreerde plugin-app-elicitations. Standaard:true.plugins.entries.codex.config.codexPlugins.plugins.<key>.enabled: schakelt een gemigreerde pluginvermelding in wanneer globalecodexPlugins.enabledook true is. Standaard:truevoor expliciete vermeldingen.plugins.entries.codex.config.codexPlugins.plugins.<key>.marketplaceName: stabiele marketplace-identiteit. V1 ondersteunt alleen"openai-curated".plugins.entries.codex.config.codexPlugins.plugins.<key>.pluginName: stabiele Codex-pluginidentiteit uit migratie, bijvoorbeeld"google-calendar".plugins.entries.codex.config.codexPlugins.plugins.<key>.allow_destructive_actions: override per Plugin voor beleid voor destructieve acties. Wanneer dit is weggelaten, wordt de globale waardeallow_destructive_actionsgebruikt.
codexPlugins.enabled is de globale inschakelrichtlijn. Expliciete pluginvermeldingen
die door migratie worden geschreven, vormen de duurzame set voor installatie en herstelgeschiktheid.
plugins["*"] wordt niet ondersteund, er is geen install-schakelaar, en lokale
marketplacePath-waarden zijn opzettelijk geen configuratievelden omdat ze
hostspecifiek zijn.
Gereedheidscontroles van app/list worden één uur gecachet en asynchroon vernieuwd
wanneer ze verouderd zijn. Codex-thread-appconfiguratie wordt berekend bij het
opzetten van de Codex-harnesssessie, niet bij elke beurt; gebruik /new, /reset,
of een Gateway-herstart na het wijzigen van native pluginconfiguratie.
plugins.entries.firecrawl.config.webFetch: Firecrawl-instellingen voor web-fetchprovider.apiKey: Firecrawl-API-sleutel (accepteert SecretRef). Valt terug opplugins.entries.firecrawl.config.webSearch.apiKey, legacytools.web.fetch.firecrawl.apiKey, of de env varFIRECRAWL_API_KEY.baseUrl: basis-URL van de Firecrawl-API (standaard:https://api.firecrawl.dev; self-hosted overrides moeten naar private/interne endpoints wijzen).onlyMainContent: extraheer alleen de hoofdinhoud van pagina’s (standaard:true).maxAgeMs: maximale cacheleeftijd in milliseconden (standaard:172800000/ 2 dagen).timeoutSeconds: time-out voor scrapeverzoek in seconden (standaard:60).
plugins.entries.xai.config.xSearch: xAI X Search-instellingen (Grok-webzoekfunctie).enabled: schakel de X Search-provider in.model: Grok-model om voor zoeken te gebruiken (bijv."grok-4-1-fast").
plugins.entries.memory-core.config.dreaming: instellingen voor memory dreaming. Zie Dreaming voor fasen en drempels.enabled: hoofdschakelaar voor dreaming (standaardfalse).frequency: Cron-cadans voor elke volledige dreaming-sweep (standaard"0 3 * * *").model: optionele model-override voor Dream Diary-subagent. Vereistplugins.entries.memory-core.subagent.allowModelOverride: true; combineer metallowedModelsom doelen te beperken. Fouten door niet-beschikbare modellen worden één keer opnieuw geprobeerd met het standaardmodel van de sessie; vertrouwens- of allowlistfouten vallen niet stilzwijgend terug.- fasebeleid en drempels zijn implementatiedetails (geen gebruikersgerichte configuratiesleutels).
- Volledige geheugenconfiguratie staat in Referentie voor geheugenconfiguratie:
agents.defaults.memorySearch.*memory.backendmemory.citationsmemory.qmd.*plugins.entries.memory-core.config.dreaming
- Ingeschakelde Claude-bundelplugins kunnen ook ingesloten Pi-standaarden uit
settings.jsonbijdragen; OpenClaw past die toe als opgeschoonde agentinstellingen, niet als ruwe OpenClaw-configuratiepatches. plugins.slots.memory: kies de actieve geheugen-plugin-id, of"none"om geheugenplugins uit te schakelen.plugins.slots.contextEngine: kies de actieve contextengine-plugin-id; standaard is"legacy", tenzij je een andere engine installeert en selecteert.
Toezeggingen
commitments beheert afgeleid opvolggeheugen: OpenClaw kan check-ins uit gespreksbeurten detecteren en ze via Heartbeat-runs afleveren.
commitments.enabled: schakel verborgen LLM-extractie, opslag en Heartbeat-aflevering in voor afgeleide opvolgtoezeggingen. Standaard:false.commitments.maxPerDay: maximaal aantal afgeleide opvolgtoezeggingen dat per agentsessie in een rollende dag wordt afgeleverd. Standaard:3.
Browser
evaluateEnabled: falseschakeltact:evaluateenwait --fnuit.tabCleanupruimt gevolgde tabbladen van primaire agents op na inactiviteit of wanneer een sessie de limiet overschrijdt. StelidleMinutes: 0ofmaxTabsPerSession: 0in om die afzonderlijke opruimmodi uit te schakelen.ssrfPolicy.dangerouslyAllowPrivateNetworkis uitgeschakeld wanneer niet ingesteld, zodat browsernavigatie standaard strikt blijft.- Stel
ssrfPolicy.dangerouslyAllowPrivateNetwork: truealleen in wanneer je private-netwerkbrowsernavigatie bewust vertrouwt. - In strikte modus vallen externe CDP-profielendpoints (
profiles.*.cdpUrl) onder dezelfde private-netwerkblokkering tijdens bereikbaarheids-/detectiecontroles. ssrfPolicy.allowPrivateNetworkblijft ondersteund als legacy alias.- Gebruik in strikte modus
ssrfPolicy.hostnameAllowlistenssrfPolicy.allowedHostnamesvoor expliciete uitzonderingen. - Externe profielen zijn alleen attach-only (start/stop/reset uitgeschakeld).
profiles.*.cdpUrlaccepteerthttp://,https://,ws://, enwss://. Gebruik HTTP(S) wanneer je wilt dat OpenClaw/json/versiondetecteert; gebruik WS(S) wanneer je provider je een directe DevTools-WebSocket-URL geeft.remoteCdpTimeoutMsenremoteCdpHandshakeTimeoutMsgelden voor externe enattachOnlyCDP-bereikbaarheid plus aanvragen voor het openen van tabbladen. Beheerde local loopback- profielen behouden lokale CDP-standaarden.- Als een extern beheerde CDP-service bereikbaar is via loopback, stel dan voor dat
profiel
attachOnly: truein; anders behandelt OpenClaw de loopbackpoort als een lokaal beheerd browserprofiel en kan het fouten over lokaal poorteigendom melden. existing-session-profielen gebruiken Chrome MCP in plaats van CDP en kunnen koppelen op de geselecteerde host of via een verbonden browsernode.existing-session-profielen kunnenuserDataDirinstellen om een specifiek Chromium-gebaseerd browserprofiel te targeten, zoals Brave of Edge.existing-session-profielen behouden de huidige Chrome MCP-routelimieten: snapshot-/ref-gestuurde acties in plaats van targeting met CSS-selectors, uploadhooks voor één bestand, geen overrides voor dialoogtime-outs, geenwait --load networkidle, en geenresponsebody, PDF-export, downloadonderschepping, of batchacties.- Lokale beheerde
openclaw-profielen wijzencdpPortencdpUrlautomatisch toe; stelcdpUrlalleen expliciet in voor externe CDP. - Lokale beheerde profielen kunnen
executablePathinstellen om de globalebrowser.executablePathvoor dat profiel te overschrijven. Gebruik dit om één profiel in Chrome en een ander in Brave uit te voeren. - Lokale beheerde profielen gebruiken
browser.localLaunchTimeoutMsvoor Chrome CDP HTTP- detectie na het starten van het proces enbrowser.localCdpReadyTimeoutMsvoor CDP-websocketgereedheid na het starten. Verhoog ze op langzamere hosts waar Chrome succesvol start maar gereedheidscontroles met het opstarten concurreren. Beide waarden moeten positieve integers tot120000ms zijn; ongeldige configuratiewaarden worden geweigerd. - Volgorde voor automatische detectie: standaardbrowser indien Chromium-gebaseerd → Chrome → Brave → Edge → Chromium → Chrome Canary.
browser.executablePathenbrowser.profiles.<name>.executablePathaccepteren allebei~en~/...voor de thuismap van je OS vóór het starten van Chromium. Per-profieluserDataDiropexisting-session-profielen wordt ook met tilde uitgebreid.- Besturingsservice: alleen loopback (poort afgeleid van
gateway.port, standaard18791). extraArgsvoegt extra launchflags toe aan lokale Chromium-startup (bijvoorbeeld--disable-gpu, venstergrootte, of debugflags).
UI
seamColor: accentkleur voor native app-UI-chrome (tint van Talk Mode-bubbel, enz.).assistant: override voor Control UI-identiteit. Valt terug op actieve agentidentiteit.
Gateway
Details van Gateway-velden
Details van Gateway-velden
mode:local(Gateway uitvoeren) ofremote(verbinden met externe Gateway). Gateway weigert te starten tenzij ditlocalis.port: enkele gemultiplexte poort voor WS + HTTP. Voorrang:--port>OPENCLAW_GATEWAY_PORT>gateway.port>18789.bind:auto,loopback(standaard),lan(0.0.0.0),tailnet(alleen Tailscale-IP), ofcustom.- Verouderde bind-aliassen: gebruik bind-moduswaarden in
gateway.bind(auto,loopback,lan,tailnet,custom), geen hostaliassen (0.0.0.0,127.0.0.1,localhost,::,::1). - Docker-opmerking: de standaard
loopback-bind luistert op127.0.0.1binnen de container. Met Docker bridge-netwerken (-p 18789:18789) komt verkeer binnen opeth0, waardoor de Gateway onbereikbaar is. Gebruik--network host, of stelbind: "lan"in (ofbind: "custom"metcustomBindHost: "0.0.0.0") om op alle interfaces te luisteren. - Auth: standaard vereist. Niet-loopback-binds vereisen Gateway-auth. In de praktijk betekent dit een gedeelde token/wachtwoord of een identiteitsbewuste reverse proxy met
gateway.auth.mode: "trusted-proxy". De onboardingwizard genereert standaard een token. - Als zowel
gateway.auth.tokenalsgateway.auth.passwordzijn geconfigureerd (inclusief SecretRefs), stelgateway.auth.modedan expliciet in optokenofpassword. Opstart- en service-installatie-/reparatiestromen mislukken wanneer beide zijn geconfigureerd en de modus niet is ingesteld. gateway.auth.mode: "none": expliciete modus zonder auth. Gebruik alleen voor vertrouwde local loopback-configuraties; dit wordt bewust niet aangeboden door onboardingprompts.gateway.auth.mode: "trusted-proxy": delegeer browser-/gebruikers-auth aan een identiteitsbewuste reverse proxy en vertrouw identiteitsheaders vangateway.trustedProxies(zie Trusted Proxy Auth). Deze modus verwacht standaard een niet-loopback proxybron; reverse proxy’s op dezelfde host via loopback vereisen explicietgateway.auth.trustedProxy.allowLoopback = true. Interne aanroepers op dezelfde host kunnengateway.auth.passwordgebruiken als lokale directe fallback;gateway.auth.tokenblijft wederzijds exclusief met de trusted-proxy-modus.gateway.auth.allowTailscale: wanneertrue, kunnen identiteitsheaders van Tailscale Serve voldoen aan Control UI/WebSocket-auth (geverifieerd viatailscale whois). HTTP API-eindpunten gebruiken die Tailscale-header-auth niet; ze volgen in plaats daarvan de normale HTTP-authmodus van de Gateway. Deze tokenloze stroom gaat ervan uit dat de Gateway-host vertrouwd is. Standaardtruewanneertailscale.mode = "serve".gateway.auth.rateLimit: optionele limiter voor mislukte auth. Geldt per client-IP en per auth-scope (shared-secret en device-token worden afzonderlijk bijgehouden). Geblokkeerde pogingen retourneren429+Retry-After.- Op het asynchrone Tailscale Serve Control UI-pad worden mislukte pogingen voor dezelfde
{scope, clientIp}geserialiseerd voordat de fout wordt weggeschreven. Gelijktijdige slechte pogingen van dezelfde client kunnen daardoor de limiter activeren bij de tweede aanvraag, in plaats van dat beide als gewone mismatches doorlopen. gateway.auth.rateLimit.exemptLoopbackis standaardtrue; stel in opfalsewanneer je bewust ook localhost-verkeer wilt rate-limiten (voor testconfiguraties of strikte proxy-implementaties).
- Op het asynchrone Tailscale Serve Control UI-pad worden mislukte pogingen voor dezelfde
- WS-authpogingen vanuit browser-origins worden altijd gethrottled met loopback-vrijstelling uitgeschakeld (verdediging in de diepte tegen browsergebaseerde localhost-bruteforce).
- Op loopback worden die lockouts vanuit browser-origins geïsoleerd per genormaliseerde
Originwaarde, zodat herhaalde mislukkingen van één localhost-origin niet automatisch een andere origin buitensluiten. tailscale.mode:serve(alleen tailnet, loopback-bind) offunnel(publiek, vereist auth).tailscale.preserveFunnel: wanneertrueentailscale.mode = "serve", controleert OpenClawtailscale funnel statusvoordat Serve opnieuw wordt toegepast bij het opstarten, en slaat dit over als een extern geconfigureerde Funnel-route de Gateway-poort al dekt. Standaardfalse.controlUi.allowedOrigins: expliciete toegestane lijst voor browser-origins voor Gateway WebSocket-verbindingen. Vereist wanneer browserclients worden verwacht vanaf niet-loopback-origins.controlUi.chatMessageMaxWidth: optionele maximale breedte voor gegroepeerde Control UI-chatberichten. Accepteert begrensde CSS-breedtewaarden zoals960px,82%,min(1280px, 82%)encalc(100% - 2rem).controlUi.dangerouslyAllowHostHeaderOriginFallback: gevaarlijke modus die Host-header-originfallback inschakelt voor implementaties die bewust vertrouwen op Host-header-originbeleid.remote.transport:ssh(standaard) ofdirect(ws/wss). Voordirectmoetremote.urlws://ofwss://zijn.OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1: break-glass-override via client-side procesomgeving die plaintextws://toestaat naar vertrouwde privé-netwerk-IP’s; standaard blijft plaintext alleen loopback. Er is geenopenclaw.jsonequivalent, en browserconfiguratie voor privé-netwerken zoalsbrowser.ssrfPolicy.dangerouslyAllowPrivateNetworkheeft geen invloed op Gateway WebSocket-clients.gateway.remote.token/.passwordzijn credentialvelden voor externe clients. Ze configureren Gateway-auth niet op zichzelf.gateway.push.apns.relay.baseUrl: basis-HTTPS-URL voor de externe APNs-relay die wordt gebruikt door officiële/TestFlight-iOS-builds nadat ze relay-backed registraties naar de Gateway publiceren. Deze URL moet overeenkomen met de relay-URL die in de iOS-build is gecompileerd.gateway.push.apns.relay.timeoutMs: verzendtimeout van Gateway naar relay in milliseconden. Standaard10000.- Relay-backed registraties worden gedelegeerd aan een specifieke Gateway-identiteit. De gekoppelde iOS-app haalt
gateway.identity.getop, neemt die identiteit op in de relayregistratie en stuurt een registratiespecifieke verzendmachtiging door naar de Gateway. Een andere Gateway kan die opgeslagen registratie niet hergebruiken. OPENCLAW_APNS_RELAY_BASE_URL/OPENCLAW_APNS_RELAY_TIMEOUT_MS: tijdelijke omgevingsoverschrijvingen voor de relayconfiguratie hierboven.OPENCLAW_APNS_RELAY_ALLOW_HTTP=true: ontsnappingsroute alleen voor ontwikkeling voor loopback-HTTP-relay-URL’s. Productierelay-URL’s moeten HTTPS blijven gebruiken.gateway.handshakeTimeoutMs: pre-auth Gateway WebSocket-handshaketimeout in milliseconden. Standaard:15000.OPENCLAW_HANDSHAKE_TIMEOUT_MSheeft voorrang wanneer ingesteld. Verhoog dit op belaste of low-powered hosts waar lokale clients kunnen verbinden terwijl de opstartopwarming nog bezig is.gateway.channelHealthCheckMinutes: interval voor de healthmonitor van kanalen in minuten. Stel0in om herstarts door de healthmonitor globaal uit te schakelen. Standaard:5.gateway.channelStaleEventThresholdMinutes: drempel voor stale sockets in minuten. Houd dit groter dan of gelijk aangateway.channelHealthCheckMinutes. Standaard:30.gateway.channelMaxRestartsPerHour: maximaal aantal herstarts door de healthmonitor per kanaal/account in een rolling hour. Standaard:10.channels.<provider>.healthMonitor.enabled: opt-out per kanaal voor herstarts door de healthmonitor terwijl de globale monitor ingeschakeld blijft.channels.<provider>.accounts.<accountId>.healthMonitor.enabled: override per account voor kanalen met meerdere accounts. Wanneer ingesteld, heeft dit voorrang op de override op kanaalniveau.- Lokale Gateway-aanroeppaden kunnen
gateway.remote.*alleen als fallback gebruiken wanneergateway.auth.*niet is ingesteld. - Als
gateway.auth.token/gateway.auth.passwordexpliciet is geconfigureerd via SecretRef en niet kan worden opgelost, faalt de oplossing gesloten (geen maskering door externe fallback). trustedProxies: IP’s van reverse proxy’s die TLS beëindigen of forwarded-client-headers injecteren. Vermeld alleen proxy’s die je beheert. Loopback-items blijven geldig voor proxy-/lokale-detectieconfiguraties op dezelfde host (bijvoorbeeld Tailscale Serve of een lokale reverse proxy), maar ze maken loopback-aanvragen niet geschikt voorgateway.auth.mode: "trusted-proxy".allowRealIpFallback: wanneertrue, accepteert de GatewayX-Real-IPalsX-Forwarded-Forontbreekt. Standaardfalsevoor fail-closed gedrag.gateway.nodes.pairing.autoApproveCidrs: optionele CIDR/IP-toegestane lijst voor het automatisch goedkeuren van eerste node-device-pairing zonder gevraagde scopes. Dit is uitgeschakeld wanneer niet ingesteld. Dit keurt operator-/browser-/Control UI-/WebChat-pairing niet automatisch goed, en keurt geen rol-, scope-, metadata- of public-key-upgrades automatisch goed.gateway.nodes.allowCommands/gateway.nodes.denyCommands: globale allow/deny-vormgeving voor gedeclareerde node-commando’s na pairing en platform-allowlist-evaluatie. GebruikallowCommandsom gevaarlijke node-commando’s zoalscamera.snap,camera.clipenscreen.recordexpliciet toe te staan;denyCommandsverwijdert een commando zelfs als een platformstandaard of expliciete allow het anders zou opnemen. Nadat een node zijn gedeclareerde commandolijst wijzigt, wijs die device-pairing af en keur deze opnieuw goed zodat de Gateway de bijgewerkte commandosnapshot opslaat.gateway.tools.deny: extra toolnamen die worden geblokkeerd voor HTTPPOST /tools/invoke(breidt de standaard deny-lijst uit).gateway.tools.allow: verwijder toolnamen uit de standaard HTTP-deny-lijst.
OpenAI-compatibele eindpunten
- Chat Completions: standaard uitgeschakeld. Schakel in met
gateway.http.endpoints.chatCompletions.enabled: true. - Responses API:
gateway.http.endpoints.responses.enabled. - Verharding voor URL-invoer van Responses:
gateway.http.endpoints.responses.maxUrlPartsgateway.http.endpoints.responses.files.urlAllowlistgateway.http.endpoints.responses.images.urlAllowlistLege allowlists worden behandeld als niet ingesteld; gebruikgateway.http.endpoints.responses.files.allowUrl=falseen/ofgateway.http.endpoints.responses.images.allowUrl=falseom URL-ophalen uit te schakelen.
- Optionele header voor response-verharding:
gateway.http.securityHeaders.strictTransportSecurity(stel alleen in voor HTTPS-origins die je beheert; zie Trusted Proxy Auth)
Multi-instance-isolatie
Voer meerdere Gateways uit op één host met unieke poorten en state dirs:--dev (gebruikt ~/.openclaw-dev + poort 19001), --profile <name> (gebruikt ~/.openclaw-<name>).
Zie Multiple Gateways.
gateway.tls
enabled: schakelt TLS-terminatie in bij de Gateway-listener (HTTPS/WSS) (standaard:false).autoGenerate: genereert automatisch een lokaal self-signed cert/key-paar wanneer expliciete bestanden niet zijn geconfigureerd; alleen voor lokaal/dev-gebruik.certPath: bestandssysteempad naar het TLS-certificaatbestand.keyPath: bestandssysteempad naar het TLS-private-keybestand; houd permissies beperkt.caPath: optioneel CA-bundlepad voor clientverificatie of aangepaste trust chains.
gateway.reload
mode: bepaalt hoe configuratiewijzigingen tijdens runtime worden toegepast."off": negeer live wijzigingen; wijzigingen vereisen een expliciete herstart."restart": herstart altijd het Gateway-proces bij een configuratiewijziging."hot": pas wijzigingen in-process toe zonder opnieuw te starten."hybrid"(standaard): probeer eerst hot reload; val terug op herstart als dat vereist is.
debounceMs: debouncevenster in ms voordat configuratiewijzigingen worden toegepast (niet-negatief geheel getal).deferralTimeoutMs: optionele maximale tijd in ms om te wachten op lopende bewerkingen voordat een herstart of channel hot reload wordt geforceerd. Laat weg om de standaard begrensde wachttijd (300000) te gebruiken; stel0in om onbeperkt te wachten en periodiek waarschuwingen voor nog lopende bewerkingen te loggen.
Hooks
Authorization: Bearer <token> of x-openclaw-token: <token>.
Hooktokens in querystrings worden geweigerd.
Validatie- en veiligheidsnotities:
hooks.enabled=truevereist een niet-legehooks.token.hooks.tokenmoet verschillen vangateway.auth.token; hergebruik van de Gateway-token wordt geweigerd.hooks.pathkan niet/zijn; gebruik een toegewijd subpad zoals/hooks.- Als
hooks.allowRequestSessionKey=true, beperk danhooks.allowedSessionKeyPrefixes(bijvoorbeeld["hook:"]). - Als een mapping of preset een getemplate
sessionKeygebruikt, stel danhooks.allowedSessionKeyPrefixesenhooks.allowRequestSessionKey=truein. Statische mappingsleutels vereisen die opt-in niet.
POST /hooks/wake→{ text, mode?: "now"|"next-heartbeat" }POST /hooks/agent→{ message, name?, agentId?, sessionKey?, wakeMode?, deliver?, channel?, to?, model?, thinking?, timeoutSeconds? }sessionKeyuit de aanvraagpayload wordt alleen geaccepteerd wanneerhooks.allowRequestSessionKey=true(standaard:false).
POST /hooks/<name>→ opgelost viahooks.mappings- Door templates gerenderde mappingwaarden voor
sessionKeyworden behandeld als extern aangeleverd en vereisen ookhooks.allowRequestSessionKey=true.
- Door templates gerenderde mappingwaarden voor
Mappingdetails
Mappingdetails
match.pathmatcht het subpad na/hooks(bijv./hooks/gmail→gmail).match.sourcematcht een payloadveld voor generieke paden.- Templates zoals
{{messages[0].subject}}lezen uit de payload. transformkan verwijzen naar een JS/TS-module die een hookactie retourneert.transform.modulemoet een relatief pad zijn en blijft binnenhooks.transformsDir(absolute paden en traversal worden geweigerd).- Houd
hooks.transformsDironder~/.openclaw/hooks/transforms; workspace-skillmappen worden geweigerd. Alsopenclaw doctordit pad als ongeldig rapporteert, verplaats de transformmodule dan naar de transformmap voor hooks of verwijderhooks.transformsDir.
agentIdrouteert naar een specifieke agent; onbekende ID’s vallen terug op de standaardwaarde.allowedAgentIds: beperkt expliciete routering (*of weggelaten = alles toestaan,[]= alles weigeren).defaultSessionKey: optionele vaste sessiesleutel voor hook-agentruns zonder explicietesessionKey.allowRequestSessionKey: sta aanroepers van/hooks/agenten templategestuurde mappingsessiesleutels toe omsessionKeyin te stellen (standaard:false).allowedSessionKeyPrefixes: optionele allowlist met prefixen voor explicietesessionKey-waarden (aanvraag + mapping), bijv.["hook:"]. Dit wordt vereist wanneer een mapping of preset een getemplatesessionKeygebruikt.deliver: truestuurt het uiteindelijke antwoord naar een kanaal;channelgebruikt standaardlast.modeloverschrijft de LLM voor deze hookrun (moet toegestaan zijn als de modelcatalogus is ingesteld).
Gmail-integratie
- De ingebouwde Gmail-preset gebruikt
sessionKey: "hook:gmail:{{messages[0].id}}". - Als je die routering per bericht behoudt, stel dan
hooks.allowRequestSessionKey: truein en beperkhooks.allowedSessionKeyPrefixeszodat die overeenkomen met de Gmail-namespace, bijvoorbeeld["hook:", "hook:gmail:"]. - Als je
hooks.allowRequestSessionKey: falsenodig hebt, overschrijf de preset dan met een statischesessionKeyin plaats van de getemplate standaardwaarde.
- Gateway start
gog gmail watch serveautomatisch bij het opstarten wanneer dit is geconfigureerd. StelOPENCLAW_SKIP_GMAIL_WATCHER=1in om dit uit te schakelen. - Voer geen afzonderlijke
gog gmail watch serveuit naast de Gateway.
Canvas-pluginhost
- Serveert door agents bewerkbare HTML/CSS/JS en A2UI via HTTP onder de Gateway-poort:
http://<gateway-host>:<gateway.port>/__openclaw__/canvas/http://<gateway-host>:<gateway.port>/__openclaw__/a2ui/
- Alleen lokaal: houd
gateway.bind: "loopback"(standaard). - Niet-loopback-binds: canvasroutes vereisen Gateway-authenticatie (token/wachtwoord/vertrouwde proxy), hetzelfde als andere Gateway HTTP-oppervlakken.
- Node WebViews sturen doorgaans geen auth-headers; nadat een node is gekoppeld en verbonden, adverteert de Gateway node-gescopete capability-URL’s voor canvas-/A2UI-toegang.
- Capability-URL’s zijn gebonden aan de actieve node-WS-sessie en verlopen snel. IP-gebaseerde fallback wordt niet gebruikt.
- Injecteert een live-reloadclient in geserveerde HTML.
- Maakt automatisch een starter-
index.htmlaan wanneer leeg. - Serveert ook A2UI op
/__openclaw__/a2ui/. - Wijzigingen vereisen een Gateway-herstart.
- Schakel live reload uit voor grote mappen of
EMFILE-fouten.
Detectie
mDNS (Bonjour)
minimal(standaard wanneer de gebundeldebonjour-plugin is ingeschakeld): laatcliPath+sshPortweg uit TXT-records.full: neemcliPath+sshPortop; LAN-multicastadvertising vereist nog steeds dat de gebundeldebonjour-plugin is ingeschakeld.off: onderdruk LAN-multicastadvertising zonder plugininschakeling te wijzigen.- De gebundelde
bonjour-plugin start automatisch op macOS-hosts en is opt-in op Linux, Windows en gecontaineriseerde Gateway-deployments. - Hostnaam gebruikt standaard de systeemhostnaam wanneer die een geldig DNS-label is, met fallback naar
openclaw. Overschrijf metOPENCLAW_MDNS_HOSTNAME.
Wide-area (DNS-SD)
~/.openclaw/dns/. Voor detectie tussen netwerken combineer je dit met een DNS-server (CoreDNS aanbevolen) + Tailscale split DNS.
Instellen: openclaw dns setup --apply.
Omgeving
env (inline env-vars)
- Inline env-vars worden alleen toegepast als de process-env de sleutel mist.
.env-bestanden: CWD.env+~/.openclaw/.env(geen van beide overschrijft bestaande vars).shellEnv: importeert ontbrekende verwachte sleutels uit je login-shellprofiel.- Zie Omgeving voor de volledige prioriteitsvolgorde.
Vervanging van env-vars
Verwijs naar env-vars in elke configuratiereeks met${VAR_NAME}:
- Alleen namen in hoofdletters worden gematcht:
[A-Z_][A-Z0-9_]*. - Ontbrekende/lege vars veroorzaken een fout bij het laden van de configuratie.
- Escape met
$${VAR}voor een letterlijke${VAR}. - Werkt met
$include.
Geheimen
Secret refs zijn additief: plattetekstwaarden blijven werken.SecretRef
Gebruik één objectvorm:
provider-patroon:^[a-z][a-z0-9_-]{0,63}$source: "env"id-patroon:^[A-Z][A-Z0-9_]{0,127}$source: "file"id: absolute JSON-pointer (bijvoorbeeld"/providers/openai/apiKey")source: "exec"id-patroon:^[A-Za-z0-9][A-Za-z0-9._:/-]{0,255}$source: "exec"ids mogen geen.- of..-padsegmenten bevatten die door slashes zijn gescheiden (bijvoorbeelda/../bwordt geweigerd)
Ondersteund credential-oppervlak
- Canonieke matrix: SecretRef Credential Surface
secrets applyricht zich op ondersteunde credential-paden inopenclaw.json.auth-profiles.json-refs worden opgenomen in runtime-resolutie en auditdekking.
Configuratie van secret providers
- De
file-provider ondersteuntmode: "json"enmode: "singleValue"(idmoet"value"zijn in singleValue-modus). - Paden van file- en exec-providers falen gesloten wanneer Windows-ACL-verificatie niet beschikbaar is. Stel
allowInsecurePath: truealleen in voor vertrouwde paden die niet kunnen worden geverifieerd. - De
exec-provider vereist een absoluutcommand-pad en gebruikt protocolpayloads op stdin/stdout. - Standaard worden symlink-commandopaden geweigerd. Stel
allowSymlinkCommand: truein om symlinkpaden toe te staan terwijl het opgeloste doelpad wordt gevalideerd. - Als
trustedDirsis geconfigureerd, wordt de trusted-dir-controle toegepast op het opgeloste doelpad. - De child-omgeving van
execis standaard minimaal; geef vereiste variabelen expliciet door metpassEnv. - Secret refs worden tijdens activering opgelost naar een in-memory snapshot; daarna lezen aanvraagpaden alleen de snapshot.
- Active-surface-filtering wordt toegepast tijdens activering: onopgeloste refs op ingeschakelde oppervlakken laten opstarten/herladen mislukken, terwijl inactieve oppervlakken met diagnostiek worden overgeslagen.
Auth-opslag
- Per-agent-profielen worden opgeslagen op
<agentDir>/auth-profiles.json. auth-profiles.jsonondersteunt refs op waardeniveau (keyRefvoorapi_key,tokenRefvoortoken) voor statische credential-modi.- Legacy platte
auth-profiles.json-maps zoals{ "provider": { "apiKey": "..." } }zijn geen runtime-indeling;openclaw doctor --fixherschrijft ze naar canoniekeprovider:defaultAPI-key-profielen met een.legacy-flat.*.bak-back-up. - Profielen in OAuth-modus (
auth.profiles.<id>.mode = "oauth") ondersteunen geen door SecretRef ondersteunde auth-profile-credentials. - Statische runtime-credentials komen uit in-memory opgeloste snapshots; legacy statische
auth.json-vermeldingen worden opgeschoond wanneer ze worden gevonden. - Legacy OAuth-imports komen uit
~/.openclaw/credentials/oauth.json. - Zie OAuth.
- Runtimegedrag van geheimen en tooling voor
audit/configure/apply: Geheimenbeheer.
auth.cooldowns
billingBackoffHours: basis-backoff in uren wanneer een profiel faalt door echte facturerings-/onvoldoende-kredietfouten (standaard:5). Expliciete factureringstekst kan hier nog steeds terechtkomen, zelfs bij401/403-responses, maar providerspecifieke tekst- matchers blijven beperkt tot de provider die ze bezit (bijvoorbeeld OpenRouterKey limit exceeded). Retrybare HTTP402-berichten voor gebruiksvensters of bestedingslimieten voor organisatie/werkruimte blijven in plaats daarvan in hetrate_limit-pad.billingBackoffHoursByProvider: optionele overrides per provider voor factureringsbackoff-uren.billingMaxHours: limiet in uren voor exponentiële groei van factureringsbackoff (standaard:24).authPermanentBackoffMinutes: basis-backoff in minuten voorauth_permanent-fouten met hoge betrouwbaarheid (standaard:10).authPermanentMaxMinutes: limiet in minuten voorauth_permanent-backoffgroei (standaard:60).failureWindowHours: rollend venster in uren dat wordt gebruikt voor backoff-tellers (standaard:24).overloadedProfileRotations: maximale auth-profielrotaties bij dezelfde provider voor overbelastingsfouten voordat wordt overgeschakeld naar model-fallback (standaard:1). Provider-bezet-vormen zoalsModelNotReadyExceptionkomen hier terecht.overloadedBackoffMs: vaste vertraging voordat een overbelaste provider/profielrotatie opnieuw wordt geprobeerd (standaard:0).rateLimitedProfileRotations: maximale auth-profielrotaties bij dezelfde provider voor rate-limit-fouten voordat wordt overgeschakeld naar model-fallback (standaard:1). Die rate-limit-bucket omvat providergevormde tekst zoalsToo many concurrent requests,ThrottlingException,concurrency limit reached,workers_ai ... quota limit exceededenresource exhausted.
Logregistratie
- Standaard logbestand:
/tmp/openclaw/openclaw-YYYY-MM-DD.log. - Stel
logging.filein voor een stabiel pad. consoleLevelwordt verhoogd naardebugbij--verbose.maxFileBytes: maximale actieve logbestandsgrootte in bytes vóór rotatie (positief geheel getal; standaard:104857600= 100 MB). OpenClaw bewaart maximaal vijf genummerde archieven naast het actieve bestand.redactSensitive/redactPatterns: best-effort maskering voor console-uitvoer, bestandslogs, OTLP-logrecords en blijvend opgeslagen sessietranscripttekst.redactSensitive: "off"schakelt alleen dit algemene log-/transcriptbeleid uit; UI-/tool-/diagnostische veiligheidsoppervlakken redigeren nog steeds geheimen vóór uitstoot.
Diagnostiek
enabled: hoofdschakelaar voor instrumentatie-uitvoer (standaard:true).flags: array van flagstrings die gerichte loguitvoer inschakelen (ondersteunt jokertekens zoals"telegram.*"of"*").stuckSessionWarnMs: drempel voor leeftijd zonder voortgang in ms om langlopende verwerkende sessies te classificeren alssession.long_running,session.stalledofsession.stuck. Antwoord-, tool-, status-, blok- en ACP-voortgang resetten de timer; herhaaldesession.stuck-diagnostiek past backoff toe zolang er niets verandert.stuckSessionAbortMs: drempel voor leeftijd zonder voortgang in ms voordat geschikt vastgelopen actief werk abort-drained mag worden voor herstel. Wanneer dit niet is ingesteld, gebruikt OpenClaw het veiligere uitgebreide venster voor ingebedde runs van minimaal 10 minuten en 5xstuckSessionWarnMs.otel.enabled: schakelt de OpenTelemetry-exportpipeline in (standaard:false). Zie OpenTelemetry-export voor de volledige configuratie, signaalcatalogus en het privacymodel.otel.endpoint: collector-URL voor OTel-export.otel.tracesEndpoint/otel.metricsEndpoint/otel.logsEndpoint: optionele signaalspecifieke OTLP-eindpunten. Wanneer ingesteld, overschrijven zeotel.endpointalleen voor dat signaal.otel.protocol:"http/protobuf"(standaard) of"grpc".otel.headers: extra HTTP/gRPC-metadataheaders die met OTel-exportrequests worden verzonden.otel.serviceName: servicenaam voor resource-attributen.otel.traces/otel.metrics/otel.logs: schakel trace-, metrics- of logexport in.otel.sampleRate: trace-samplingrate0-1.otel.flushIntervalMs: periodiek telemetry-flushinterval in ms.otel.captureContent: opt-in vastlegging van ruwe content voor OTEL-spanattributen. Standaard uit. Booleaanse waardetruelegt niet-systeem-bericht-/toolcontent vast; met de objectvorm kun jeinputMessages,outputMessages,toolInputs,toolOutputsensystemPromptexpliciet inschakelen.OTEL_SEMCONV_STABILITY_OPT_IN=gen_ai_latest_experimental: omgevingsschakelaar voor nieuwste experimentele GenAI-spanproviderattributen. Standaard behouden spans het legacygen_ai.system-attribuut voor compatibiliteit; GenAI-metrics gebruiken begrensde semantische attributen.OPENCLAW_OTEL_PRELOADED=1: omgevingsschakelaar voor hosts die al een globale OpenTelemetry-SDK hebben geregistreerd. OpenClaw slaat dan het starten/afsluiten van de Plugin-eigen SDK over terwijl diagnostische listeners actief blijven.OTEL_EXPORTER_OTLP_TRACES_ENDPOINT,OTEL_EXPORTER_OTLP_METRICS_ENDPOINTenOTEL_EXPORTER_OTLP_LOGS_ENDPOINT: signaalspecifieke eindpunt-env-vars die worden gebruikt wanneer de overeenkomende configuratiesleutel niet is ingesteld.cacheTrace.enabled: log cachetrace-snapshots voor ingebedde runs (standaard:false).cacheTrace.filePath: uitvoerpad voor cachetrace-JSONL (standaard:$OPENCLAW_STATE_DIR/logs/cache-trace.jsonl).cacheTrace.includeMessages/includePrompt/includeSystem: bepalen wat wordt opgenomen in cachetrace-uitvoer (allemaal standaard:true).
Update
channel: releasekanaal voor npm-/git-installaties -"stable","beta"of"dev".checkOnStart: controleer op npm-updates wanneer de Gateway start (standaard:true).auto.enabled: schakel automatische updates op de achtergrond in voor pakketinstallaties (standaard:false).auto.stableDelayHours: minimale vertraging in uren voordat automatische toepassing op het stabiele kanaal plaatsvindt (standaard:6; max:168).auto.stableJitterHours: extra uitrolspreidingsvenster in uren voor het stabiele kanaal (standaard:12; max:168).auto.betaCheckIntervalHours: hoe vaak controles voor het bètakanaal worden uitgevoerd in uren (standaard:1; max:24).
ACP
enabled: globale ACP-featuregate (standaard:true; stel in opfalseom ACP-dispatch- en spawnmogelijkheden te verbergen).dispatch.enabled: onafhankelijke gate voor ACP-sessieturndispatch (standaard:true). Stel in opfalseom ACP-commando’s beschikbaar te houden terwijl uitvoering wordt geblokkeerd.backend: standaard ACP-runtimebackend-id (moet overeenkomen met een geregistreerde ACP-runtime-Plugin). Installeer eerst de backend-Plugin en, alsplugins.allowis ingesteld, neem de backend-Plugin-id op (bijvoorbeeldacpx) anders wordt de ACP-backend niet geladen.defaultAgent: fallback ACP-doelagent-id wanneer spawns geen expliciet doel specificeren.allowedAgents: allowlist van agent-id’s die zijn toegestaan voor ACP-runtimesessies; leeg betekent geen aanvullende beperking.maxConcurrentSessions: maximaal aantal gelijktijdig actieve ACP-sessies.stream.coalesceIdleMs: idle-flushvenster in ms voor gestreamde tekst.stream.maxChunkChars: maximale chunkgrootte voordat de projectie van gestreamde blokken wordt gesplitst.stream.repeatSuppression: onderdruk herhaalde status-/toolregels per turn (standaard:true).stream.deliveryMode:"live"streamt incrementeel;"final_only"buffert tot terminale events van de turn.stream.hiddenBoundarySeparator: scheidingsteken vóór zichtbare tekst na verborgen tool-events (standaard:"paragraph").stream.maxOutputChars: maximum aantal assistant-uitvoertekens geprojecteerd per ACP-turn.stream.maxSessionUpdateChars: maximum aantal tekens voor geprojecteerde ACP-status-/updateregels.stream.tagVisibility: record van tagnamen naar booleaanse zichtbaarheids-overrides voor gestreamde events.runtime.ttlMinutes: idle TTL in minuten voor ACP-sessieworkers voordat ze in aanmerking komen voor opschoning.runtime.installCommand: optioneel installatiecommando dat wordt uitgevoerd bij het bootstrappen van een ACP-runtimeomgeving.
CLI
cli.banner.taglineModebeheert de stijl van de bannerslogan:"random"(standaard): roterende grappige/seizoensgebonden slogans."default": vaste neutrale slogan (All your chats, one OpenClaw.)."off": geen slogantekst (bannertitel/-versie blijft zichtbaar).
- Stel env
OPENCLAW_HIDE_BANNER=1in om de volledige banner te verbergen (niet alleen slogans).
Wizard
Metadata geschreven door begeleide CLI-installatiestromen (onboard, configure, doctor):
Identiteit
Zieagents.list-identiteitsvelden onder Agent-standaarden.
Bridge (legacy, verwijderd)
Huidige builds bevatten de TCP-bridge niet meer. Nodes verbinden via de Gateway WebSocket.bridge.*-sleutels maken geen deel meer uit van het configuratieschema (validatie faalt totdat ze zijn verwijderd; openclaw doctor --fix kan onbekende sleutels verwijderen).
Legacy bridge-configuratie (historische referentie)
Legacy bridge-configuratie (historische referentie)
Cron
sessionRetention: hoelang voltooide geïsoleerde Cron-uitvoeringssessies worden bewaard voordat ze uitsessions.jsonworden verwijderd. Bepaalt ook het opschonen van gearchiveerde verwijderde Cron-transcripties. Standaard:24h; stel in opfalseom uit te schakelen.runLog.maxBytes: maximale grootte per uitvoeringslogbestand (cron/runs/<jobId>.jsonl) voordat er wordt opgeschoond. Standaard:2_000_000bytes.runLog.keepLines: nieuwste regels die worden behouden wanneer opschoning van het uitvoeringslog wordt geactiveerd. Standaard:2000.webhookToken: bearer-token gebruikt voor aflevering van Cron-Webhook-POST (delivery.mode = "webhook"); als dit wordt weggelaten, wordt er geen auth-header verzonden.webhook: verouderde oude fallback-Webhook-URL (http/https), alleen gebruikt voor opgeslagen taken die nog steedsnotify: truehebben.
cron.retry
maxAttempts: maximaal aantal nieuwe pogingen voor eenmalige taken bij tijdelijke fouten (standaard:3; bereik:0-10).backoffMs: array met backoff-vertragingen in ms voor elke nieuwe poging (standaard:[30000, 60000, 300000]; 1-10 items).retryOn: fouttypen die nieuwe pogingen activeren -"rate_limit","overloaded","network","timeout","server_error". Laat weg om alle tijdelijke typen opnieuw te proberen.
cron.failureAlert
enabled: schakel foutmeldingen voor Cron-taken in (standaard:false).after: opeenvolgende fouten voordat een melding wordt geactiveerd (positief geheel getal, min:1).cooldownMs: minimumaantal milliseconden tussen herhaalde meldingen voor dezelfde taak (niet-negatief geheel getal).includeSkipped: tel opeenvolgende overgeslagen uitvoeringen mee voor de meldingsdrempel (standaard:false). Overgeslagen uitvoeringen worden apart bijgehouden en hebben geen invloed op backoff voor uitvoeringsfouten.mode: aflevermodus -"announce"verzendt via een kanaalbericht;"webhook"post naar de geconfigureerde Webhook.accountId: optionele account- of kanaal-id om de aflevering van meldingen af te bakenen.
cron.failureDestination
- Standaardbestemming voor Cron-foutmeldingen voor alle taken.
mode:"announce"of"webhook"; standaard"announce"wanneer er voldoende doelgegevens bestaan.channel: kanaaloverschrijving voor aflevering via announce."last"hergebruikt het laatst bekende afleverkanaal.to: expliciet announce-doel of Webhook-URL. Vereist voor Webhook-modus.accountId: optionele accountoverschrijving voor aflevering.- Per-taak
delivery.failureDestinationoverschrijft deze globale standaard. - Wanneer er geen globale of per-taak foutbestemming is ingesteld, vallen taken die al via
announceafleveren bij een fout terug op dat primaire announce-doel. delivery.failureDestinationwordt alleen ondersteund voor taken metsessionTarget="isolated", tenzij de primairedelivery.modevan de taak"webhook"is.
Sjabloonvariabelen voor mediamodel
Sjabloonplaatsaanduidingen die worden uitgebreid intools.media.models[].args:
| Variabele | Beschrijving |
|---|---|
{{Body}} | Volledige binnenkomende berichttekst |
{{RawBody}} | Ruwe tekst (geen geschiedenis-/afzenderwrappers) |
{{BodyStripped}} | Tekst waaruit groepsvermeldingen zijn verwijderd |
{{From}} | Afzender-ID |
{{To}} | Bestemmings-ID |
{{MessageSid}} | Kanaalbericht-id |
{{SessionId}} | Huidige sessie-UUID |
{{IsNewSession}} | "true" wanneer een nieuwe sessie is aangemaakt |
{{MediaUrl}} | Binnenkomende media-pseudo-URL |
{{MediaPath}} | Lokaal mediapad |
{{MediaType}} | Mediatype (afbeelding/audio/document/…) |
{{Transcript}} | Audiotranscriptie |
{{Prompt}} | Opgeloste mediaprompt voor CLI-items |
{{MaxChars}} | Opgelost maximumaantal uitvoertekens voor CLI-items |
{{ChatType}} | "direct" of "group" |
{{GroupSubject}} | Groepsonderwerp (naar beste vermogen) |
{{GroupMembers}} | Voorbeeldweergave van groepsleden (naar beste vermogen) |
{{SenderName}} | Weergavenaam van afzender (naar beste vermogen) |
{{SenderE164}} | Telefoonnummer van afzender (naar beste vermogen) |
{{Provider}} | Providerhint (whatsapp, telegram, discord, enz.) |
Configuratie-includes ($include)
Splits configuratie over meerdere bestanden:
- Enkel bestand: vervangt het bevattende object.
- Array met bestanden: diep samengevoegd op volgorde (later overschrijft eerder).
- Sibling-sleutels: samengevoegd na includes (overschrijven opgenomen waarden).
- Geneste includes: tot 10 niveaus diep.
- Paden: opgelost relatief aan het includende bestand, maar moeten binnen de hoogste configuratiemap blijven (
dirnamevanopenclaw.json). Absolute/../-vormen zijn alleen toegestaan wanneer ze nog steeds binnen die grens worden opgelost. - Door OpenClaw beheerde schrijfacties die slechts één topniveausectie wijzigen die wordt ondersteund door een include met één bestand, schrijven door naar dat opgenomen bestand. Bijvoorbeeld:
plugins installwerktplugins: { $include: "./plugins.json5" }bij inplugins.json5en laatopenclaw.jsonintact. - Root-includes, include-arrays en includes met sibling-overschrijvingen zijn alleen-lezen voor door OpenClaw beheerde schrijfacties; die schrijfacties falen gesloten in plaats van de configuratie vlak te maken.
- Fouten: duidelijke berichten voor ontbrekende bestanden, parseerfouten en circulaire includes.
Gerelateerd: Configuratie · Configuratievoorbeelden · Doctor