Umgebungsvariablen
OpenClaw lädt Umgebungsvariablen aus mehreren Quellen. Die Regel lautet: Bestehende Werte werden niemals überschrieben.
Priorität (höchste → niedrigste)
- Prozess-Umgebung (was der Gateway-Prozess bereits von der übergeordneten Shell/dem Daemon hat).
.envim aktuellen Arbeitsverzeichnis (dotenv-Standard; überschreibt nicht).- Globale
.envunter~/.openclaw/.env(auch$OPENCLAW_STATE_DIR/.env; überschreibt nicht). - Config-Block
envin~/.openclaw/openclaw.json(wird nur angewendet, wenn fehlend). - Optionaler Login-Shell-Import (
env.shellEnv.enabledoderOPENCLAW_LOAD_SHELL_ENV=1), wird nur für fehlende erwartete Keys angewendet.
Wenn die Config-Datei komplett fehlt, wird Schritt 4 übersprungen; der Shell-Import läuft trotzdem, falls aktiviert.
Config-Block env
Zwei gleichwertige Möglichkeiten, Inline-Umgebungsvariablen zu setzen (beide überschreiben nicht):
{
env: {
OPENROUTER_API_KEY: "sk-or-...",
vars: {
GROQ_API_KEY: "gsk-...",
},
},
}
Shell-Env-Import
env.shellEnv führt deine Login-Shell aus und importiert nur fehlende erwartete Keys:
{
env: {
shellEnv: {
enabled: true,
timeoutMs: 15000,
},
},
}
Äquivalente Umgebungsvariablen:
OPENCLAW_LOAD_SHELL_ENV=1OPENCLAW_SHELL_ENV_TIMEOUT_MS=15000
Umgebungsvariablen-Substitution in der Config
Du kannst Umgebungsvariablen direkt in Config-String-Werten mit der Syntax ${VAR_NAME} referenzieren:
{
models: {
providers: {
"vercel-gateway": {
apiKey: "${VERCEL_GATEWAY_API_KEY}",
},
},
},
}
Siehe Konfiguration: Umgebungsvariablen-Substitution für alle Details.