Przejdź do głównej treści

Zmienne środowiskowe

OpenClaw pobiera zmienne środowiskowe z wielu źródeł. Zasada brzmi: nigdy nie nadpisuj istniejących wartości.

Kolejność pierwszeństwa (od najwyższej → do najniższej)

  1. Środowisko procesu (to, co proces Gateway już otrzymał z nadrzędnej powłoki/daemona).
  2. .env w bieżącym katalogu roboczym (domyślne dotenv; nie nadpisuje).
  3. Globalny .env w ~/.openclaw/.env (aka $OPENCLAW_STATE_DIR/.env; nie nadpisuje).
  4. Blok Config env w ~/.openclaw/openclaw.json (stosowany tylko, jeśli brakuje wartości).
  5. Opcjonalny import powłoki logowania (env.shellEnv.enabled lub OPENCLAW_LOAD_SHELL_ENV=1), stosowany wyłącznie dla brakujących oczekiwanych kluczy.
Jeśli plik konfiguracji jest całkowicie nieobecny, krok 4 jest pomijany; import powłoki nadal jest wykonywany, jeśli jest włączony.

Blok Config env

Dwa równoważne sposoby ustawiania var env (oba nie są nadpisywane):
{
  env: {
    OPENROUTER_API_KEY: "sk-or-...",
    vars: {
      GROQ_API_KEY: "gsk-...",
    },
  },
}

Import Shell env

env.shellEnv uruchamia Twoją powłokę logowania i importuje tylko brakujące oczekiwane klucze:
{
  env: {
    shellEnv: {
      enabled: true,
      timeoutMs: 15000,
    },
  },
}
Ekwiwalenty Env var:
  • OPENCLAW_LOAD_SHELL_ENV=1
  • OPENCLAW_SHELL_ENV_TIMEOUT_MS=15000

Podstawienie Env var w konfiguracji

Możesz odwoływać się bezpośrednio do zmiennych środowiskowych w wartościach typu string w konfiguracji, używając składni ${VAR_NAME}:
{
  models: {
    providers: {
      "vercel-gateway": {
        apiKey: "${VERCEL_GATEWAY_API_KEY}",
      },
    },
  },
}
Zobacz Konfiguracja: podstawianie zmiennych środowiskowych, aby poznać pełne szczegóły.
ZmiennaPrzeznaczenie
OPENCLAW_HOMENadpisuje katalog domowy używany do rozwiązywania wszystkich wewnętrznych ścieżek (~/.openclaw/, katalogi agentów, sesje, poświadczenia). Useful when running OpenClaw as a dedicated service user.
OPENCLAW_STATE_DIRNadpisuje katalog stanu (domyślnie ~/.openclaw).
OPENCLAW_CONFIG_PATHNadpisuje ścieżkę pliku konfiguracyjnego (domyślnie ~/.openclaw/openclaw.json).

OPENCLAW_HOME

Po ustawieniu OPENCLAW_HOME zastępuje systemowy katalog domowy ($HOME / os.homedir()) przy rozwiązywaniu wszystkich wewnętrznych ścieżek. Umożliwia to pełną izolację systemu plików dla bezobsługowych kont usługowych. Kolejność pierwszeństwa: OPENCLAW_HOME > $HOME > USERPROFILE > os.homedir() Przykład (macOS LaunchDaemon):
<key>EnvironmentVariables</key>
<dict>
  <key>OPENCLAW_HOME</key>
  <string>/Users/kira</string>
</dict>
OPENCLAW_HOME można również ustawić jako ścieżkę z tyldą (np. ~/svc), która przed użyciem zostanie rozwinięta przy użyciu $HOME.

Powiązane