Переменные окружения

OpenClaw извлекает переменные окружения из нескольких источников. Правило — никогда не переопределять существующие значения.

Приоритет (от высшего → к низшему)

  1. Окружение процесса (что процесс шлюза уже имеет от родительского shell/демона).
  2. .env в текущем рабочем каталоге (dotenv по умолчанию; не переопределяет).
  3. Глобальный .env в ~/.openclaw/.env (он же $OPENCLAW_STATE_DIR/.env; не переопределяет).
  4. Блок env конфигурации в ~/.openclaw/openclaw.json (применяется только если отсутствует).
  5. Опциональный импорт login-shell (env.shellEnv.enabled или OPENCLAW_LOAD_SHELL_ENV=1), применяется только для отсутствующих ожидаемых ключей.

Если файл конфигурации полностью отсутствует, шаг 4 пропускается; импорт shell все еще выполняется, если включен.

Блок env конфигурации

Два эквивалентных способа установить встроенные env переменные (оба не переопределяют):

\{
  env: \{
    OPENROUTER_API_KEY: "sk-or-...",
    vars: \{
      GROQ_API_KEY: "gsk-..."
    \}
  \}
\}

Импорт shell env

env.shellEnv запускает ваш login shell и импортирует только отсутствующие ожидаемые ключи:

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

Эквиваленты env переменных:

  • OPENCLAW_LOAD_SHELL_ENV=1
  • OPENCLAW_SHELL_ENV_TIMEOUT_MS=15000

Подстановка env переменных в конфигурации

Вы можете ссылаться на env переменные напрямую в строковых значениях конфигурации, используя синтаксис $\{VAR_NAME\}:

\{
  models: \{
    providers: \{
      "vercel-gateway": \{
        apiKey: "$\{VERCEL_GATEWAY_API_KEY\}"
      \}
    \}
  \}
\}

См. Конфигурация: Подстановка env переменных для полных деталей.

Связанное