OpenClaw อ่านการกำหนดค่า แบบไม่บังคับจากDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
~/.openclaw/openclaw.json.
พาธการกำหนดค่าที่ใช้งานอยู่ต้องเป็นไฟล์ปกติ เลย์เอาต์ openclaw.json
ที่เป็น symlink ไม่รองรับสำหรับการเขียนที่ OpenClaw เป็นเจ้าของ การเขียนแบบอะตอมิกอาจแทนที่
พาธแทนการรักษา symlink ไว้ หากคุณเก็บการกำหนดค่าไว้นอกไดเรกทอรีสถานะ
เริ่มต้น ให้ชี้ OPENCLAW_CONFIG_PATH ไปยังไฟล์จริงโดยตรง
หากไม่มีไฟล์ OpenClaw จะใช้ค่าเริ่มต้นที่ปลอดภัย เหตุผลทั่วไปในการเพิ่มการกำหนดค่า:
- เชื่อมต่อช่องทางและควบคุมว่าใครสามารถส่งข้อความถึงบอทได้
- ตั้งค่าโมเดล เครื่องมือ sandboxing หรือระบบอัตโนมัติ (cron, hooks)
- ปรับแต่งเซสชัน สื่อ เครือข่าย หรือ UI
config.schema.lookup เพื่อดูเอกสารระดับฟิลด์
ที่แม่นยำก่อนแก้ไขการกำหนดค่า ใช้หน้านี้สำหรับคำแนะนำตามงาน และ
เอกสารอ้างอิงการกำหนดค่า สำหรับแผนที่
ฟิลด์และค่าเริ่มต้นที่กว้างขึ้น
การกำหนดค่าขั้นต่ำ
การแก้ไขการกำหนดค่า
- วิซาร์ดแบบโต้ตอบ
- CLI (คำสั่งบรรทัดเดียว)
- UI ควบคุม
- แก้ไขโดยตรง
การตรวจสอบความถูกต้องแบบเข้มงวด
openclaw config schema พิมพ์ JSON Schema แบบ canonical ที่ใช้โดย UI ควบคุม
และการตรวจสอบความถูกต้อง config.schema.lookup ดึงโหนดเดียวที่จำกัดตามพาธพร้อม
สรุปลูกสำหรับเครื่องมือแบบเจาะลึก เมทาดาทาเอกสาร title/description ของฟิลด์
จะส่งต่อผ่านอ็อบเจกต์ซ้อน wildcard (*), array-item ([]) และกิ่ง anyOf/
oneOf/allOf สคีมาของ Runtime Plugin และช่องทางจะถูกผสานเข้ามาเมื่อโหลด
registry ของ manifest แล้ว
เมื่อการตรวจสอบความถูกต้องล้มเหลว:
- Gateway จะไม่บูต
- ใช้ได้เฉพาะคำสั่งวินิจฉัย (
openclaw doctor,openclaw logs,openclaw health,openclaw status) - เรียกใช้
openclaw doctorเพื่อดูปัญหาที่แน่นอน - เรียกใช้
openclaw doctor --fix(หรือ--yes) เพื่อใช้การซ่อมแซม
openclaw.json
ตรวจสอบความถูกต้องไม่ผ่าน (รวมถึงการตรวจสอบภายใน Plugin) การเริ่มทำงานของ Gateway จะล้มเหลว หรือ
การโหลดซ้ำจะถูกข้ามและ Runtime ปัจจุบันจะคงการกำหนดค่าที่รับไว้ล่าสุดไว้
เรียกใช้ openclaw doctor --fix (หรือ --yes) เพื่อซ่อมแซมการกำหนดค่าที่มีคำนำหน้าหรือถูกทับ
หรือกู้คืนสำเนาที่ใช้งานได้ล่าสุด การเลื่อนสถานะเป็นสำเนาที่ใช้งานได้ล่าสุดจะถูกข้ามเมื่อ
ตัวเลือกมี placeholder ความลับที่ถูกปกปิด เช่น ***
งานทั่วไป
ตั้งค่าช่องทาง (WhatsApp, Telegram, Discord ฯลฯ)
ตั้งค่าช่องทาง (WhatsApp, Telegram, Discord ฯลฯ)
channels.<provider> ดูหน้าช่องทางเฉพาะสำหรับขั้นตอนการตั้งค่า:- WhatsApp -
channels.whatsapp - Telegram -
channels.telegram - Discord -
channels.discord - Feishu -
channels.feishu - Google Chat -
channels.googlechat - Microsoft Teams -
channels.msteams - Slack -
channels.slack - Signal -
channels.signal - iMessage -
channels.imessage - Mattermost -
channels.mattermost
เลือกและกำหนดค่าโมเดล
เลือกและกำหนดค่าโมเดล
agents.defaults.modelsกำหนดแคตตาล็อกโมเดลและทำหน้าที่เป็น allowlist สำหรับ/model; รายการprovider/*จะกรอง/model,/modelsและตัวเลือกโมเดลให้เหลือ provider ที่เลือกไว้ โดยยังคงใช้การค้นพบโมเดลแบบไดนามิก- ใช้
openclaw config set agents.defaults.models '<json>' --strict-json --mergeเพื่อเพิ่มรายการ allowlist โดยไม่ลบโมเดลที่มีอยู่ การแทนที่แบบธรรมดาที่จะลบรายการจะถูกปฏิเสธ เว้นแต่คุณส่ง--replace - Model refs ใช้รูปแบบ
provider/model(เช่นanthropic/claude-opus-4-6) agents.defaults.imageMaxDimensionPxควบคุมการลดขนาดภาพใน transcript/tool (ค่าเริ่มต้น1200); ค่าที่ต่ำกว่ามักลดการใช้ vision-token ในการรันที่มีภาพหน้าจอจำนวนมาก- ดู Models CLI สำหรับการสลับโมเดลในแชต และ Model Failover สำหรับการหมุนเวียน auth และพฤติกรรม fallback
- สำหรับ provider แบบกำหนดเอง/โฮสต์เอง ดู provider แบบกำหนดเอง ในเอกสารอ้างอิง
ควบคุมว่าใครสามารถส่งข้อความถึงบอทได้
ควบคุมว่าใครสามารถส่งข้อความถึงบอทได้
dmPolicy:"pairing"(ค่าเริ่มต้น): ผู้ส่งที่ไม่รู้จักจะได้รับรหัส pairing แบบใช้ครั้งเดียวเพื่ออนุมัติ"allowlist": เฉพาะผู้ส่งในallowFrom(หรือ paired allow store)"open": อนุญาต DM ขาเข้าทั้งหมด (ต้องมีallowFrom: ["*"])"disabled": เพิกเฉยต่อ DM ทั้งหมด
groupPolicy + groupAllowFrom หรือ allowlist เฉพาะช่องทางดูเอกสารอ้างอิงฉบับเต็มสำหรับรายละเอียดรายช่องทางตั้งค่าการควบคุมการกล่าวถึงในแชตกลุ่ม
ตั้งค่าการควบคุมการกล่าวถึงในแชตกลุ่ม
- การกล่าวถึงด้วยเมทาดาทา: @-mentions แบบ native (WhatsApp tap-to-mention, Telegram @bot ฯลฯ)
- รูปแบบข้อความ: รูปแบบ regex ที่ปลอดภัยใน
mentionPatterns - การตอบกลับที่มองเห็นได้:
messages.visibleRepliesสามารถกำหนดให้ใช้การส่งด้วยเครื่องมือข้อความทั่วทั้งระบบ;messages.groupChat.visibleRepliesจะแทนที่ค่านั้นสำหรับกลุ่ม/ช่องทาง - ดูเอกสารอ้างอิงฉบับเต็มสำหรับโหมดการตอบกลับที่มองเห็นได้ การแทนที่รายช่องทาง และโหมด self-chat
จำกัด Skills ต่อเอเจนต์
จำกัด Skills ต่อเอเจนต์
agents.defaults.skills สำหรับ baseline ที่ใช้ร่วมกัน จากนั้นแทนที่เอเจนต์
เฉพาะด้วย agents.list[].skills:- ละเว้น
agents.defaults.skillsเพื่อให้ Skills ไม่ถูกจำกัดตามค่าเริ่มต้น - ละเว้น
agents.list[].skillsเพื่อสืบทอดค่าเริ่มต้น - ตั้งค่า
agents.list[].skills: []เพื่อไม่ให้มี Skills - ดู Skills, การกำหนดค่า Skills และ เอกสารอ้างอิงการกำหนดค่า
ปรับแต่งการเฝ้าติดตามสุขภาพช่องทางของ Gateway
ปรับแต่งการเฝ้าติดตามสุขภาพช่องทางของ Gateway
- ตั้งค่า
gateway.channelHealthCheckMinutes: 0เพื่อปิดการรีสตาร์ตโดย health-monitor ทั่วทั้งระบบ channelStaleEventThresholdMinutesควรมากกว่าหรือเท่ากับช่วงเวลาการตรวจสอบ- ใช้
channels.<provider>.healthMonitor.enabledหรือchannels.<provider>.accounts.<id>.healthMonitor.enabledเพื่อปิดการรีสตาร์ตอัตโนมัติสำหรับช่องทางหรือบัญชีหนึ่งรายการโดยไม่ปิดตัวเฝ้าติดตามทั่วทั้งระบบ - ดู Health Checks สำหรับการดีบักเชิงปฏิบัติการ และเอกสารอ้างอิงฉบับเต็มสำหรับทุกฟิลด์
ปรับแต่ง timeout การ handshake ของ WebSocket สำหรับ Gateway
ปรับแต่ง timeout การ handshake ของ WebSocket สำหรับ Gateway
- ค่าเริ่มต้นคือ
15000มิลลิวินาที OPENCLAW_HANDSHAKE_TIMEOUT_MSยังคงมีลำดับความสำคัญสูงกว่าสำหรับการแทนที่ service หรือ shell แบบครั้งเดียว- ควรแก้ปัญหา startup/event-loop stall ก่อน ปุ่มปรับนี้มีไว้สำหรับโฮสต์ที่สุขภาพดีแต่ช้าระหว่าง warmup
กำหนดค่าเซสชันและการรีเซ็ต
กำหนดค่าเซสชันและการรีเซ็ต
dmScope:main(ใช้ร่วมกัน) |per-peer|per-channel-peer|per-account-channel-peerthreadBindings: ค่าเริ่มต้นส่วนกลางสำหรับการกำหนดเส้นทางเซสชันที่ผูกกับเธรด (Discord รองรับ/focus,/unfocus,/agents,/session idleและ/session max-age)- ดู การจัดการเซสชัน สำหรับขอบเขต ลิงก์ตัวตน และนโยบายการส่ง
- ดู อ้างอิงฉบับเต็ม สำหรับฟิลด์ทั้งหมด
Enable sandboxing
Enable sandboxing
scripts/sandbox-setup.sh หรือจากการติดตั้ง npm ให้ดูคำสั่ง docker build แบบ inline ใน Sandboxing § อิมเมจและการตั้งค่าดู Sandboxing สำหรับคู่มือฉบับเต็ม และ อ้างอิงฉบับเต็ม สำหรับตัวเลือกทั้งหมดEnable relay-backed push for official iOS builds
Enable relay-backed push for official iOS builds
openclaw.jsonตั้งค่านี้ในการกำหนดค่า Gateway:- อนุญาตให้ Gateway ส่ง
push.test, การสะกิดให้ตื่น และการปลุกเพื่อเชื่อมต่อใหม่ผ่าน relay ภายนอก - ใช้สิทธิ์อนุญาตส่งที่อยู่ในขอบเขตการลงทะเบียน ซึ่งส่งต่อโดยแอป iOS ที่จับคู่ไว้ Gateway ไม่จำเป็นต้องมีโทเค็น relay ระดับการปรับใช้ทั้งระบบ
- ผูกการลงทะเบียนแต่ละรายการที่มี relay รองรับกับตัวตน Gateway ที่แอป iOS จับคู่ด้วย เพื่อให้ Gateway อื่นไม่สามารถใช้การลงทะเบียนที่จัดเก็บไว้ซ้ำได้
- คงบิลด์ iOS แบบ local/manual ไว้บน APNs โดยตรง การส่งที่มี relay รองรับจะใช้เฉพาะกับบิลด์ที่แจกจ่ายอย่างเป็นทางการซึ่งลงทะเบียนผ่าน relay เท่านั้น
- ต้องตรงกับ URL ฐานของ relay ที่ฝังอยู่ในบิลด์ iOS อย่างเป็นทางการ/TestFlight เพื่อให้ทราฟฟิกการลงทะเบียนและการส่งไปถึงการปรับใช้ relay เดียวกัน
- ติดตั้งบิลด์ iOS อย่างเป็นทางการ/TestFlight ที่คอมไพล์ด้วย URL ฐานของ relay เดียวกัน
- กำหนดค่า
gateway.push.apns.relay.baseUrlบน Gateway - จับคู่แอป iOS กับ Gateway และให้ทั้งเซสชัน node และ operator เชื่อมต่อ
- แอป iOS ดึงตัวตน Gateway, ลงทะเบียนกับ relay โดยใช้ App Attest พร้อมใบเสร็จของแอป แล้วเผยแพร่ payload
push.apns.registerที่มี relay รองรับไปยัง Gateway ที่จับคู่ไว้ - Gateway จัดเก็บ relay handle และสิทธิ์อนุญาตส่ง จากนั้นใช้สำหรับ
push.test, การสะกิดให้ตื่น และการปลุกเพื่อเชื่อมต่อใหม่
- หากคุณสลับแอป iOS ไปยัง Gateway อื่น ให้เชื่อมต่อแอปใหม่เพื่อให้แอปเผยแพร่การลงทะเบียน relay ใหม่ที่ผูกกับ Gateway นั้นได้
- หากคุณส่งบิลด์ iOS ใหม่ที่ชี้ไปยังการปรับใช้ relay อื่น แอปจะรีเฟรชการลงทะเบียน relay ที่แคชไว้แทนการใช้ต้นทาง relay เดิมซ้ำ
OPENCLAW_APNS_RELAY_BASE_URLและOPENCLAW_APNS_RELAY_TIMEOUT_MSยังใช้งานได้เป็นการ override ผ่าน env ชั่วคราวOPENCLAW_APNS_RELAY_ALLOW_HTTP=trueยังคงเป็นช่องทางหลบสำหรับการพัฒนาแบบ loopback เท่านั้น อย่าบันทึก URL relay แบบ HTTP ไว้ในการกำหนดค่า
Set up heartbeat (periodic check-ins)
Set up heartbeat (periodic check-ins)
every: สตริงระยะเวลา (30m,2h) ตั้งค่าเป็น0mเพื่อปิดใช้งานtarget:last|none|<channel-id>(ตัวอย่างเช่นdiscord,matrix,telegramหรือwhatsapp)directPolicy:allow(ค่าเริ่มต้น) หรือblockสำหรับเป้าหมาย Heartbeat แบบ DM- ดู Heartbeat สำหรับคู่มือฉบับเต็ม
Configure cron jobs
Configure cron jobs
sessionRetention: ล้างเซสชันการรันแบบแยกที่เสร็จแล้วออกจากsessions.json(ค่าเริ่มต้น24h; ตั้งค่าเป็นfalseเพื่อปิดใช้งาน)runLog: ล้างcron/runs/<jobId>.jsonlตามขนาดและจำนวนบรรทัดที่คงไว้- ดู งาน Cron สำหรับภาพรวมฟีเจอร์และตัวอย่าง CLI
Set up webhooks (hooks)
Set up webhooks (hooks)
- ถือว่าเนื้อหา payload ของ hook/webhook ทั้งหมดเป็นอินพุตที่ไม่น่าเชื่อถือ
- ใช้
hooks.tokenเฉพาะ อย่านำโทเค็น Gateway ที่ใช้ร่วมกันมาใช้ซ้ำ - การยืนยันตัวตนของ hook ใช้เฉพาะ header (
Authorization: Bearer ...หรือx-openclaw-token); โทเค็นใน query string จะถูกปฏิเสธ hooks.pathไม่สามารถเป็น/ได้ ให้เก็บทางเข้า webhook ไว้ใน subpath เฉพาะ เช่น/hooks- ปิดแฟล็กข้ามเนื้อหาที่ไม่ปลอดภัยไว้ (
hooks.gmail.allowUnsafeExternalContent,hooks.mappings[].allowUnsafeExternalContent) เว้นแต่จะดีบักในขอบเขตที่จำกัดอย่างเข้มงวด - หากคุณเปิดใช้
hooks.allowRequestSessionKeyให้ตั้งค่าhooks.allowedSessionKeyPrefixesด้วย เพื่อจำกัดคีย์เซสชันที่ผู้เรียกเลือกได้ - สำหรับเอเจนต์ที่ขับเคลื่อนด้วย hook ให้ใช้ tier โมเดลสมัยใหม่ที่แข็งแรงและนโยบายเครื่องมือที่เข้มงวดเป็นหลัก (เช่น อนุญาตเฉพาะการส่งข้อความ พร้อม sandboxing เมื่อเป็นไปได้)
Configure multi-agent routing
Configure multi-agent routing
Split config into multiple files ($include)
Split config into multiple files ($include)
$include เพื่อจัดระเบียบ config ขนาดใหญ่:- ไฟล์เดียว: แทนที่ object ที่ครอบอยู่
- อาร์เรย์ของไฟล์: deep-merge ตามลำดับ (รายการหลังชนะ)
- คีย์ข้างเคียง: merge หลัง includes (override ค่าที่ include มา)
- include ซ้อนกัน: รองรับได้ลึกสูงสุด 10 ระดับ
- พาธสัมพัทธ์: resolve โดยอิงจากไฟล์ที่ include
- การเขียนที่ OpenClaw เป็นเจ้าของ: เมื่อการเขียนเปลี่ยนเฉพาะส่วน top-level หนึ่งส่วน
ที่รองรับด้วย single-file include เช่น
plugins: { $include: "./plugins.json5" }, OpenClaw จะอัปเดตไฟล์ที่ include นั้น และปล่อยopenclaw.jsonไว้เหมือนเดิม - write-through ที่ไม่รองรับ: root includes, include arrays และ includes ที่มี sibling overrides จะ fail closed สำหรับการเขียนที่ OpenClaw เป็นเจ้าของ แทนที่จะ flatten config
- การจำกัดขอบเขต: พาธ
$includeต้อง resolve อยู่ภายใต้ไดเรกทอรีที่มีopenclaw.jsonหากต้องการแชร์ tree ระหว่างเครื่องหรือผู้ใช้ ให้ตั้งค่าOPENCLAW_INCLUDE_ROOTSเป็น path-list (:บน POSIX,;บน Windows) ของ ไดเรกทอรีเพิ่มเติมที่ includes อาจอ้างอิงได้ Symlink จะถูก resolve และตรวจสอบซ้ำ ดังนั้นพาธที่ตามตัวอักษรอยู่ใน config dir แต่ target จริง หลุดออกจาก root ที่อนุญาตทั้งหมดจะยังคงถูกปฏิเสธ - การจัดการข้อผิดพลาด: ข้อผิดพลาดที่ชัดเจนสำหรับไฟล์ที่หายไป ข้อผิดพลาดในการ parse และ circular includes
Config hot reload
Gateway เฝ้าดู~/.openclaw/openclaw.json และนำการเปลี่ยนแปลงไปใช้โดยอัตโนมัติ - การตั้งค่าส่วนใหญ่ไม่ต้อง restart ด้วยตนเอง
การแก้ไขไฟล์โดยตรงจะถือว่าไม่น่าเชื่อถือจนกว่าจะผ่านการตรวจสอบ watcher จะรอ
ให้การเขียนไฟล์ชั่วคราว/การ rename จาก editor สงบลง อ่านไฟล์สุดท้าย และปฏิเสธ
การแก้ไขภายนอกที่ไม่ถูกต้องโดยไม่เขียน openclaw.json ใหม่ การเขียน config
ที่ OpenClaw เป็นเจ้าของใช้ schema gate เดียวกันก่อนเขียน; การ clobber แบบทำลาย เช่น
การลบ gateway.mode หรือการลดขนาดไฟล์ลงมากกว่าครึ่ง จะถูกปฏิเสธและ
บันทึกเป็น .rejected.* เพื่อให้ตรวจสอบ
หากคุณเห็น config reload skipped (invalid config) หรือ startup รายงาน Invalid config ให้ตรวจสอบ config, เรียกใช้ openclaw config validate จากนั้นเรียกใช้ openclaw doctor --fix เพื่อซ่อมแซม ดู การแก้ไขปัญหา Gateway
สำหรับ checklist
โหมดการ reload
| โหมด | พฤติกรรม |
|---|---|
hybrid (ค่าเริ่มต้น) | hot-apply การเปลี่ยนแปลงที่ปลอดภัยทันที restart อัตโนมัติสำหรับการเปลี่ยนแปลงที่สำคัญ |
hot | hot-apply เฉพาะการเปลี่ยนแปลงที่ปลอดภัย บันทึกคำเตือนเมื่อจำเป็นต้อง restart - คุณจัดการเอง |
restart | restart Gateway เมื่อ config เปลี่ยนแปลงใด ๆ ไม่ว่าจะปลอดภัยหรือไม่ |
off | ปิดการเฝ้าดูไฟล์ การเปลี่ยนแปลงจะมีผลเมื่อ restart ด้วยตนเองครั้งถัดไป |
สิ่งที่ hot-apply ได้กับสิ่งที่ต้อง restart
ฟิลด์ส่วนใหญ่ hot-apply ได้โดยไม่มี downtime ในโหมดhybrid การเปลี่ยนแปลงที่ต้อง restart จะถูกจัดการโดยอัตโนมัติ
| หมวดหมู่ | ฟิลด์ | ต้อง restart หรือไม่ |
|---|---|---|
| ช่องทาง | channels.*, web (WhatsApp) - ช่องทาง built-in และ Plugin ทั้งหมด | ไม่ |
| เอเจนต์และโมเดล | agent, agents, models, routing | ไม่ |
| Automation | hooks, cron, agent.heartbeat | ไม่ |
| เซสชันและข้อความ | session, messages | ไม่ |
| เครื่องมือและสื่อ | tools, browser, skills, mcp, audio, talk | ไม่ |
| UI และอื่น ๆ | ui, logging, identity, bindings | ไม่ |
| เซิร์ฟเวอร์ Gateway | gateway.* (port, bind, auth, tailscale, TLS, HTTP) | ใช่ |
| โครงสร้างพื้นฐาน | discovery, plugins | ใช่ |
gateway.reload และ gateway.remote เป็นข้อยกเว้น - การเปลี่ยนค่าเหล่านี้จะ ไม่ ทริกเกอร์การรีสตาร์ทการวางแผนการโหลดซ้ำ
เมื่อคุณแก้ไขไฟล์ซอร์สที่ถูกอ้างอิงผ่าน$include OpenClaw จะวางแผน
การโหลดซ้ำจากเลย์เอาต์ที่เขียนไว้ในซอร์ส ไม่ใช่มุมมองในหน่วยความจำที่ถูกทำให้แบนแล้ว
วิธีนี้ทำให้การตัดสินใจโหลดซ้ำแบบทันที (นำไปใช้ทันทีเทียบกับรีสตาร์ท) คาดเดาได้
แม้เมื่อส่วนระดับบนสุดเพียงส่วนเดียวอยู่ในไฟล์ที่ include แยกต่างหาก เช่น
plugins: { $include: "./plugins.json5" } การวางแผนการโหลดซ้ำจะล้มเหลวแบบปิดหาก
เลย์เอาต์ซอร์สกำกวม
RPC การกำหนดค่า (การอัปเดตผ่านโปรแกรม)
สำหรับเครื่องมือที่เขียนการกำหนดค่าผ่าน Gateway API ให้ใช้โฟลว์นี้เป็นหลัก:config.schema.lookupเพื่อตรวจสอบซับทรีหนึ่งรายการ (โหนดสคีมาแบบตื้น + สรุปลูก)config.getเพื่อดึงสแนปช็อตปัจจุบันพร้อมhashconfig.patchสำหรับการอัปเดตบางส่วน (แพตช์ผสาน JSON: ออบเจ็กต์ผสานกัน,nullลบค่า, อาร์เรย์แทนที่ค่าเดิม)config.applyเฉพาะเมื่อคุณตั้งใจจะแทนที่การกำหนดค่าทั้งหมดupdate.runสำหรับการอัปเดตตัวเองพร้อมรีสตาร์ทแบบชัดเจน; ใส่continuationMessageเมื่อเซสชันหลังรีสตาร์ทควรรันเทิร์นติดตามผลหนึ่งครั้งupdate.statusเพื่อตรวจสอบตัวบ่งชี้การรีสตาร์ทของการอัปเดตล่าสุดและยืนยันเวอร์ชันที่กำลังรันหลังรีสตาร์ท
config.schema.lookup เป็นจุดเริ่มต้นแรกสำหรับเอกสารและข้อจำกัด
ระดับฟิลด์ที่แน่นอน ใช้ ข้อมูลอ้างอิงการกำหนดค่า
เมื่อต้องการแผนผังการกำหนดค่าที่กว้างขึ้น ค่าเริ่มต้น หรือลิงก์ไปยังข้อมูลอ้างอิง
ของระบบย่อยเฉพาะ
config.apply, config.patch, update.run) ถูก
จำกัดอัตราไว้ที่ 3 คำขอต่อ 60 วินาทีต่อ deviceId+clientIp คำขอรีสตาร์ท
จะถูกรวมเข้าด้วยกัน แล้วบังคับใช้คูลดาวน์ 30 วินาทีระหว่างรอบการรีสตาร์ท
update.status เป็นแบบอ่านอย่างเดียว แต่จำกัดขอบเขตไว้สำหรับผู้ดูแลระบบ เพราะตัวบ่งชี้การรีสตาร์ทสามารถ
รวมสรุปขั้นตอนการอัปเดตและส่วนท้ายของเอาต์พุตคำสั่งได้config.apply และ config.patch รับ raw, baseHash, sessionKey,
note และ restartDelayMs ต้องมี baseHash สำหรับทั้งสองเมธอดเมื่อ
มีการกำหนดค่าอยู่แล้ว
ตัวแปรสภาพแวดล้อม
OpenClaw อ่านตัวแปรสภาพแวดล้อมจากโปรเซสแม่ รวมถึง:.envจากไดเรกทอรีทำงานปัจจุบัน (ถ้ามี)~/.openclaw/.env(ค่าทดแทนส่วนกลาง)
การนำเข้าตัวแปรสภาพแวดล้อมของเชลล์ (ไม่บังคับ)
การนำเข้าตัวแปรสภาพแวดล้อมของเชลล์ (ไม่บังคับ)
OPENCLAW_LOAD_SHELL_ENV=1การแทนที่ตัวแปรสภาพแวดล้อมในค่าการกำหนดค่า
การแทนที่ตัวแปรสภาพแวดล้อมในค่าการกำหนดค่า
${VAR_NAME}:- จับคู่เฉพาะชื่อที่เป็นตัวพิมพ์ใหญ่:
[A-Z_][A-Z0-9_]* - ตัวแปรที่ขาดหรือว่างจะทำให้เกิดข้อผิดพลาดในเวลาโหลด
- escape ด้วย
$${VAR}สำหรับเอาต์พุตตามตัวอักษร - ทำงานภายในไฟล์
$include - การแทนที่แบบอินไลน์:
"${BASE}/v1"→"https://api.example.com/v1"
การอ้างอิงความลับ (env, file, exec)
การอ้างอิงความลับ (env, file, exec)
secrets.providers สำหรับ env/file/exec) อยู่ใน การจัดการความลับ
เส้นทางข้อมูลรับรองที่รองรับแสดงอยู่ใน พื้นผิวข้อมูลรับรอง SecretRefข้อมูลอ้างอิงฉบับเต็ม
สำหรับข้อมูลอ้างอิงแบบครบถ้วนแยกตามฟิลด์ โปรดดู ข้อมูลอ้างอิงการกำหนดค่าที่เกี่ยวข้อง: ตัวอย่างการกำหนดค่า · ข้อมูลอ้างอิงการกำหนดค่า · Doctor