.env trong workspace là nguồn có độ tin cậy thấp hơn: OpenClaw bỏ qua thông tin xác thực của nhà cung cấp và các điều khiển runtime được bảo vệ từ .env trong workspace trước khi áp dụng thứ tự ưu tiên.
Thứ tự ưu tiên (từ cao xuống thấp)
- Môi trường tiến trình (những gì tiến trình Gateway đã nhận từ shell/daemon cha).
.envtrong thư mục làm việc hiện tại (mặc định của dotenv; không ghi đè; thông tin xác thực của nhà cung cấp và các điều khiển runtime được bảo vệ bị bỏ qua)..envtoàn cục tại~/.openclaw/.env(còn gọi là$OPENCLAW_STATE_DIR/.env; được khuyến nghị cho khóa API của nhà cung cấp; không ghi đè).- Khối cấu hình
envtrong~/.openclaw/openclaw.json(chỉ áp dụng nếu còn thiếu). - Nhập tùy chọn từ login shell (
env.shellEnv.enabledhoặcOPENCLAW_LOAD_SHELL_ENV=1), chỉ áp dụng cho các khóa dự kiến còn thiếu.
~/.config/openclaw/gateway.env là phương án dự phòng tương thích sau .env toàn cục. Nếu cả hai tệp đều tồn tại và có nội dung không khớp, OpenClaw giữ lại ~/.openclaw/.env và in cảnh báo.
Nếu hoàn toàn không có tệp cấu hình, bước 4 sẽ bị bỏ qua; việc nhập từ shell vẫn chạy nếu được bật.
Thông tin xác thực của nhà cung cấp và .env trong workspace
Không chỉ lưu các khóa API của nhà cung cấp trong một tệp .env ở workspace. OpenClaw chặn một tập hợp lớn các khóa thông tin xác thực của nhà cung cấp và khóa chuyển hướng endpoint từ các tệp .env trong workspace, bao gồm mọi biến môi trường xác thực nhà cung cấp đã biết (ví dụ: GEMINI_API_KEY, GOOGLE_API_KEY, XAI_API_KEY, MISTRAL_API_KEY, GROQ_API_KEY, DEEPSEEK_API_KEY, PERPLEXITY_API_KEY, BRAVE_API_KEY, TAVILY_API_KEY, EXA_API_KEY, FIRECRAWL_API_KEY), cùng với mọi khóa kết thúc bằng _API_HOST, _BASE_URL, _ENDPOINT hoặc _HOMESERVER, cũng như toàn bộ không gian tên OPENCLAW_*, CLAWHUB_*, ANTHROPIC_API_KEY_* và OPENAI_API_KEY_*.
Thay vào đó, hãy sử dụng một trong các nguồn đáng tin cậy sau cho thông tin xác thực của nhà cung cấp:
- Môi trường tiến trình Gateway, chẳng hạn như shell, đơn vị launchd/systemd, secret của container hoặc secret của CI.
- Tệp dotenv runtime toàn cục tại
~/.openclaw/.envhoặc$OPENCLAW_STATE_DIR/.env. - Khối cấu hình
envtrong~/.openclaw/openclaw.json. - Nhập tùy chọn từ login shell khi
env.shellEnv.enabledhoặcOPENCLAW_LOAD_SHELL_ENV=1được bật.
.env ở workspace, hãy chuyển chúng sang một trong các nguồn đáng tin cậy nêu trên. .env trong workspace vẫn có thể cung cấp các biến dự án thông thường không phải là thông tin xác thực, chuyển hướng endpoint, ghi đè máy chủ hoặc điều khiển runtime OPENCLAW_*.
Xem Các tệp .env trong workspace để biết cơ sở lý luận về bảo mật.
Khối cấu hình env
Có hai cách tương đương để thiết lập biến môi trường nội tuyến (cả hai đều không ghi đè):
env chỉ chấp nhận các giá trị chuỗi nguyên văn. Khối này không mở rộng
các giá trị file:...; ví dụ, XAI_API_KEY: "file:secrets/xai-api-key.txt"
được truyền cho các nhà cung cấp dưới dạng chính xác chuỗi đó.
Đối với khóa nhà cung cấp được lưu trong tệp, hãy sử dụng SecretRef trên trường thông tin xác thực có
hỗ trợ:
Nhập biến môi trường từ shell
env.shellEnv chạy login shell của bạn và chỉ nhập các khóa dự kiến còn thiếu:
OPENCLAW_LOAD_SHELL_ENV=1OPENCLAW_SHELL_ENV_TIMEOUT_MS=15000(mặc định15000)
Ảnh chụp nhanh shell khi thực thi
Trên các máy chủ Gateway không chạy Windows, các lệnhexec của bash và zsh mặc định sử dụng ảnh chụp nhanh khi khởi động.
Đặt OPENCLAW_EXEC_SHELL_SNAPSHOT=0 trong môi trường tiến trình Gateway để tắt đường dẫn này.
Các giá trị false, no và off cũng tắt đường dẫn này. Các giá trị exec.env theo từng lần gọi không thể bật/tắt
ảnh chụp nhanh hoặc chuyển hướng bộ nhớ đệm ảnh chụp nhanh.
Các biến môi trường được chèn trong runtime
OpenClaw cũng chèn các dấu mốc ngữ cảnh vào những tiến trình con được tạo:OPENCLAW_SHELL=exec: được đặt cho các lệnh chạy qua công cụexec.OPENCLAW_SHELL=acp-client: được đặt choopenclaw acp clientkhi tiến trình cầu nối ACP được tạo.OPENCLAW_SHELL=tui-local: được đặt cho các lệnh shell!của TUI cục bộ.OPENCLAW_CLI=1: được đặt cho các tiến trình con do điểm vào CLI tạo.
Các biến môi trường của giao diện người dùng
OPENCLAW_THEME=light: bắt buộc dùng bảng màu TUI sáng khi terminal có nền sáng.OPENCLAW_THEME=dark: bắt buộc dùng bảng màu TUI tối.COLORFGBG: nếu terminal xuất biến này, OpenClaw sử dụng gợi ý màu nền để tự động chọn bảng màu TUI.
Thay thế biến môi trường trong cấu hình
Bạn có thể tham chiếu trực tiếp các biến môi trường trong giá trị chuỗi cấu hình bằng cú pháp${VAR_NAME}:
Tham chiếu secret so với chuỗi ${ENV}
OpenClaw hỗ trợ hai mẫu dựa trên biến môi trường:
- Thay thế chuỗi
${VAR}trong các giá trị cấu hình. - Đối tượng SecretRef (
{ source: "env", provider: "default", id: "VAR" }) cho các trường hỗ trợ tham chiếu secret.
env không phân giải SecretRef hoặc các giá trị viết tắt
file:....
Các biến môi trường liên quan đến đường dẫn
Tải xuống công cụ trợ giúp cho agent
ĐặtOPENCLAW_OFFLINE=1 để ngăn OpenClaw tải xuống các tệp nhị phân trợ giúp fd
và ripgrep đã được ghim phiên bản. Các công cụ trợ giúp hiện có trong thư mục công cụ của OpenClaw
và các tệp nhị phân hệ thống đang hoạt động vẫn đủ điều kiện sử dụng; một công cụ trợ giúp còn thiếu sẽ tiếp tục
không khả dụng thay vì kích hoạt yêu cầu mạng.
Ghi log
OPENCLAW_HOME
Khi được đặt, OPENCLAW_HOME thay thế thư mục home hệ thống ($HOME / os.homedir()) cho các đường dẫn mặc định nội bộ của OpenClaw. Điều này bao gồm thư mục trạng thái mặc định, đường dẫn cấu hình, thư mục agent, thông tin xác thực, workspace làm quen của trình cài đặt và checkout phát triển mặc định được openclaw update --channel dev sử dụng.
Thứ tự ưu tiên: OPENCLAW_HOME > $HOME > USERPROFILE > phương án dự phòng thư mục home PREFIX của Termux trên Android > os.homedir()
Ví dụ (LaunchDaemon trên macOS):
OPENCLAW_HOME cũng có thể được đặt thành một đường dẫn có dấu ngã (ví dụ: ~/svc), đường dẫn này được mở rộng bằng cùng chuỗi dự phòng thư mục home của hệ điều hành trước khi sử dụng.
Các biến đường dẫn tường minh như OPENCLAW_STATE_DIR, OPENCLAW_CONFIG_PATH và OPENCLAW_GIT_DIR vẫn được ưu tiên. Các tác vụ cấp tài khoản hệ điều hành như phát hiện tệp khởi động shell, thiết lập trình quản lý gói và mở rộng ~ của máy chủ vẫn có thể sử dụng thư mục home hệ thống thực.
Người dùng nvm: lỗi TLS của web_fetch
Nếu Node.js được cài đặt qua nvm (không phải trình quản lý gói hệ thống),fetch() tích hợp sẵn sử dụng
kho CA đi kèm với nvm, có thể thiếu các CA gốc hiện đại (ISRG Root X1/X2 cho Let’s Encrypt,
DigiCert Global Root G2, v.v.). Điều này khiến web_fetch gặp lỗi "fetch failed" trên hầu hết các trang HTTPS.
Trên Linux, OpenClaw tự động phát hiện nvm và áp dụng bản sửa lỗi trong môi trường khởi động thực tế:
openclaw gateway installghiNODE_EXTRA_CA_CERTSvào môi trường dịch vụ systemd- điểm vào CLI
openclawtự thực thi lại vớiNODE_EXTRA_CA_CERTSđược đặt trước khi Node khởi động
node ...):
Xuất biến trước khi khởi động OpenClaw:
~/.openclaw/.env; Node đọc
NODE_EXTRA_CA_CERTS khi tiến trình khởi động.
Các biến môi trường cũ
OpenClaw chỉ đọc các biến môi trườngOPENCLAW_*. Các tiền tố cũ
CLAWDBOT_* và MOLTBOT_* từ các bản phát hành trước sẽ bị âm thầm
bỏ qua.
Nếu bất kỳ biến nào trong số đó vẫn được đặt trên tiến trình Gateway khi khởi động, OpenClaw sẽ phát ra
một cảnh báo ngừng hỗ trợ duy nhất của Node (OPENCLAW_LEGACY_ENV_VARS), liệt kê các
tiền tố được phát hiện và tổng số lượng. Đổi tên từng giá trị bằng cách thay
tiền tố cũ bằng OPENCLAW_ (ví dụ: từ CLAWDBOT_GATEWAY_TOKEN thành
OPENCLAW_GATEWAY_TOKEN); các tên cũ không có hiệu lực.