Gateway

Configuratie

OpenClaw leest een optionele <Tooltip tip="JSON5 ondersteunt opmerkingen en afsluitende komma's">JSON5</Tooltip>-configuratie uit ~/.openclaw/openclaw.json. Het actieve configuratiepad moet een gewoon bestand zijn. Gesymlinkte openclaw.json-indelingen worden niet ondersteund voor schrijfbewerkingen die OpenClaw beheert; een atomische schrijfbewerking kan het pad vervangen in plaats van de symlink te behouden. Als je configuratie buiten de standaardstatusmap 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

Zie de volledige referentie voor elk beschikbaar veld.

Agents en automatisering moeten 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

// ~/.openclaw/openclaw.json
{
  agents: { defaults: { workspace: "~/.openclaw/workspace" } },
  channels: { whatsapp: { allowFrom: ["+15555550123"] } },
}

Configuratie bewerken

Interactieve wizard

openclaw onboard       # volledige onboardingflow
openclaw configure     # configuratiewizard

CLI (one-liners)

openclaw config get agents.defaults.workspace
openclaw config set agents.defaults.heartbeat.every "2h"
openclaw config unset plugins.entries.brave.config.webSearch.apiKey

Control UI

Open http://127.0.0.1:18789 en gebruik het tabblad Config. De Control UI rendert een formulier op basis van het live configuratieschema, inclusief veldmetadata voor documentatie zoals title / description, plus Plugin- en kanaalschema's wanneer beschikbaar, met een Raw JSON-editor als uitweg. Voor doorklik-UI's en andere tooling biedt de gateway ook config.schema.lookup om een schema-node met padscope plus samenvattingen van directe onderliggende elementen op te halen.

Direct bewerken

Bewerk ~/.openclaw/openclaw.json rechtstreeks. De Gateway bewaakt het bestand en past wijzigingen automatisch toe (zie hot reload).

Strikte validatie

openclaw config schema drukt het canonieke JSON Schema af dat door Control UI en validatie wordt gebruikt. config.schema.lookup haalt één node met padscope plus onderliggende samenvattingen op voor doorkliktooling. Veldmetadata voor documentatie zoals title/description wordt doorgegeven via geneste objecten, jokertekens (*), array-items ([]) 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 diagnosecommando's werken (openclaw doctor, openclaw logs, openclaw health, openclaw status)
  • Voer openclaw doctor uit om de exacte problemen te zien
  • Voer openclaw doctor --fix (of --yes) uit om reparaties toe te passen

De Gateway bewaart na elke succesvolle start een vertrouwde laatst-bekend-goede kopie, maar start en hot reload herstellen die niet automatisch. Als openclaw.json validatie niet doorstaat (inclusief Plugin-lokale validatie), mislukt de Gateway-start of wordt de herlaadactie overgeslagen en behoudt de huidige runtime de laatst geaccepteerde configuratie. Voer openclaw doctor --fix (of --yes) uit om configuratie met prefixen/overschrijvingen te repareren of de laatst-bekend-goede kopie te herstellen. Promotie naar laatst-bekend-goed wordt overgeslagen wanneer een kandidaat geredigeerde geheime placeholders bevat, zoals ***.

Veelvoorkomende taken

Een kanaal instellen (WhatsApp, Telegram, Discord, enz.)

Elk kanaal heeft zijn eigen configuratiesectie onder channels.<provider>. Zie de speciale kanaalpagina voor installatiestappen:

Alle kanalen delen hetzelfde DM-beleidspatroon:

{
  channels: {
    telegram: {
      enabled: true,
      botToken: "123:abc",
      dmPolicy: "pairing",   // pairing | allowlist | open | disabled
      allowFrom: ["tg:123"], // only for allowlist/open
    },
  },
}
Modellen kiezen en configureren

Stel het primaire model en optionele fallbacks in:

{
  agents: {
    defaults: {
      model: {
        primary: "anthropic/claude-sonnet-4-6",
        fallbacks: ["openai/gpt-5.4"],
      },
      models: {
        "anthropic/claude-sonnet-4-6": { alias: "Sonnet" },
        "openai/gpt-5.4": { alias: "GPT" },
      },
    },
  },
}
  • agents.defaults.models definieert de modelcatalogus en fungeert als allowlist voor /model.
  • Gebruik openclaw config set agents.defaults.models '<json>' --strict-json --merge om allowlist-items toe te voegen zonder bestaande modellen te verwijderen. Gewone vervangingen die items zouden verwijderen, worden geweigerd tenzij je --replace meegeeft.
  • Modelverwijzingen gebruiken de indeling provider/model (bijv. anthropic/claude-opus-4-6).
  • agents.defaults.imageMaxDimensionPx beheert het verkleinen van transcript-/toolafbeeldingen (standaard 1200); 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 fallbackgedrag.
  • Zie Aangepaste providers in de referentie voor aangepaste/zelf gehoste providers.
Bepaal wie berichten naar de bot kan sturen

DM-toegang wordt per kanaal beheerd via dmPolicy:

  • "pairing" (standaard): onbekende afzenders krijgen een eenmalige koppelingscode om goed te keuren
  • "allowlist": alleen afzenders in allowFrom (of de gekoppelde toestemmingsopslag)
  • "open": alle inkomende DM's toestaan (vereist allowFrom: ["*"])
  • "disabled": alle DM's negeren

Gebruik voor groepen groupPolicy + groupAllowFrom of kanaalspecifieke toestemmingslijsten.

Zie de volledige referentie voor details per kanaal.

Vermeldingsgating voor groepschats instellen

Groepsberichten vereisen standaard een vermelding. Configureer triggerpatronen per agent en laat zichtbare kamerantwoorden op het standaardpad voor de berichtentool, tenzij je bewust verouderde automatische eindantwoorden wilt:

{
  messages: {
    visibleReplies: "automatic", // set "message_tool" to require message-tool sends everywhere
    groupChat: {
      visibleReplies: "message_tool", // default; use "automatic" for legacy room replies
    },
  },
  agents: {
    list: [
      {
        id: "main",
        groupChat: {
          mentionPatterns: ["@openclaw", "openclaw"],
        },
      },
    ],
  },
  channels: {
    whatsapp: {
      groups: { "*": { requireMention: true } },
    },
  },
}
  • Metadatavermeldingen: native @-vermeldingen (WhatsApp tikken-om-te-vermelden, Telegram @bot, enz.)
  • Tekstpatronen: veilige regex-patronen in mentionPatterns
  • Zichtbare antwoorden: messages.visibleReplies kan berichtentool-verzendingen globaal vereisen; messages.groupChat.visibleReplies overschrijft dat voor groepen/kanalen.
  • Zie de volledige referentie voor modi voor zichtbare antwoorden, overschrijvingen per kanaal en zelfchatmodus.
Skills per agent beperken

Gebruik agents.defaults.skills voor een gedeelde basis en overschrijf vervolgens specifieke agents met agents.list[].skills:

{
  agents: {
    defaults: {
      skills: ["github", "weather"],
    },
    list: [
      { id: "writer" }, // inherits github, weather
      { id: "docs", skills: ["docs-search"] }, // replaces defaults
      { id: "locked-down", skills: [] }, // no skills
    ],
  },
}
  • Laat agents.defaults.skills weg voor standaard onbeperkte Skills.
  • Laat agents.list[].skills weg om de standaardwaarden over te nemen.
  • Stel agents.list[].skills: [] in voor geen Skills.
  • Zie Skills, Skills-configuratie en de Configuratiereferentie.
Gezondheidsbewaking van Gateway-kanalen afstemmen

Bepaal hoe agressief de Gateway kanalen opnieuw start die verouderd lijken:

{
  gateway: {
    channelHealthCheckMinutes: 5,
    channelStaleEventThresholdMinutes: 30,
    channelMaxRestartsPerHour: 10,
  },
  channels: {
    telegram: {
      healthMonitor: { enabled: false },
      accounts: {
        alerts: {
          healthMonitor: { enabled: true },
        },
      },
    },
  },
}
  • Stel gateway.channelHealthCheckMinutes: 0 in om herstarts door gezondheidsbewaking globaal uit te schakelen.
  • channelStaleEventThresholdMinutes moet groter zijn dan of gelijk zijn aan het controle-interval.
  • Gebruik channels.<provider>.healthMonitor.enabled of channels.<provider>.accounts.<id>.healthMonitor.enabled om automatische herstarts voor één kanaal of account uit te schakelen zonder de globale bewaking uit te schakelen.
  • Zie Gezondheidscontroles voor operationele debugging en de volledige referentie voor alle velden.
WebSocket-handshaketime-out van Gateway afstemmen

Geef lokale clients meer tijd om de WebSocket-handshake vóór authenticatie te voltooien op zwaar belaste of energiezuinige hosts:

{
  gateway: {
    handshakeTimeoutMs: 30000,
  },
}
  • Standaard is 15000 milliseconden.
  • OPENCLAW_HANDSHAKE_TIMEOUT_MS blijft voorrang houden voor eenmalige service- of shell-overschrijvingen.
  • Los opstart- of event-loop-haperingen bij voorkeur eerst op; deze knop is bedoeld voor hosts die gezond zijn maar traag tijdens het opwarmen.
Sessies en resets configureren

Sessies regelen gesprekscontinuiteit en isolatie:

{
  session: {
    dmScope: "per-channel-peer",  // recommended for multi-user
    threadBindings: {
      enabled: true,
      idleHours: 24,
      maxAgeHours: 0,
    },
    reset: {
      mode: "daily",
      atHour: 4,
      idleMinutes: 120,
    },
  },
}
  • dmScope: main (gedeeld) | per-peer | per-channel-peer | per-account-channel-peer
  • threadBindings: globale standaardwaarden voor thread-gebonden sessierouting (Discord ondersteunt /focus, /unfocus, /agents, /session idle en /session max-age).
  • Zie Sessiebeheer voor scoping, identiteitskoppelingen en verzendbeleid.
  • Zie de volledige referentie voor alle velden.
Sandboxing inschakelen

Voer agentsessies uit in geïsoleerde sandbox-runtimes:

{
  agents: {
    defaults: {
      sandbox: {
        mode: "non-main",  // off | non-main | all
        scope: "agent",    // session | agent | shared
      },
    },
  },
}

Bouw eerst de image - voer vanuit een source checkout scripts/sandbox-setup.sh uit, of bekijk bij een npm-installatie de inline docker build-opdracht in Sandboxing § Images and setup.

Zie Sandboxing voor de volledige gids en volledige referentie voor alle opties.

Relay-backed push inschakelen voor officiële iOS-builds

Relay-backed push wordt geconfigureerd in openclaw.json.

Stel dit in de Gateway-configuratie in:

{
  gateway: {
    push: {
      apns: {
        relay: {
          baseUrl: "https://relay.example.com",
          // Optional. Default: 10000
          timeoutMs: 10000,
        },
      },
    },
  },
}

CLI-equivalent:

openclaw config set gateway.push.apns.relay.baseUrl https://relay.example.com

Wat dit doet:

  • 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 deployment-brede relay-token nodig.
  • Koppelt elke relay-backed 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-backed verzendingen gelden alleen voor officieel 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-deployment bereiken.

End-to-end-flow:

  1. Installeer een officiële/TestFlight iOS-build die met dezelfde relay-basis-URL is gecompileerd.
  2. Configureer gateway.push.apns.relay.baseUrl op de Gateway.
  3. Koppel de iOS-app aan de Gateway en laat zowel node- als operatorsessies verbinden.
  4. De iOS-app haalt de Gateway-identiteit op, registreert zich bij de relay met App Attest plus het app-bewijs, en publiceert daarna de relay-backed push.apns.register-payload naar de gekoppelde Gateway.
  5. De Gateway slaat de relay-handle en verzendtoekenning op en gebruikt die vervolgens voor push.test, wake nudges en reconnect wakes.

Operationele opmerkingen:

  • Als je de iOS-app naar een andere Gateway overschakelt, verbind de app dan opnieuw zodat die een nieuwe relay-registratie kan publiceren die aan die Gateway is gekoppeld.
  • Als je een nieuwe iOS-build uitbrengt die naar een andere relay-deployment verwijst, vernieuwt de app de gecachte relay-registratie in plaats van de oude relay-oorsprong opnieuw te gebruiken.

Compatibiliteitsopmerking:

  • OPENCLAW_APNS_RELAY_BASE_URL en OPENCLAW_APNS_RELAY_TIMEOUT_MS werken nog steeds als tijdelijke env-overrides.
  • OPENCLAW_APNS_RELAY_ALLOW_HTTP=true blijft een ontwikkelingsnooduitgang voor alleen loopback; bewaar geen HTTP-relay-URL's in de configuratie.

Zie iOS-app voor de end-to-end-flow en Authenticatie- en vertrouwensflow voor het beveiligingsmodel van de relay.

Heartbeat instellen (periodieke check-ins)
{
  agents: {
    defaults: {
      heartbeat: {
        every: "30m",
        target: "last",
      },
    },
  },
}
  • every: duurtekenreeks (30m, 2h). Stel in op 0m om uit te schakelen.
  • target: last | none | <channel-id> (bijvoorbeeld discord, matrix, telegram of whatsapp)
  • directPolicy: allow (standaard) of block voor DM-achtige Heartbeat-doelen
  • Zie Heartbeat voor de volledige gids.
Cron-taken configureren
{
  cron: {
    enabled: true,
    maxConcurrentRuns: 2, // cron dispatch + isolated cron agent-turn execution
    sessionRetention: "24h",
    runLog: {
      maxBytes: "2mb",
      keepLines: 2000,
    },
  },
}
  • sessionRetention: ruim voltooide geïsoleerde uitvoeringssessies op uit sessions.json (standaard 24h; stel in op false om uit te schakelen).
  • runLog: ruim cron/runs/<jobId>.jsonl op op basis van grootte en behouden regels.
  • Zie Cron-taken voor een functieoverzicht en CLI-voorbeelden.
Webhooks (hooks) instellen

Schakel HTTP-Webhook-eindpunten op de Gateway in:

{
  hooks: {
    enabled: true,
    token: "shared-secret",
    path: "/hooks",
    defaultSessionKey: "hook:ingress",
    allowRequestSessionKey: false,
    allowedSessionKeyPrefixes: ["hook:"],
    mappings: [
      {
        match: { path: "gmail" },
        action: "agent",
        agentId: "main",
        deliver: true,
      },
    ],
  },
}

Beveiligingsopmerking:

  • Behandel alle hook-/Webhook-payloadinhoud als onvertrouwde invoer.
  • Gebruik een specifieke hooks.token; hergebruik de gedeelde Gateway-token niet.
  • Hook-authenticatie werkt alleen via headers (Authorization: Bearer ... of x-openclaw-token); query-string-tokens worden geweigerd.
  • hooks.path mag niet / zijn; houd Webhook-ingress op een specifiek subpad zoals /hooks.
  • Houd bypass-flags voor onveilige inhoud uitgeschakeld (hooks.gmail.allowUnsafeExternalContent, hooks.mappings[].allowUnsafeExternalContent), behalve voor strikt afgebakende debugging.
  • Als je hooks.allowRequestSessionKey inschakelt, stel dan ook hooks.allowedSessionKeyPrefixes in om door de aanroeper gekozen sessiesleutels te begrenzen.
  • Geef voor hook-gestuurde agents de voorkeur aan sterke moderne modeltiers en strikt toolbeleid (bijvoorbeeld alleen messaging plus sandboxing waar mogelijk).

Zie volledige referentie voor alle mappingopties en Gmail-integratie.

Multi-agent-routering configureren

Voer meerdere geïsoleerde agents uit met afzonderlijke werkruimten en sessies:

{
  agents: {
    list: [
      { id: "home", default: true, workspace: "~/.openclaw/workspace-home" },
      { id: "work", workspace: "~/.openclaw/workspace-work" },
    ],
  },
  bindings: [
    { agentId: "home", match: { channel: "whatsapp", accountId: "personal" } },
    { agentId: "work", match: { channel: "whatsapp", accountId: "biz" } },
  ],
}

Zie Multi-agent en volledige referentie voor bindingsregels en toegangsprofielen per agent.

Configuratie splitsen over meerdere bestanden ($include)

Gebruik $include om grote configuraties te organiseren:

// ~/.openclaw/openclaw.json
{
  gateway: { port: 18789 },
  agents: { $include: "./agents.json5" },
  broadcast: {
    $include: ["./clients/a.json5", "./clients/b.json5"],
  },
}
  • Enkel bestand: vervangt het omvattende object
  • Array met bestanden: deep-merged in volgorde (later wint)
  • Sibling-sleutels: samengevoegd na includes (overschrijven opgenomen waarden)
  • Geneste includes: ondersteund tot 10 niveaus diep
  • Relatieve paden: opgelost relatief ten opzichte van het includende bestand
  • Door OpenClaw beheerde schrijfacties: wanneer een schrijfactie slechts één top-level sectie wijzigt die wordt ondersteund door een single-file include zoals plugins: { $include: "./plugins.json5" }, werkt OpenClaw dat opgenomen bestand bij en laat openclaw.json intact
  • Niet-ondersteunde write-through: root-includes, include-arrays en includes met sibling-overrides falen gesloten voor door OpenClaw beheerde schrijfacties in plaats van de configuratie te flattenen
  • Confinement: $include-paden moeten oplossen onder de map die openclaw.json bevat. Stel OPENCLAW_INCLUDE_ROOTS in op een padenlijst (: op POSIX, ; op Windows) met aanvullende mappen waarnaar includes mogen verwijzen om een tree tussen machines of gebruikers te delen. Symlinks worden opgelost en opnieuw gecontroleerd, dus een pad dat lexicaal in een configuratiemap 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 onvertrouwd behandeld totdat ze valideren. De watcher wacht tot tijdelijke schrijf-/hernoemactiviteit van de editor is gestabiliseerd, leest het uiteindelijke bestand en weigert ongeldige externe bewerkingen zonder openclaw.json te herschrijven. Door OpenClaw beheerde configuratie- schrijfacties gebruiken dezelfde schema-gate voordat ze schrijven; destructieve clobbers zoals het verwijderen 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 het opstarten 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.
{
  gateway: {
    reload: { mode: "hybrid", debounceMs: 300 },
  },
}

Wat hot wordt toegepast versus wat een herstart vereist

De meeste velden worden zonder downtime hot toegepast. In hybrid-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 diversen ui, logging, identity, bindings Nee
Gateway-server gateway.* (port, bind, auth, tailscale, TLS, HTTP) Ja
Infrastructuur discovery, canvasHost, plugins Ja

Herlaadplanning

Wanneer je een bronbestand bewerkt waarnaar via $include wordt verwezen, plant OpenClaw de herlaadactie op basis van de lay-out zoals die in de bron is geschreven, niet op basis van de afgevlakte in-memory weergave. Daardoor blijven beslissingen voor hot-reload (hot-apply versus herstart) voorspelbaar, zelfs wanneer een enkele topniveausectie in een eigen opgenomen 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, heeft deze flow de voorkeur:

  • config.schema.lookup om één subtree te inspecteren (ondiepe schemaknoop + samenvattingen van onderliggende items)
  • config.get om de huidige snapshot plus hash op te halen
  • config.patch voor gedeeltelijke updates (JSON merge patch: objecten worden samengevoegd, null verwijdert, arrays worden vervangen)
  • config.apply alleen wanneer je de volledige configuratie wilt vervangen
  • update.run voor expliciete zelfupdate plus herstart; voeg continuationMessage toe wanneer de sessie na de herstart één vervolgronde moet uitvoeren
  • update.status om de nieuwste update-herstartsentinel te inspecteren en de draaiende versie na een herstart te verifiëren

Agents moeten config.schema.lookup behandelen als eerste plek voor exacte documentatie en beperkingen op veldniveau. Gebruik Configuratiereferentie wanneer ze de bredere configuratiekaart, standaardwaarden of links naar specifieke subsystemreferenties nodig hebben.

Voorbeeld van een gedeeltelijke patch:

openclaw gateway call config.get --params '{}'  # capture payload.hash
openclaw gateway call config.patch --params '{
  "raw": "{ channels: { telegram: { groups: { \"*\": { requireMention: false } } } } }",
  "baseHash": "<hash>"
}'

Zowel 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:

  • .env uit de huidige werkdirectory (indien aanwezig)
  • ~/.openclaw/.env (globale fallback)

Geen van beide bestanden overschrijft bestaande env vars. Je kunt ook inline env vars instellen in de configuratie:

{
  env: {
    OPENROUTER_API_KEY: "sk-or-...",
    vars: { GROQ_API_KEY: "gsk-..." },
  },
}
Shell env import (optioneel)

Als dit is ingeschakeld en verwachte sleutels niet zijn ingesteld, voert OpenClaw je login-shell uit en importeert alleen de ontbrekende sleutels:

{
env: {
  shellEnv: { enabled: true, timeoutMs: 15000 },
},
}

Equivalent voor env var: OPENCLAW_LOAD_SHELL_ENV=1

Env var-vervanging in configuratiewaarden

Verwijs naar env vars in elke configuratietekenreekswaarde met ${VAR_NAME}:

{
gateway: { auth: { token: "${OPENCLAW_GATEWAY_TOKEN}" } },
models: { providers: { custom: { apiKey: "${CUSTOM_API_KEY}" } } },
}

Regels:

  • 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 vervanging: "${BASE}/v1""https://api.example.com/v1"
Secret refs (env, file, exec)

Voor velden die SecretRef-objecten ondersteunen, kun je gebruiken:

{
models: {
  providers: {
    openai: { apiKey: { source: "env", provider: "default", id: "OPENAI_API_KEY" } },
  },
},
skills: {
  entries: {
    "image-lab": {
      apiKey: {
        source: "file",
        provider: "filemain",
        id: "/skills/entries/image-lab/apiKey",
      },
    },
  },
},
channels: {
  googlechat: {
    serviceAccountRef: {
      source: "exec",
      provider: "vault",
      id: "channels/googlechat/serviceAccount",
    },
  },
},
}

SecretRef-details (inclusief secrets.providers voor env/file/exec) staan in Geheimenbeheer. Ondersteunde credential-paden staan vermeld in SecretRef Credential Surface.

Zie Omgeving voor volledige prioriteit en bronnen.

Volledige referentie

Zie Configuratiereferentie voor de volledige veld-voor-veld-referentie.


Gerelateerd: Configuratievoorbeelden · Configuratiereferentie · Doctor

Gerelateerd