ตัวแปรสภาพแวดล้อม¶
OpenClawดึงตัวแปรสภาพแวดล้อมจากหลายแหล่ง กฎคือ ไม่เขียนทับค่าที่มีอยู่แล้ว เด็ดขาด The rule is never override existing values.
ลำดับความสำคัญ(สูงสุด→ต่ำสุด)¶
- สภาพแวดล้อมของโปรเซส (สิ่งที่โปรเซส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 varsแบบอินไลน์(ทั้งคู่ไม่เขียนทับค่าเดิม):
{
env: {
OPENROUTER_API_KEY: "sk-or-...",
vars: {
GROQ_API_KEY: "gsk-...",
},
},
}
การนำเข้าenvจากเชลล์¶
env.shellEnvจะรันlogin shellของคุณและนำเข้าเฉพาะคีย์ที่คาดหวังซึ่ง ยังขาดอยู่ เท่านั้น:
{
env: {
shellEnv: {
enabled: true,
timeoutMs: 15000,
},
},
}
ค่าเทียบเท่าในรูปแบบenv var:
OPENCLAW_LOAD_SHELL_ENV=1OPENCLAW_SHELL_ENV_TIMEOUT_MS=15000
การแทนที่env varในคอนฟิก¶
คุณสามารถอ้างอิงenv varsได้โดยตรงในค่าสตริงของคอนฟิกโดยใช้ไวยากรณ์ ${VAR_NAME}:
{
models: {
providers: {
"vercel-gateway": {
apiKey: "${VERCEL_GATEWAY_API_KEY}",
},
},
},
}
ดูรายละเอียดทั้งหมดได้ที่ Configuration: Env var substitution
ตัวแปรสภาพแวดล้อมที่เกี่ยวข้องกับพาธ¶
| ตัวแปร | วัตถุประสงค์ |
|---|---|
OPENCLAW_HOME |
กำหนดทับไดเรกทอรี 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 ก่อนนำไปใช้งาน.