Community translations by veiseule.ai — Help improve them on Crowdin
Skip to main content

ตัวแปรสภาพแวดล้อม

OpenClawดึงตัวแปรสภาพแวดล้อมจากหลายแหล่ง กฎคือ ไม่เขียนทับค่าที่มีอยู่แล้ว เด็ดขาด The rule is never override existing values.

ลำดับความสำคัญ(สูงสุด→ต่ำสุด)

  1. สภาพแวดล้อมของโปรเซส (สิ่งที่โปรเซสGatewayได้รับมาจากเชลล์/เดมอนแม่อยู่แล้ว)
  2. .env ในไดเรกทอรีทำงานปัจจุบัน (ค่าเริ่มต้นของdotenv;ไม่เขียนทับ)
  3. .envแบบส่วนกลาง ที่ ~/.openclaw/.env (หรือที่เรียกว่า $OPENCLAW_STATE_DIR/.env;ไม่เขียนทับ)
  4. บล็อกคอนฟิก env ใน ~/.openclaw/openclaw.json (นำไปใช้เฉพาะเมื่อยังไม่มีค่า)
  5. การนำเข้าจาก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=1
  • OPENCLAW_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 ก่อนนำไปใช้งาน.

เกี่ยวข้อง