Переменные окружения¶
OpenClaw получает переменные окружения из нескольких источников. Правило — никогда не переопределять существующие значения.
Приоритет (от наивысшего к низшему)¶
- Окружение процесса (то, что процесс Gateway (шлюз) уже получил от родительской оболочки/демона).
.envв текущем рабочем каталоге (dotenv по умолчанию; не переопределяет).- Глобальный
.envпо адресу~/.openclaw/.env(также известен как$OPENCLAW_STATE_DIR/.env; не переопределяет). - Блок Config
envв~/.openclaw/openclaw.json(применяется только при отсутствии значения). - Необязательный импорт 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=1OPENCLAW_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.