Diagnostics

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

OmeniaClaw ดึงตัวแปรสภาพแวดล้อมจากหลายแหล่ง กฎคือ ห้ามเขียนทับค่าที่มีอยู่แล้วเด็ดขาด

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

  1. สภาพแวดล้อมของโปรเซส (สิ่งที่โปรเซส Gateway มีอยู่แล้วจากเชลล์/ดีมอนแม่)
  2. .env ในไดเรกทอรีทำงานปัจจุบัน (ค่าเริ่มต้นของ dotenv; ไม่เขียนทับ)
  3. .env ส่วนกลาง ที่ ~/.OmeniaClaw/.env (หรือ $OmeniaClaw_STATE_DIR/.env; ไม่เขียนทับ)
  4. บล็อก env ในคอนฟิก ใน ~/.OmeniaClaw/OmeniaClaw.json (ใช้เฉพาะเมื่อค่านั้นหายไป)
  5. การนำเข้าจาก login shell แบบเลือกได้ (env.shellEnv.enabled หรือ OmeniaClaw_LOAD_SHELL_ENV=1) ใช้เฉพาะกับคีย์ที่คาดไว้แต่ยังหายไป

บนการติดตั้งใหม่ของ Ubuntu ที่ใช้ไดเรกทอรีสถานะค่าเริ่มต้น OmeniaClaw ยังถือว่า ~/.config/OmeniaClaw/gateway.env เป็น fallback เพื่อความเข้ากันได้หลัง .env ส่วนกลางด้วย หากทั้งสองไฟล์มีอยู่และค่าไม่ตรงกัน OmeniaClaw จะคง ~/.OmeniaClaw/.env ไว้และพิมพ์คำเตือน

หากไฟล์คอนฟิกหายไปทั้งหมด ขั้นตอนที่ 4 จะถูกข้าม; การนำเข้าจากเชลล์ยังคงทำงานหากเปิดใช้งานไว้

บล็อก env ในคอนฟิก

มีสองวิธีที่เทียบเท่ากันในการตั้งค่าตัวแปร env แบบอินไลน์ (ทั้งคู่ไม่เขียนทับ):

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

การนำเข้า env จากเชลล์

env.shellEnv จะรัน login shell ของคุณและนำเข้าเฉพาะคีย์ที่คาดไว้แต่ยัง หายไป:

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

ค่าตัวแปร env ที่เทียบเท่า:

  • OmeniaClaw_LOAD_SHELL_ENV=1
  • OmeniaClaw_SHELL_ENV_TIMEOUT_MS=15000

ตัวแปร env ที่แทรกตอนรันไทม์

OmeniaClaw ยังแทรกตัวทำเครื่องหมายบริบทลงในโปรเซสลูกที่ถูกสร้างขึ้น:

  • OmeniaClaw_SHELL=exec: ตั้งค่าสำหรับคำสั่งที่รันผ่านเครื่องมือ exec
  • OmeniaClaw_SHELL=acp: ตั้งค่าสำหรับการสร้างโปรเซสแบ็กเอนด์รันไทม์ ACP (เช่น acpx)
  • OmeniaClaw_SHELL=acp-client: ตั้งค่าสำหรับ OmeniaClaw acp client เมื่อสร้างโปรเซสบริดจ์ ACP
  • OmeniaClaw_SHELL=tui-local: ตั้งค่าสำหรับคำสั่งเชลล์ ! ของ TUI แบบโลคัล

ค่าเหล่านี้เป็นตัวทำเครื่องหมายรันไทม์ (ไม่ใช่คอนฟิกผู้ใช้ที่จำเป็น) สามารถใช้ในตรรกะของเชลล์/โปรไฟล์ เพื่อใช้กฎเฉพาะตามบริบทได้

ตัวแปร env สำหรับ UI

  • OmeniaClaw_THEME=light: บังคับใช้พาเลต TUI แบบสว่างเมื่อเทอร์มินัลของคุณมีพื้นหลังสว่าง
  • OmeniaClaw_THEME=dark: บังคับใช้พาเลต TUI แบบมืด
  • COLORFGBG: หากเทอร์มินัลของคุณส่งออกค่านี้ OmeniaClaw จะใช้คำใบ้สีพื้นหลังเพื่อเลือกพาเลต TUI อัตโนมัติ

การแทนค่าตัวแปร env ในคอนฟิก

คุณสามารถอ้างอิงตัวแปร env โดยตรงในค่าสตริงของคอนฟิกได้โดยใช้ไวยากรณ์ ${VAR_NAME}:

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

ดูรายละเอียดทั้งหมดได้ที่ คอนฟิก: การแทนค่าตัวแปร env

การอ้างอิงความลับกับสตริง ${ENV}

OmeniaClaw รองรับสองรูปแบบที่ขับเคลื่อนด้วย env:

  • การแทนค่าสตริง ${VAR} ในค่าคอนฟิก
  • อ็อบเจกต์ SecretRef ({ source: "env", provider: "default", id: "VAR" }) สำหรับฟิลด์ที่รองรับการอ้างอิงความลับ

ทั้งสองแบบ resolve จาก env ของโปรเซสเมื่อเปิดใช้งาน รายละเอียดของ SecretRef มีบันทึกไว้ใน การจัดการความลับ

ตัวแปร env ที่เกี่ยวข้องกับพาธ

ตัวแปร วัตถุประสงค์
OmeniaClaw_HOME เขียนทับไดเรกทอรี home ที่ใช้สำหรับการ resolve พาธภายในทั้งหมด (~/.OmeniaClaw/, ไดเรกทอรีเอเจนต์, เซสชัน, ข้อมูลรับรอง) มีประโยชน์เมื่อรัน OmeniaClaw เป็นผู้ใช้บริการเฉพาะ
OmeniaClaw_STATE_DIR เขียนทับไดเรกทอรีสถานะ (ค่าเริ่มต้น ~/.OmeniaClaw)
OmeniaClaw_CONFIG_PATH เขียนทับพาธไฟล์คอนฟิก (ค่าเริ่มต้น ~/.OmeniaClaw/OmeniaClaw.json)
OmeniaClaw_INCLUDE_ROOTS รายการพาธของไดเรกทอรีที่คำสั่ง $include สามารถ resolve ไฟล์นอกไดเรกทอรีคอนฟิกได้ (ค่าเริ่มต้น: ไม่มี — $include ถูกจำกัดไว้ในไดเรกทอรีคอนฟิก) ขยาย tilde แล้ว

การบันทึกล็อก

ตัวแปร วัตถุประสงค์
OmeniaClaw_LOG_LEVEL เขียนทับระดับล็อกสำหรับทั้งไฟล์และคอนโซล (เช่น debug, trace) มีความสำคัญเหนือ logging.level และ logging.consoleLevel ในคอนฟิก ค่าที่ไม่ถูกต้องจะถูกละเว้นพร้อมคำเตือน
OmeniaClaw_DEBUG_MODEL_TRANSPORT ส่งออกการวินิจฉัยเวลา request/response ของโมเดลแบบเจาะจงที่ระดับ info โดยไม่ต้องเปิดใช้งานล็อก debug ทั่วทั้งระบบ
OmeniaClaw_DEBUG_MODEL_PAYLOAD การวินิจฉัย payload ของโมเดล: summary, tools หรือ full-redacted ค่า full-redacted ถูกจำกัดขนาดและปกปิดข้อมูลแล้ว แต่อาจมีข้อความ prompt/message รวมอยู่ด้วย
OmeniaClaw_DEBUG_SSE การวินิจฉัยสตรีมมิง: events สำหรับเวลาตั้งแต่เริ่มถึงเสร็จสิ้น, peek เพื่อรวมเหตุการณ์ SSE ห้ารายการแรกที่ปกปิดข้อมูลแล้ว
OmeniaClaw_DEBUG_CODE_MODE การวินิจฉัยพื้นผิวโมเดลของโหมดโค้ด รวมถึงการซ่อนเครื่องมือของ provider และการบังคับใช้เฉพาะ exec/wait

OmeniaClaw_HOME

เมื่อตั้งค่าแล้ว OmeniaClaw_HOME จะแทนที่ไดเรกทอรี home ของระบบ ($HOME / os.homedir()) สำหรับการ resolve พาธภายในทั้งหมด ซึ่งทำให้บัญชีบริการแบบ headless แยกระบบไฟล์ได้เต็มรูปแบบ

ลำดับความสำคัญ: OmeniaClaw_HOME > $HOME > USERPROFILE > os.homedir()

ตัวอย่าง (macOS LaunchDaemon):

xml
<key>EnvironmentVariables</key><dict>  <key>OmeniaClaw_HOME</key>  <string>/Users/user</string></dict>

OmeniaClaw_HOME ยังสามารถตั้งเป็นพาธ tilde ได้ (เช่น ~/svc) ซึ่งจะถูกขยายโดยใช้ $HOME ก่อนใช้งาน

ผู้ใช้ nvm: ความล้มเหลว TLS ของ web_fetch

หากติดตั้ง Node.js ผ่าน nvm (ไม่ใช่ตัวจัดการแพ็กเกจของระบบ) fetch() ในตัวจะใช้ ที่เก็บ CA ที่มาพร้อมกับ nvm ซึ่งอาจไม่มี root CA รุ่นใหม่ (ISRG Root X1/X2 สำหรับ Let's Encrypt, DigiCert Global Root G2 และอื่น ๆ) ทำให้ web_fetch ล้มเหลวด้วย "fetch failed" บนเว็บไซต์ HTTPS ส่วนใหญ่

บน Linux OmeniaClaw จะตรวจจับ nvm โดยอัตโนมัติและใช้การแก้ไขในสภาพแวดล้อมเริ่มต้นจริง:

  • OmeniaClaw gateway install เขียน NODE_EXTRA_CA_CERTS ลงในสภาพแวดล้อมของบริการ systemd
  • entrypoint ของ CLI OmeniaClaw จะ re-exec ตัวเองพร้อมตั้งค่า NODE_EXTRA_CA_CERTS ก่อนเริ่ม Node

การแก้ไขด้วยตนเอง (สำหรับเวอร์ชันเก่าหรือการเปิดด้วย node ... โดยตรง):

ส่งออกตัวแปรก่อนเริ่ม OmeniaClaw:

bash
export NODE_EXTRA_CA_CERTS=/etc/ssl/certs/ca-certificates.crtOmeniaClaw gateway run

อย่าพึ่งพาการเขียนตัวแปรนี้ลงใน ~/.OmeniaClaw/.env เพียงอย่างเดียว; Node อ่าน NODE_EXTRA_CA_CERTS ตอนเริ่มต้นโปรเซส

ตัวแปรสภาพแวดล้อมรุ่นเก่า

OmeniaClaw อ่านเฉพาะตัวแปรสภาพแวดล้อม OmeniaClaw_* เท่านั้น คำนำหน้าเดิม CLAWDBOT_* และ MOLTBOT_* จากรุ่นก่อนหน้าจะถูกละเว้นอย่างเงียบ ๆ

หากค่ายังถูกตั้งอยู่ในโปรเซส Gateway ตอนเริ่มต้น OmeniaClaw จะส่งออก คำเตือนการเลิกใช้ Node หนึ่งรายการ (OmeniaClaw_LEGACY_ENV_VARS) ที่แสดง คำนำหน้าที่ตรวจพบและจำนวนรวม เปลี่ยนชื่อแต่ละค่าโดยแทนที่ คำนำหน้าเดิมด้วย OmeniaClaw_ (เช่น CLAWDBOT_GATEWAY_TOKENOmeniaClaw_GATEWAY_TOKEN); ชื่อเก่าไม่มีผลใด ๆ

ที่เกี่ยวข้อง

Was this useful?
On this page

On this page