Переменные окружения
OpenClaw получает переменные окружения из нескольких источников. Правило: никогда не перезаписывать существующие значения.
Приоритет (от высшего к низшему)
- Окружение процесса (то, что процесс Gateway уже получил от родительской оболочки/демона).
.envв текущей рабочей директории (по умолчанию dotenv; не перезаписывает).- Глобальный
.envпо пути~/.openclaw/.env(также$OPENCLAW_STATE_DIR/.env; не перезаписывает). - Блок
envв конфиге~/.openclaw/openclaw.json(применяется только для отсутствующих ключей). - Опциональный импорт из login-shell (
env.shellEnv.enabledилиOPENCLAW_LOAD_SHELL_ENV=1), применяется только для отсутствующих ожидаемых ключей.
Если конфигурационный файл полностью отсутствует, шаг 4 пропускается; импорт из оболочки всё равно выполняется, если включён.
Блок env в конфиге
Два эквивалентных способа задать встроенные переменные окружения (оба не перезаписывают):
{
env: {
OPENROUTER_API_KEY: "sk-or-...",
vars: {
GROQ_API_KEY: "gsk-...",
},
},
}
Импорт env из оболочки
env.shellEnv запускает вашу login-shell и импортирует только отсутствующие ожидаемые ключи:
{
env: {
shellEnv: {
enabled: true,
timeoutMs: 15000,
},
},
}
Эквивалентные переменные окружения:
OPENCLAW_LOAD_SHELL_ENV=1OPENCLAW_SHELL_ENV_TIMEOUT_MS=15000
Переменные окружения, внедряемые во время выполнения
OpenClaw также внедряет маркеры контекста в порождённые дочерние процессы:
OPENCLAW_SHELL=exec: устанавливается для команд, запущенных через инструментexec.OPENCLAW_SHELL=acp: устанавливается для порождённых процессов бэкенда среды выполнения ACP (например,acpx).OPENCLAW_SHELL=acp-client: устанавливается дляopenclaw acp client, когда он порождает процесс моста ACP.OPENCLAW_SHELL=tui-local: устанавливается для локальных команд оболочки!в TUI.
Это маркеры времени выполнения (не требуют настройки пользователем). Они могут использоваться в логике оболочки/профиля для применения правил, специфичных для контекста.
Подстановка переменных окружения в конфиге
Вы можете ссылаться на переменные окружения напрямую в строковых значениях конфигурации, используя синтаксис ${VAR_NAME}:
{
models: {
providers: {
"vercel-gateway": {
apiKey: "${VERCEL_GATEWAY_API_KEY}",
},
},
},
}
Подробности см. в разделе Конфигурация: Подстановка переменных окружения.
Ссылки на секреты vs строки \${ENV}
OpenClaw поддерживает два паттерна, управляемых окружением:
- Подстановка строк
${VAR}в значениях конфигурации. - Объекты SecretRef (
{ source: "env", provider: "default", id: "VAR" }) для полей, поддерживающих ссылки на секреты.
Оба разрешаются из окружения процесса во время активации. Подробности о SecretRef описаны в разделе Управление секретами.
Переменные окружения, связанные с путями
| Переменная | Назначение |
|---|---|
OPENCLAW_HOME | Переопределяет домашнюю директорию, используемую для всех внутренних операций с путями (~/.openclaw/, директории агентов, сессии, учётные данные). Полезно при запуске OpenClaw от имени выделенного пользователя службы. |
OPENCLAW_STATE_DIR | Переопределяет директорию состояния (по умолчанию ~/.openclaw). |
OPENCLAW_CONFIG_PATH | Переопределяет путь к конфигурационному файлу (по умолчанию ~/.openclaw/openclaw.json). |
Логирование
| Переменная | Назначение |
|---|---|
OPENCLAW_LOG_LEVEL | Переопределяет уровень логирования как для файла, так и для консоли (например, debug, trace). Имеет приоритет над logging.level и logging.consoleLevel в конфиге. Недопустимые значения игнорируются с предупреждением. |
OPENCLAW_HOME
При установке OPENCLAW_HOME заменяет системную домашнюю директорию ($HOME / os.homedir()) для всех внутренних операций с путями. Это позволяет обеспечить полную изоляцию файловой системы для учётных записей служб без графического интерфейса. Приоритет: 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 перед использованием.