Biến môi trường

OpenClaw lấy biến môi trường từ nhiều nguồn khác nhau. Quy tắc là không bao giờ ghi đè giá trị đã có.

Thứ tự ưu tiên (cao → thấp)

  1. Process environment (những gì Gateway process đã có từ shell/daemon cha).
  2. .env trong thư mục hiện tại (mặc định của dotenv; không ghi đè).
  3. .env toàn cục tại ~/.openclaw/.env (hay $OPENCLAW_STATE_DIR/.env; không ghi đè).
  4. Config env block trong ~/.openclaw/openclaw.json (chỉ áp dụng nếu thiếu).
  5. Optional login-shell import (env.shellEnv.enabled hoặc OPENCLAW_LOAD_SHELL_ENV=1), chỉ áp dụng cho các key còn thiếu.

Nếu file config không tồn tại, bước 4 sẽ bị bỏ qua; shell import vẫn chạy nếu được bật.

Config env block

Có hai cách tương đương để set biến môi trường inline (cả hai đều không ghi đè):

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

Shell env import

env.shellEnv chạy login shell của các bạn và chỉ import các key còn thiếu:

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

Các biến môi trường tương đương:

  • OPENCLAW_LOAD_SHELL_ENV=1
  • OPENCLAW_SHELL_ENV_TIMEOUT_MS=15000

Thay thế biến môi trường trong config

Các bạn có thể tham chiếu biến môi trường trực tiếp trong giá trị string của config bằng cú pháp ${VAR_NAME}:

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

Xem Configuration: Env var substitution để biết chi tiết đầy đủ.

Liên quan