ในหน้านี้
ในหน้านี้
CLI commands
การกำหนดค่า
ตัวช่วยแบบไม่โต้ตอบสำหรับ openclaw.json: รับ/ตั้งค่า/แพตช์/ยกเลิกการตั้งค่าค่าตามพาธ แสดงสคีมา ตรวจสอบความถูกต้อง หรือแสดงพาธไฟล์ที่ใช้งานอยู่ เรียกใช้ openclaw config โดยไม่มีคำสั่งย่อยเพื่อเปิดวิซาร์ดแบบมีคำแนะนำเดียวกับ openclaw configure
ตัวเลือกระดับราก
--section <section>stringตัวกรองส่วนของการตั้งค่าแบบมีคำแนะนำที่ระบุซ้ำได้ เมื่อเรียกใช้ openclaw config โดยไม่มีคำสั่งย่อย
ส่วนที่มีคำแนะนำ: workspace, model, web, gateway, daemon, channels, plugins, skills, health
ตัวอย่าง
พาธ
ใช้รูปแบบจุดหรือวงเล็บเหลี่ยม ให้ใส่เครื่องหมายคำพูดครอบพาธแบบวงเล็บเหลี่ยมในตัวอย่างเชลล์ เพื่อไม่ให้ zsh ขยาย glob ของ [0]:
config get
อ่านค่าจากสแนปช็อตการกำหนดค่าที่ปกปิดข้อมูลแล้ว (จะไม่แสดงข้อมูลลับ) --json จะแสดงค่าดิบเป็น JSON มิฉะนั้น สตริง/ตัวเลข/บูลีนจะแสดงโดยไม่มีการจัดรูปแบบ และออบเจ็กต์/อาร์เรย์จะแสดงเป็น JSON ที่จัดรูปแบบแล้ว
เมื่อไม่มีพาธดังกล่าว --json จะเขียน { "error": "Config path not found: <path>" } ไปยัง stdout และจบการทำงานด้วยสถานะ 1 หากไม่มี --json ข้อวินิจฉัยจะยังคงอยู่บน stderr
config file
แสดงพาธไฟล์การกำหนดค่าที่ใช้งานอยู่ ซึ่งแปลงค่าจาก OPENCLAW_CONFIG_PATH หรือตำแหน่งเริ่มต้น พาธนี้ระบุไฟล์ปกติ ไม่ใช่ลิงก์สัญลักษณ์ โปรดดู ความปลอดภัยในการเขียน
config schema
แสดงสคีมา JSON ที่สร้างขึ้นสำหรับ openclaw.json ไปยัง stdout
สิ่งที่รวมอยู่
- สคีมาการกำหนดค่าระดับรากปัจจุบัน พร้อมฟิลด์สตริง
$schemaระดับรากสำหรับเครื่องมือตัวแก้ไข - ข้อมูลเมตาเอกสารของฟิลด์
title/descriptionที่ Control UI ใช้ - โหนดออบเจ็กต์ซ้อน ไวลด์การ์ด (
*) และรายการอาร์เรย์ ([]) จะสืบทอดข้อมูลเมตาtitle/descriptionเดียวกัน เมื่อมีเอกสารฟิลด์ที่ตรงกัน - แขนง
anyOf/oneOf/allOfจะสืบทอดข้อมูลเมตาเอกสารเดียวกันด้วย - ข้อมูลเมตาสคีมาของ Plugin และช่องทางแบบสดตามความสามารถที่ทำได้ เมื่อสามารถโหลดไฟล์กำกับรันไทม์ได้
- สคีมาสำรองที่สมบูรณ์ แม้ว่าการกำหนดค่าปัจจุบันจะไม่ถูกต้อง
RPC รันไทม์ที่เกี่ยวข้อง
config.schema.lookup จะส่งคืนพาธการกำหนดค่าที่ปรับเป็นมาตรฐานแล้วหนึ่งพาธ พร้อมโหนดสคีมาแบบตื้น (title, description, type, enum, const, ขอบเขตทั่วไป) ข้อมูลเมตาคำแนะนำ UI ที่ตรงกัน และข้อมูลสรุปของโหนดย่อยระดับถัดไป ใช้สำหรับการเจาะดูข้อมูลเฉพาะพาธใน Control UI หรือไคลเอนต์ที่กำหนดเอง
config validate
ตรวจสอบความถูกต้องของการกำหนดค่าปัจจุบันเทียบกับสคีมาที่ใช้งานอยู่ โดยไม่เริ่ม Gateway
ค่า
ระบบจะแยกวิเคราะห์ค่าเป็น JSON5 เมื่อทำได้ มิฉะนั้นจะถือว่าเป็นสตริงดิบ ใช้ --strict-json เพื่อบังคับให้ใช้ JSON มาตรฐานโดยไม่มีการย้อนกลับไปใช้สตริง (จากนั้นไวยากรณ์ที่มีเฉพาะใน JSON5 เช่น ความคิดเห็น เครื่องหมายจุลภาคท้ายรายการ หรือคีย์ที่ไม่มีเครื่องหมายคำพูดจะถูกปฏิเสธ) --json เป็นนามแฝงแบบเดิมของ --strict-json บน config set
config get <path> --json จะแสดงค่าดิบเป็น JSON แทนข้อความที่จัดรูปแบบสำหรับเทอร์มินัล
เมื่อการเขียนเปลี่ยน agents.defaults.model หรือ agents.list[].model ของแต่ละเอเจนต์ OpenClaw จะแก้ไขค่าโมเดลหลักหรือโมเดลสำรองแต่ละรายการที่เปลี่ยนแปลงผ่านแค็ตตาล็อกผู้ให้บริการที่กำหนดค่าไว้ก่อนเขียน การอ้างอิงโมเดลที่ไม่รู้จักจะถูกปฏิเสธโดยไม่เปลี่ยนการกำหนดค่าที่ใช้งานอยู่ เรียกใช้ openclaw models list เพื่อดูโมเดลที่พร้อมใช้งาน
ใช้ --merge เมื่อเพิ่มรายการลงในแมปเหล่านั้น:
ใช้ --replace เฉพาะเมื่อต้องการให้ค่าที่ระบุกลายเป็นค่าเป้าหมายทั้งหมดโดยเจตนา
โหมด config set
โหมดค่า
โหมดตัวสร้าง SecretRef
โหมดตัวสร้างผู้ให้บริการ
กำหนดเป้าหมายได้เฉพาะพาธ secrets.providers.<alias>:
โหมดแบตช์
ไฟล์แบตช์จำกัดขนาดไว้ที่ 8 MiB
การแยกวิเคราะห์แบบแบตช์จะใช้เพย์โหลดแบตช์ (--batch-json/--batch-file) เป็นแหล่งข้อมูลจริงเสมอ --strict-json / --json จะไม่เปลี่ยนพฤติกรรมการแยกวิเคราะห์แบบแบตช์
โหมดพาธ/ค่า JSON ยังใช้กับ SecretRef และผู้ให้บริการโดยตรงได้ด้วย:
แฟล็กตัวสร้างผู้ให้บริการ
เป้าหมายของตัวสร้างผู้ให้บริการต้องใช้ secrets.providers.<alias> เป็นพาธ
แฟล็กทั่วไป
--provider-source <env|file|exec>--provider-timeout-ms <ms>(file,exec)
ผู้ให้บริการสภาพแวดล้อม (--provider-source env)
--provider-allowlist <ENV_VAR>(ระบุซ้ำได้)
ผู้ให้บริการไฟล์ (--provider-source file)
--provider-path <path>(จำเป็น)--provider-mode <singleValue|json>--provider-max-bytes <bytes>--provider-allow-insecure-path
ผู้ให้บริการการเรียกใช้คำสั่ง (--provider-source exec)
--provider-command <path>(จำเป็น)--provider-arg <arg>(ระบุซ้ำได้)--provider-no-output-timeout-ms <ms>--provider-max-output-bytes <bytes>--provider-json-only--provider-env <KEY=VALUE>(ระบุซ้ำได้)--provider-pass-env <ENV_VAR>(ระบุซ้ำได้)--provider-trusted-dir <path>(ระบุซ้ำได้)--provider-allow-insecure-path--provider-allow-symlink-command
ตัวอย่างผู้ให้บริการการเรียกใช้คำสั่งที่เสริมความปลอดภัย:
config patch
วางหรือส่งแพตช์ JSON5 ที่มีรูปทรงเหมือนการกำหนดค่าผ่านไปป์ แทนการเรียกใช้คำสั่ง config set แบบอิงพาธหลายครั้ง ออบเจ็กต์จะผสานแบบเวียนเกิด อาร์เรย์และค่าสเกลาร์จะแทนที่เป้าหมาย และ null จะลบพาธเป้าหมาย
ไฟล์แพตช์จำกัดขนาดไว้ที่ 8 MiB แพตช์ --stdin ที่ส่งผ่านไปป์จำกัดขนาดไว้ที่ 1 MiB
ส่งแพตช์ผ่าน stdin สำหรับสคริปต์ตั้งค่าระยะไกล:
ตัวอย่างแพตช์:
ใช้ --replace-path <path> เมื่อออบเจ็กต์หรืออาร์เรย์หนึ่งรายการต้องกลายเป็นค่าที่ระบุอย่างตรงตัว แทนที่จะถูกแพตช์แบบเวียนเกิด:
--dry-run จะเรียกใช้การตรวจสอบสคีมาและความสามารถในการแก้ค่า SecretRef โดยไม่เขียนข้อมูล SecretRef ที่ใช้ exec จะถูกข้ามโดยค่าเริ่มต้นระหว่างการทดลองทำงาน ให้เพิ่ม --allow-exec เมื่อคุณตั้งใจให้การทดลองทำงานเรียกใช้คำสั่งของผู้ให้บริการ
การทดลองทำงาน
--dry-run จะตรวจสอบความถูกต้องของการเปลี่ยนแปลงโดยไม่เขียน openclaw.json ใช้ได้กับ config set, config patch และ config unset
ลักษณะการทำงานของการทดลองทำงาน
- โหมดตัวสร้าง: เรียกใช้การตรวจสอบความสามารถในการแก้ค่า SecretRef สำหรับข้อมูลอ้างอิง/ผู้ให้บริการที่เปลี่ยนแปลง
- โหมด JSON (
--strict-json,--jsonหรือโหมดแบตช์): เรียกใช้การตรวจสอบสคีมาร่วมกับการตรวจสอบความสามารถในการแก้ค่า SecretRef - การตรวจสอบนโยบายจะดำเนินการกับการกำหนดค่าทั้งหมดหลังการเปลี่ยนแปลง ดังนั้นการเขียนออบเจ็กต์ระดับแม่ (เช่น การตั้งค่า
hooksเป็นออบเจ็กต์) จึงไม่สามารถข้ามการตรวจสอบพื้นผิวที่ไม่รองรับได้ - การตรวจสอบ SecretRef แบบ exec จะถูกข้ามโดยค่าเริ่มต้นเพื่อหลีกเลี่ยงผลข้างเคียงจากคำสั่ง ให้ส่ง
--allow-execเพื่อเลือกเปิดใช้ (การดำเนินการนี้อาจเรียกใช้คำสั่งของผู้ให้บริการ)--allow-execใช้ได้เฉพาะกับการทดลองทำงานและจะเกิดข้อผิดพลาดหากไม่มี--dry-run
ฟิลด์ของ --dry-run --json
ok: การทดลองทำงานผ่านหรือไม่operations: จำนวนการกำหนดค่าที่ประเมินchecks: มีการเรียกใช้การตรวจสอบสคีมา/ความสามารถในการแก้ค่าหรือไม่checks.resolvabilityComplete: การตรวจสอบความสามารถในการแก้ค่าดำเนินการจนเสร็จสมบูรณ์หรือไม่ (เป็น false เมื่อข้ามข้อมูลอ้างอิงแบบ exec)refsChecked: จำนวนข้อมูลอ้างอิงที่แก้ค่าจริงระหว่างการทดลองทำงานskippedExecRefs: จำนวนข้อมูลอ้างอิงแบบ exec ที่ข้ามเนื่องจากไม่ได้ตั้งค่า--allow-execerrors: ความล้มเหลวแบบมีโครงสร้างจากพาธที่ขาดหาย สคีมา หรือความสามารถในการแก้ค่า เมื่อok=false
รูปแบบเอาต์พุต JSON
ตัวอย่างที่สำเร็จ
ตัวอย่างที่ล้มเหลว
หากการทดลองทำงานล้มเหลว
config schema validation failed: รูปแบบการกำหนดค่าหลังการเปลี่ยนแปลงไม่ถูกต้อง ให้แก้ไขพาธ/ค่า หรือรูปแบบออบเจ็กต์ผู้ให้บริการ/ข้อมูลอ้างอิงConfig policy validation failed: unsupported SecretRef usage: ย้ายข้อมูลรับรองนั้นกลับไปเป็นอินพุตข้อความธรรมดา/สตริง และใช้ SecretRef เฉพาะบนพื้นผิวที่รองรับSecretRef assignment(s) could not be resolved: ขณะนี้ไม่สามารถแก้ค่าผู้ให้บริการ/ข้อมูลอ้างอิงที่อ้างถึงได้ (ตัวแปรสภาพแวดล้อมขาดหาย ตัวชี้ไฟล์ไม่ถูกต้อง ผู้ให้บริการ exec ล้มเหลว หรือผู้ให้บริการ/แหล่งที่มาไม่ตรงกัน)model reference validation failed: ไม่รู้จักโมเดลข้อความหลักหรือสำรองที่เปลี่ยนแปลง ให้เรียกใช้openclaw models listและเลือกโมเดลที่พร้อมใช้งานDry run note: skipped <n> exec SecretRef resolvability check(s): เรียกใช้อีกครั้งด้วย--allow-execหากต้องการตรวจสอบความสามารถในการแก้ค่าแบบ exec- สำหรับโหมดแบตช์ ให้แก้ไขรายการที่ล้มเหลวและเรียกใช้
--dry-runอีกครั้งก่อนเขียนข้อมูล
การนำการเปลี่ยนแปลงไปใช้
หลังจาก config set / config patch / config unset สำเร็จแต่ละครั้ง CLI จะแสดงคำแนะนำหนึ่งในสามแบบ เพื่อให้ทราบว่า Gateway จำเป็นต้องเริ่มใหม่หรือไม่:
| คำแนะนำ | ความหมาย |
|---|---|
Restart the gateway to apply. |
พาธที่เปลี่ยนแปลงจำเป็นต้องเริ่มระบบใหม่ทั้งหมด |
Change will apply without restarting the gateway. |
การโหลดใหม่แบบทันทีจะรับการเปลี่ยนแปลงโดยอัตโนมัติ |
No gateway restart needed. |
ไม่มีสิ่งที่เกี่ยวข้องกับรันไทม์เปลี่ยนแปลง |
การเขียนไปยัง plugins.entries (หรือพาธย่อยใดๆ) จำเป็นต้องเริ่มระบบใหม่เสมอ เนื่องจาก CLI ไม่สามารถยืนยันได้ว่าโหลดข้อมูลเมตาการโหลดใหม่ของ Plugin ทุกตัวแล้ว
ความปลอดภัยในการเขียน
openclaw config set และตัวเขียนการกำหนดค่าอื่นๆ ที่ OpenClaw เป็นเจ้าของจะตรวจสอบการกำหนดค่าทั้งหมดหลังการเปลี่ยนแปลงก่อนบันทึกลงดิสก์ หากเพย์โหลดใหม่ไม่ผ่านการตรวจสอบสคีมาหรือดูเหมือนเป็นการเขียนทับแบบทำลายข้อมูล การกำหนดค่าที่ใช้งานอยู่จะไม่ถูกแก้ไข และเพย์โหลดที่ถูกปฏิเสธจะถูกบันทึกไว้ข้างกันในชื่อ openclaw.json.rejected.*
การเขียนที่ OpenClaw เป็นเจ้าของจะแปลง JSON5 เป็น JSON มาตรฐานอีกครั้ง เมื่อแหล่งข้อมูลมีความคิดเห็น ตัวเขียนจะแจ้งเตือนทันทีก่อนนำความคิดเห็นออก หากจำเป็นต้องเก็บความคิดเห็นไว้ ให้ใช้โปรแกรมแก้ไขโดยตรง
ควรใช้การเขียนผ่าน CLI สำหรับการแก้ไขเล็กน้อย:
หากการเขียนถูกปฏิเสธ ให้ตรวจสอบเพย์โหลดที่บันทึกไว้และแก้ไขรูปแบบการกำหนดค่าทั้งหมด:
ยังคงสามารถเขียนด้วยโปรแกรมแก้ไขโดยตรงได้ แต่ Gateway ที่กำลังทำงานจะถือว่าการเขียนดังกล่าวไม่น่าเชื่อถือจนกว่าจะผ่านการตรวจสอบ การแก้ไขโดยตรงที่ไม่ถูกต้องจะทำให้การเริ่มต้นล้มเหลวหรือถูกข้ามระหว่างการโหลดใหม่แบบทันที โดย Gateway จะไม่เขียน openclaw.json ใหม่ เรียกใช้ openclaw doctor --fix เพื่อซ่อมแซมการกำหนดค่าที่มีคำนำหน้า/ถูกเขียนทับ หรือกู้คืนสำเนาล่าสุดที่ทราบว่าใช้งานได้ โปรดดู การแก้ไขปัญหา Gateway
การกู้คืนทั้งไฟล์สงวนไว้สำหรับการซ่อมแซมด้วย doctor การเปลี่ยนแปลงสคีมาของ Plugin หรือความคลาดเคลื่อนของ minHostVersion จะยังคงแสดงข้อผิดพลาดอย่างชัดเจนแทนที่จะย้อนกลับการตั้งค่าผู้ใช้ที่ไม่เกี่ยวข้อง เช่น การกำหนดค่าโมเดล ผู้ให้บริการ โปรไฟล์การยืนยันตัวตน ช่องทาง การเปิดเผย Gateway เครื่องมือ หน่วยความจำ เบราว์เซอร์ หรือ Cron
วงจรการซ่อมแซม
หลังจาก openclaw config validate ผ่านแล้ว ให้ใช้ TUI ภายในเครื่องเพื่อให้เอเจนต์แบบฝังเปรียบเทียบการกำหนดค่าที่ใช้งานอยู่กับเอกสาร ขณะที่คุณตรวจสอบการเปลี่ยนแปลงแต่ละรายการจากเทอร์มินัลเดียวกัน:
ภายใน TUI เครื่องหมาย ! ที่อยู่ด้านหน้าจะเรียกใช้คำสั่งเชลล์ภายในเครื่องตามตัวอักษร (หลังจากมีพรอมต์ยืนยันหนึ่งครั้งต่อเซสชัน):
เปรียบเทียบกับเอกสาร
ขอให้เอเจนต์เปรียบเทียบการกำหนดค่าปัจจุบันกับหน้าเอกสารที่เกี่ยวข้องและเสนอการแก้ไขที่เล็กที่สุด
ใช้การแก้ไขแบบเจาะจง
ใช้การแก้ไขแบบเจาะจงด้วย openclaw config set หรือ openclaw configure
ตรวจสอบอีกครั้ง
เรียกใช้ openclaw config validate อีกครั้งหลังการเปลี่ยนแปลงแต่ละครั้ง
ใช้ Doctor สำหรับปัญหารันไทม์
หากการตรวจสอบผ่านแต่รันไทม์ยังทำงานผิดปกติ ให้เรียกใช้ openclaw doctor หรือ openclaw doctor --fix เพื่อรับความช่วยเหลือด้านการย้ายข้อมูลและการซ่อมแซม