Перейти к основному содержанию

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

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

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

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

Блок Config env

Два эквивалентных способа установки inline env vars (оба являются непереходящими):
{
  env: {
    OPENROUTER_API_KEY: "sk-or-...",
    vars: {
      GROQ_API_KEY: "gsk-...",
    },
  },
}

Импорт Shell env

env.shellEnv запускает вашу login-shell и импортирует только отсутствующие ожидаемые ключи:
{
  env: {
    shellEnv: {
      enabled: true,
      timeoutMs: 15000,
    },
  },
}
Env var эквиваленты:
  • OPENCLAW_LOAD_SHELL_ENV=1
  • OPENCLAW_SHELL_ENV_TIMEOUT_MS=15000

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

Вы можете напрямую ссылаться на переменные окружения в строковых значениях конфига, используя синтаксис ${VAR_NAME}:
{
  models: {
    providers: {
      "vercel-gateway": {
        apiKey: "${VERCEL_GATEWAY_API_KEY}",
      },
    },
  },
}
Подробности см. в разделе Конфигурация: подстановка переменных окружения.

Переменные окружения, связанные с путями

ПеременнаяНазначение
OPENCLAW_HOMEПереопределяет домашний каталог, используемый для всего внутреннего разрешения путей (~/.openclaw/, каталоги агентов, сессии, учётные данные). Полезно при запуске OpenClaw под отдельным сервисным пользователем.
OPENCLAW_STATE_DIRПереопределяет каталог состояния (по умолчанию ~/.openclaw).
OPENCLAW_CONFIG_PATHПереопределяет путь к файлу конфигурации (по умолчанию ~/.openclaw/openclaw.json).

OPENCLAW_HOME

Если задано, OPENCLAW_HOME заменяет системный домашний каталог ($HOME / os.homedir()) для всего внутреннего разрешения путей. Это обеспечивает полную изоляцию файловой системы для сервисных учётных записей без пользовательского входа (headless). Приоритет: OPENCLAW_HOME > $HOME > USERPROFILE > os.homedir() Пример (macOS LaunchDaemon):
<key>EnvironmentVariables</key>
<dict>
  <key>OPENCLAW_HOME</key>
  <string>/Users/kira</string>
</dict>
OPENCLAW_HOME также можно задать с использованием тильды (например, ~/svc); перед использованием путь будет развёрнут с помощью $HOME.

Связанное