The Gateway คือเซิร์ฟเวอร์ WebSocket ของ OpenClaw (แชนเนล, โหนด, เซสชัน, hooks) คำสั่งย่อยในหน้านี้อยู่ภายใต้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 gateway ….
Bonjour discovery
การตั้งค่า mDNS ภายในเครื่อง + DNS-SD แบบ wide-area
Discovery overview
วิธีที่ OpenClaw ประกาศและค้นหา gateways
Configuration
คีย์การกำหนดค่า Gateway ระดับบนสุด
เรียกใช้ Gateway
เรียกใช้โปรเซส Gateway ภายในเครื่อง:Startup behavior
Startup behavior
- โดยค่าเริ่มต้น Gateway จะปฏิเสธการเริ่มทำงาน เว้นแต่จะตั้งค่า
gateway.mode=localไว้ใน~/.openclaw/openclaw.jsonใช้--allow-unconfiguredสำหรับการเรียกใช้แบบเฉพาะกิจ/เพื่อพัฒนา - คาดว่า
openclaw onboard --mode localและopenclaw setupจะเขียนค่าgateway.mode=localหากไฟล์มีอยู่แต่ไม่มีgateway.modeให้ถือว่าเป็นการกำหนดค่าที่เสียหรือถูกเขียนทับ และซ่อมแซมแทนการถือว่าเป็นโหมด local โดยปริยาย - หากไฟล์มีอยู่และไม่มี
gateway.modeGateway จะถือว่าเป็นความเสียหายของการกำหนดค่าที่น่าสงสัย และจะปฏิเสธการ “เดา local” ให้คุณ - การ bind นอกเหนือจาก loopback โดยไม่มี auth จะถูกบล็อก (ราวกันตกด้านความปลอดภัย)
SIGUSR1จะทริกเกอร์การรีสตาร์ทภายในโปรเซสเมื่อได้รับอนุญาต (commands.restartเปิดใช้งานโดยค่าเริ่มต้น; ตั้งค่าcommands.restart: falseเพื่อบล็อกการรีสตาร์ทด้วยตนเอง ขณะที่ gateway tool/config apply/update ยังได้รับอนุญาต)- ตัวจัดการ
SIGINT/SIGTERMจะหยุดโปรเซส gateway แต่จะไม่กู้คืนสถานะเทอร์มินัลแบบกำหนดเองใดๆ หากคุณห่อ CLI ด้วย TUI หรืออินพุตแบบ raw-mode ให้กู้คืนเทอร์มินัลก่อนออก
ตัวเลือก
พอร์ต WebSocket (ค่าเริ่มต้นมาจาก config/env; โดยปกติคือ
18789)โหมด bind ของ listener
การ override โหมด Auth
การ override Token (ตั้งค่า
OPENCLAW_GATEWAY_TOKEN ให้โปรเซสด้วย)การ override Password
อ่านรหัสผ่าน gateway จากไฟล์
เปิดเผย Gateway ผ่าน Tailscale
รีเซ็ต config serve/funnel ของ Tailscale เมื่อปิดระบบ
อนุญาตให้ gateway เริ่มทำงานโดยไม่มี
gateway.mode=local ใน config ข้ามตัวป้องกันการเริ่มต้นสำหรับการ bootstrap แบบเฉพาะกิจ/เพื่อพัฒนาเท่านั้น; ไม่เขียนหรือซ่อมแซมไฟล์ configสร้าง config + workspace สำหรับพัฒนาหากไม่มีอยู่ (ข้าม BOOTSTRAP.md)
รีเซ็ต config สำหรับพัฒนา + credentials + sessions + workspace (ต้องใช้
--dev)ฆ่า listener ที่มีอยู่บนพอร์ตที่เลือกก่อนเริ่มทำงาน
บันทึกแบบละเอียด
แสดงเฉพาะบันทึก backend ของ CLI ในคอนโซล (และเปิดใช้ stdout/stderr)
รูปแบบบันทึก Websocket
นามแฝงสำหรับ
--ws-log compactบันทึกเหตุการณ์ raw model stream เป็น jsonl
พาธ jsonl ของ raw stream
รีสตาร์ท Gateway
openclaw gateway restart --safe จะขอให้ Gateway ที่กำลังทำงานอยู่ตรวจสอบงาน OpenClaw ที่ใช้งานอยู่ล่วงหน้าก่อนรีสตาร์ท หากมีการดำเนินการที่เข้าคิวอยู่, การส่งคำตอบ, embedded runs หรือ task runs ที่ยังใช้งานอยู่ Gateway จะรายงานตัวบล็อก รวมคำขอ safe restart ที่ซ้ำกัน และรีสตาร์ทเมื่อการทำงานที่ใช้งานอยู่ระบายหมดแล้ว restart แบบธรรมดาจะคงพฤติกรรม service-manager เดิมไว้เพื่อความเข้ากันได้ ใช้ --force เฉพาะเมื่อคุณต้องการเส้นทาง override ทันทีอย่างชัดเจนเท่านั้น
การทำโปรไฟล์การเริ่มต้น
- ตั้งค่า
OPENCLAW_GATEWAY_STARTUP_TRACE=1เพื่อบันทึกเวลาของแต่ละเฟสระหว่างการเริ่มต้น Gateway รวมถึงดีเลย์eventLoopMaxต่อเฟส และเวลาของตารางค้นหา Plugin สำหรับ installed-index, manifest registry, startup planning และงาน owner-map - ตั้งค่า
OPENCLAW_DIAGNOSTICS=timelineพร้อมOPENCLAW_DIAGNOSTICS_TIMELINE_PATH=<path>เพื่อเขียนไทม์ไลน์ diagnostics การเริ่มต้นแบบ JSONL ตามความพยายามสูงสุดสำหรับชุดทดสอบ QA ภายนอก คุณยังสามารถเปิดใช้แฟล็กด้วยdiagnostics.flags: ["timeline"]ใน config ได้; พาธยังคงต้องให้ผ่าน env เพิ่มOPENCLAW_DIAGNOSTICS_EVENT_LOOP=1เพื่อรวมตัวอย่าง event-loop - เรียกใช้
pnpm test:startup:gateway -- --runs 5 --warmup 1เพื่อ benchmark การเริ่มต้น Gateway benchmark จะบันทึกเอาต์พุตแรกของโปรเซส,/healthz,/readyz, เวลา startup trace, ดีเลย์ event-loop และรายละเอียดเวลาของตารางค้นหา Plugin
สอบถาม Gateway ที่กำลังทำงาน
คำสั่งสอบถามทั้งหมดใช้ WebSocket RPC- Output modes
- ค่าเริ่มต้น: อ่านได้สำหรับมนุษย์ (มีสีใน TTY)
--json: JSON ที่เครื่องอ่านได้ (ไม่มี styling/spinner)--no-color(หรือNO_COLOR=1): ปิดใช้งาน ANSI โดยยังคงเลย์เอาต์สำหรับมนุษย์ไว้
เมื่อคุณตั้งค่า
--url CLI จะไม่ fallback ไปยัง credentials จาก config หรือ environment ส่ง --token หรือ --password อย่างชัดเจน หากไม่มี credentials ที่ระบุอย่างชัดเจนจะเป็นข้อผิดพลาดgateway health
/healthz เป็น liveness probe: จะตอบกลับเมื่อเซิร์ฟเวอร์สามารถตอบ HTTP ได้ HTTP endpoint /readyz เข้มงวดกว่าและจะยังคงเป็นสีแดงระหว่างที่ startup plugin sidecars, channels หรือ hooks ที่กำหนดค่าไว้ยังคงกำลัง settle อยู่ การตอบกลับ readiness แบบละเอียดที่เป็น local หรือ authenticated จะรวมบล็อก diagnostic eventLoop ที่มีดีเลย์ event-loop, การใช้งาน event-loop, อัตราส่วน CPU core และแฟล็ก degraded
gateway usage-cost
ดึงสรุป usage-cost จากบันทึก session
จำนวนวันที่จะรวม
gateway stability
ดึงตัวบันทึก diagnostic stability ล่าสุดจาก Gateway ที่กำลังทำงาน
จำนวนเหตุการณ์ล่าสุดสูงสุดที่จะรวม (สูงสุด
1000)กรองตามชนิดเหตุการณ์ diagnostic เช่น
payload.large หรือ diagnostic.memory.pressureรวมเฉพาะเหตุการณ์หลังหมายเลขลำดับ diagnostic
อ่าน stability bundle ที่คงไว้แทนการเรียก Gateway ที่กำลังทำงาน ใช้
--bundle latest (หรือแค่ --bundle) สำหรับ bundle ใหม่ล่าสุดภายใต้ไดเรกทอรี state หรือส่งพาธ JSON ของ bundle โดยตรงเขียน zip diagnostics สำหรับ support ที่แชร์ได้แทนการพิมพ์รายละเอียด stability
พาธเอาต์พุตสำหรับ
--exportPrivacy and bundle behavior
Privacy and bundle behavior
- ระเบียนจะเก็บ metadata เชิงปฏิบัติการ: ชื่อเหตุการณ์, จำนวน, ขนาดไบต์, ค่าหน่วยความจำ, สถานะ queue/session, ชื่อ channel/plugin และสรุป session ที่ redacted แล้ว ระเบียนจะไม่เก็บข้อความแชต, body ของ webhook, เอาต์พุตของ tool, body ของคำขอหรือคำตอบดิบ, tokens, cookies, ค่าลับ, hostnames หรือ raw session ids ตั้งค่า
diagnostics.enabled: falseเพื่อปิดใช้งานตัวบันทึกทั้งหมด - เมื่อ Gateway ออกจากระบบแบบร้ายแรง, shutdown timeout และ restart startup failures OpenClaw จะเขียน snapshot diagnostic เดียวกันไปยัง
~/.openclaw/logs/stability/openclaw-stability-*.jsonเมื่อตัวบันทึกมีเหตุการณ์ ตรวจสอบ bundle ใหม่ล่าสุดด้วยopenclaw gateway stability --bundle latest;--limit,--typeและ--since-seqใช้กับเอาต์พุต bundle ด้วย
gateway diagnostics export
เขียน diagnostics zip ภายในเครื่องที่ออกแบบมาให้แนบกับรายงานบั๊ก สำหรับโมเดลความเป็นส่วนตัวและเนื้อหา bundle โปรดดู Diagnostics Export
พาธ zip เอาต์พุต ค่าเริ่มต้นเป็น support export ภายใต้ไดเรกทอรี state
จำนวนบรรทัดบันทึกที่ sanitized แล้วสูงสุดที่จะรวม
จำนวนไบต์บันทึกสูงสุดที่จะตรวจสอบ
URL WebSocket ของ Gateway สำหรับ health snapshot
token ของ Gateway สำหรับ health snapshot
รหัสผ่านของ Gateway สำหรับ health snapshot
timeout ของ status/health snapshot
ข้ามการค้นหา stability bundle ที่คงไว้
พิมพ์พาธที่เขียน, ขนาด และ manifest เป็น JSON
gateway status
gateway status แสดงบริการ Gateway (launchd/systemd/schtasks) พร้อมการ probe เพิ่มเติมของความสามารถด้าน connectivity/auth
เพิ่มเป้าหมายการตรวจสอบที่ระบุอย่างชัดเจน รีโมตที่กำหนดค่าไว้ + localhost จะยังถูกตรวจสอบด้วย
การยืนยันตัวตนด้วยโทเค็นสำหรับการตรวจสอบ
การยืนยันตัวตนด้วยรหัสผ่านสำหรับการตรวจสอบ
เวลาหมดอายุของการตรวจสอบ
ข้ามการตรวจสอบการเชื่อมต่อ (มุมมองเฉพาะบริการ)
สแกนบริการระดับระบบด้วย
ยกระดับการตรวจสอบการเชื่อมต่อเริ่มต้นเป็นการตรวจสอบการอ่าน และออกด้วยรหัสที่ไม่ใช่ศูนย์เมื่อการตรวจสอบการอ่านนั้นล้มเหลว ใช้ร่วมกับ
--no-probe ไม่ได้Status semantics
Status semantics
gateway statusยังคงพร้อมใช้งานสำหรับการวินิจฉัย แม้เมื่อการกำหนดค่า CLI ภายในเครื่องหายไปหรือไม่ถูกต้อง- ค่าเริ่มต้นของ
gateway statusพิสูจน์สถานะบริการ การเชื่อมต่อ WebSocket และความสามารถด้านการยืนยันตัวตนที่มองเห็นได้ในเวลาจับมือ ไม่ได้พิสูจน์การดำเนินการอ่าน/เขียน/ผู้ดูแลระบบ - การตรวจสอบวินิจฉัยจะไม่เปลี่ยนแปลงข้อมูลสำหรับการยืนยันตัวตนอุปกรณ์ครั้งแรก: จะใช้โทเค็นอุปกรณ์ที่แคชไว้เดิมเมื่อมีอยู่ แต่จะไม่สร้างตัวตนอุปกรณ์ CLI ใหม่หรือบันทึกการจับคู่อุปกรณ์แบบอ่านอย่างเดียวเพียงเพื่อเช็กสถานะ
gateway statusแก้ค่า SecretRefs สำหรับการยืนยันตัวตนที่กำหนดค่าไว้เพื่อใช้กับการยืนยันตัวตนของการตรวจสอบเมื่อทำได้- หาก SecretRef สำหรับการยืนยันตัวตนที่จำเป็นแก้ค่าไม่ได้ในเส้นทางคำสั่งนี้
gateway status --jsonจะรายงานrpc.authWarningเมื่อการเชื่อมต่อ/การยืนยันตัวตนของการตรวจสอบล้มเหลว ให้ส่ง--token/--passwordอย่างชัดเจน หรือแก้แหล่งที่มาของ secret ก่อน - หากการตรวจสอบสำเร็จ คำเตือน auth-ref ที่แก้ค่าไม่ได้จะถูกซ่อนเพื่อหลีกเลี่ยงผลบวกลวง
- ใช้
--require-rpcในสคริปต์และระบบอัตโนมัติเมื่อบริการที่กำลังฟังอยู่ยังไม่เพียงพอ และคุณต้องการให้การเรียก RPC ขอบเขตการอ่านทำงานสมบูรณ์ด้วย --deepเพิ่มการสแกนแบบพยายามเต็มที่สำหรับการติดตั้ง launchd/systemd/schtasks เพิ่มเติม เมื่อพบบริการลักษณะคล้าย Gateway หลายรายการ เอาต์พุตสำหรับมนุษย์จะพิมพ์คำแนะนำการล้างข้อมูลและเตือนว่าการตั้งค่าส่วนใหญ่ควรรัน Gateway หนึ่งรายการต่อเครื่อง- เอาต์พุตสำหรับมนุษย์รวมพาธไฟล์ล็อกที่แก้ค่าแล้ว พร้อมสแนปชอตพาธ/ความถูกต้องของการกำหนดค่า CLI เทียบกับบริการ เพื่อช่วยวินิจฉัยการเลื่อนของโปรไฟล์หรือ state-dir
Linux systemd auth-drift checks
Linux systemd auth-drift checks
- บนการติดตั้ง Linux systemd การตรวจสอบการเลื่อนของการยืนยันตัวตนบริการจะอ่านค่าทั้ง
Environment=และEnvironmentFile=จากยูนิต (รวมถึง%h, พาธที่ใส่เครื่องหมายคำพูด, หลายไฟล์ และไฟล์-แบบไม่บังคับ) - การตรวจสอบการเลื่อนจะแก้ค่า SecretRefs ของ
gateway.auth.tokenโดยใช้ env ขณะรันไทม์ที่รวมแล้ว (env ของคำสั่งบริการก่อน จากนั้นจึงใช้ process env เป็น fallback) - หากการยืนยันตัวตนด้วยโทเค็นไม่ได้มีผลใช้งานจริง (มี
gateway.auth.modeชัดเจนเป็นpassword/none/trusted-proxyหรือไม่ได้ตั้งค่า mode โดยที่รหัสผ่านอาจชนะและไม่มีตัวเลือกโทเค็นใดชนะได้) การตรวจสอบ token-drift จะข้ามการแก้ค่าโทเค็นจากการกำหนดค่า
gateway probe
gateway probe คือคำสั่ง “ดีบักทุกอย่าง” โดยจะตรวจสอบเสมอ:
- Gateway ระยะไกลที่คุณกำหนดค่าไว้ (หากตั้งค่าไว้) และ
- localhost (loopback) แม้จะกำหนดค่ารีโมตไว้แล้วก็ตาม
--url เป้าหมายที่ระบุอย่างชัดเจนนั้นจะถูกเพิ่มไว้ก่อนทั้งสองรายการ เอาต์พุตสำหรับมนุษย์จะติดป้ายเป้าหมายเป็น:
URL (explicit)Remote (configured)หรือRemote (configured, inactive)Local loopback
หากเข้าถึง Gateway ได้หลายรายการ ระบบจะพิมพ์ทั้งหมด Gateway หลายรายการรองรับเมื่อคุณใช้โปรไฟล์/พอร์ตที่แยกกัน (เช่น บอตกู้คืน) แต่การติดตั้งส่วนใหญ่ยังคงรัน Gateway เดียว
Interpretation
Interpretation
Reachable: yesหมายความว่าอย่างน้อยหนึ่งเป้าหมายยอมรับการเชื่อมต่อ WebSocketCapability: read-only|write-capable|admin-capable|pairing-pending|connect-onlyรายงานสิ่งที่การตรวจสอบพิสูจน์ได้เกี่ยวกับการยืนยันตัวตน โดยแยกจากความสามารถในการเข้าถึงRead probe: okหมายความว่าการเรียก RPC รายละเอียดขอบเขตการอ่าน (health/status/system-presence/config.get) สำเร็จด้วยRead probe: limited - missing scope: operator.readหมายความว่าเชื่อมต่อสำเร็จ แต่ RPC ขอบเขตการอ่านถูกจำกัด รายงานเป็นความสามารถในการเข้าถึงที่ เสื่อมคุณภาพ ไม่ใช่ความล้มเหลวเต็มรูปแบบRead probe: failedหลังConnect: okหมายความว่า Gateway ยอมรับการเชื่อมต่อ WebSocket แล้ว แต่การวินิจฉัยการอ่านที่ตามมาหมดเวลาหรือล้มเหลว รายการนี้เป็นความสามารถในการเข้าถึงที่ เสื่อมคุณภาพ เช่นกัน ไม่ใช่ Gateway ที่เข้าถึงไม่ได้- เช่นเดียวกับ
gateway statusการตรวจสอบจะใช้การยืนยันตัวตนอุปกรณ์ที่แคชไว้เดิม แต่จะไม่สร้างตัวตนอุปกรณ์ครั้งแรกหรือสถานะการจับคู่ - รหัสออกจะไม่ใช่ศูนย์ก็ต่อเมื่อไม่มีเป้าหมายที่ตรวจสอบแล้วใดเข้าถึงได้
JSON output
JSON output
ระดับบนสุด:
ok: อย่างน้อยหนึ่งเป้าหมายเข้าถึงได้degraded: อย่างน้อยหนึ่งเป้าหมายยอมรับการเชื่อมต่อ แต่ไม่ได้ทำการวินิจฉัย RPC รายละเอียดครบถ้วนcapability: ความสามารถที่ดีที่สุดที่พบในเป้าหมายที่เข้าถึงได้ (read_only,write_capable,admin_capable,pairing_pending,connected_no_operator_scopeหรือunknown)primaryTargetId: เป้าหมายที่ดีที่สุดให้ถือเป็นผู้ชนะที่ใช้งานอยู่ตามลำดับนี้: URL ที่ระบุชัดเจน, ทันเนล SSH, รีโมตที่กำหนดค่าไว้ จากนั้น local loopbackwarnings[]: บันทึกคำเตือนแบบพยายามเต็มที่ พร้อมcode,messageและtargetIdsแบบไม่บังคับnetwork: คำใบ้ URL ของ local loopback/tailnet ที่ได้มาจากการกำหนดค่าปัจจุบันและเครือข่ายของโฮสต์discovery.timeoutMsและdiscovery.count: งบประมาณ/จำนวนผลลัพธ์ discovery จริงที่ใช้สำหรับรอบการตรวจสอบนี้
targets[].connect):ok: ความสามารถในการเข้าถึงหลังการเชื่อมต่อ + การจัดประเภทที่เสื่อมคุณภาพrpcOk: RPC รายละเอียดครบถ้วนสำเร็จscopeLimited: RPC รายละเอียดล้มเหลวเนื่องจากขาดขอบเขต operator
targets[].auth):role: บทบาทการยืนยันตัวตนที่รายงานในhello-okเมื่อมีscopes: ขอบเขตที่ได้รับซึ่งรายงานในhello-okเมื่อมีcapability: การจัดประเภทความสามารถด้านการยืนยันตัวตนที่แสดงสำหรับเป้าหมายนั้น
Common warning codes
Common warning codes
ssh_tunnel_failed: การตั้งค่าทันเนล SSH ล้มเหลว คำสั่งจึง fallback ไปใช้การตรวจสอบโดยตรงmultiple_gateways: มีเป้าหมายมากกว่าหนึ่งรายการที่เข้าถึงได้ ซึ่งไม่ปกติ เว้นแต่คุณตั้งใจรันโปรไฟล์ที่แยกกัน เช่น บอตกู้คืนauth_secretref_unresolved: SecretRef สำหรับการยืนยันตัวตนที่กำหนดค่าไว้แก้ค่าไม่ได้สำหรับเป้าหมายที่ล้มเหลวprobe_scope_limited: การเชื่อมต่อ WebSocket สำเร็จ แต่การตรวจสอบการอ่านถูกจำกัดเพราะขาดoperator.read
ระยะไกลผ่าน SSH (เทียบเท่าแอป Mac)
โหมด “ระยะไกลผ่าน SSH” ของแอป macOS ใช้การส่งต่อพอร์ตภายในเครื่อง เพื่อให้ Gateway ระยะไกล (ซึ่งอาจผูกกับ loopback เท่านั้น) เข้าถึงได้ที่ws://127.0.0.1:<port>
คำสั่ง CLI ที่เทียบเท่า:
user@host หรือ user@host:port (พอร์ตมีค่าเริ่มต้นเป็น 22)ไฟล์ identity
เลือกโฮสต์ Gateway รายการแรกที่พบเป็นเป้าหมาย SSH จาก endpoint การค้นพบที่แก้ค่าแล้ว (
local. บวกโดเมน wide-area ที่กำหนดค่าไว้ หากมี) คำใบ้แบบ TXT เท่านั้นจะถูกละเว้นgateway.remote.sshTargetgateway.remote.sshIdentity
gateway call <method>
ตัวช่วย RPC ระดับต่ำ
สตริงออบเจ็กต์ JSON สำหรับ params
URL WebSocket ของ Gateway
โทเค็น Gateway
รหัสผ่าน Gateway
งบประมาณเวลาหมดอายุ
ใช้เป็นหลักสำหรับ RPC แบบ agent-style ที่สตรีมเหตุการณ์ระหว่างทางก่อน payload สุดท้าย
เอาต์พุต JSON ที่เครื่องอ่านได้
--params ต้องเป็น JSON ที่ถูกต้องจัดการบริการ Gateway
ติดตั้งด้วย wrapper
ใช้--wrapper เมื่อบริการที่จัดการไว้ต้องเริ่มผ่าน executable อื่น เช่น
shim ของตัวจัดการ secrets หรือตัวช่วย run-as wrapper จะได้รับ args ปกติของ Gateway และ
รับผิดชอบในการ exec openclaw หรือ Node พร้อม args เหล่านั้นในท้ายที่สุด
gateway install ตรวจสอบว่าพาธเป็น
ไฟล์ executable เขียน wrapper ลงใน ProgramArguments ของบริการ และคงค่า
OPENCLAW_WRAPPER ไว้ในสภาพแวดล้อมของบริการสำหรับการติดตั้งใหม่แบบบังคับ การอัปเดต และการซ่อมแซมโดย doctor ภายหลัง
OPENCLAW_WRAPPER ระหว่างติดตั้งใหม่:
Command options
Command options
gateway status:--url,--token,--password,--timeout,--no-probe,--require-rpc,--deep,--jsongateway install:--port,--runtime <node|bun>,--token,--wrapper <path>,--force,--jsongateway restart:--safe,--force,--wait <duration>,--jsongateway uninstall|start|stop:--json
Lifecycle behavior
Lifecycle behavior
- ใช้
gateway restartเพื่อรีสตาร์ตบริการที่จัดการไว้ อย่าต่อgateway stopและgateway startเข้าด้วยกันแทนการรีสตาร์ต บน macOSgateway stopตั้งใจปิดใช้งาน LaunchAgent ก่อนหยุด gateway restart --safeขอให้ Gateway ที่กำลังรันอยู่ตรวจสอบงาน OpenClaw ที่กำลังทำงานล่วงหน้า และเลื่อนการรีสตาร์ตจนกว่าการส่งคำตอบ embedded runs และ task runs จะระบายหมด--safeใช้ร่วมกับ--forceหรือ--waitไม่ได้gateway restart --wait 30sแทนที่งบประมาณการระบายเพื่อรีสตาร์ตที่กำหนดค่าไว้สำหรับการรีสตาร์ตครั้งนั้น ตัวเลขเปล่าคือมิลลิวินาที รองรับหน่วยอย่างs,mและh--wait 0จะรอไม่จำกัดเวลาgateway restart --forceข้ามการระบายงานที่กำลังทำงานอยู่และรีสตาร์ตทันที ใช้เมื่อตัวดำเนินการตรวจสอบตัวบล็อกงานที่แสดงไว้แล้วและต้องการให้ Gateway กลับมาเดี๋ยวนี้- คำสั่ง lifecycle รองรับ
--jsonสำหรับการเขียนสคริปต์
Auth และ SecretRefs ณ เวลาติดตั้ง
Auth และ SecretRefs ณ เวลาติดตั้ง
- เมื่อ Auth ด้วย token ต้องใช้ token และ
gateway.auth.tokenจัดการด้วย SecretRef,gateway installจะตรวจสอบว่า SecretRef สามารถ resolve ได้ แต่จะไม่บันทึก token ที่ resolve แล้วลงใน metadata ของ environment บริการ - หาก Auth ด้วย token ต้องใช้ token และ SecretRef ของ token ที่กำหนดค่าไว้ยัง resolve ไม่ได้ การติดตั้งจะล้มเหลวแบบปิด แทนที่จะบันทึก plaintext สำรอง
- สำหรับ Auth ด้วยรหัสผ่านบน
gateway runให้ใช้OPENCLAW_GATEWAY_PASSWORD,--password-file, หรือgateway.auth.passwordที่รองรับด้วย SecretRef แทน--passwordแบบ inline - ในโหมด Auth ที่อนุมานได้
OPENCLAW_GATEWAY_PASSWORDที่มีเฉพาะใน shell จะไม่ผ่อนปรนข้อกำหนด token สำหรับการติดตั้ง; ใช้ config แบบคงทน (gateway.auth.passwordหรือ configenv) เมื่อติดตั้งบริการที่มีการจัดการ - หากกำหนดค่าทั้ง
gateway.auth.tokenและgateway.auth.passwordแล้ว แต่ไม่ได้ตั้งค่าgateway.auth.modeการติดตั้งจะถูกบล็อกจนกว่าจะตั้งค่า mode อย่างชัดเจน
ค้นหา Gateway (Bonjour)
gateway discover สแกนหา beacon ของ Gateway (_openclaw-gw._tcp)
- Multicast DNS-SD:
local. - Unicast DNS-SD (Wide-Area Bonjour): เลือกโดเมน (ตัวอย่าง:
openclaw.internal.) และตั้งค่า split DNS + เซิร์ฟเวอร์ DNS; ดู Bonjour
role(คำใบ้ role ของ Gateway)transport(คำใบ้ transport เช่นgateway)gatewayPort(พอร์ต WebSocket โดยปกติคือ18789)sshPort(ไม่บังคับ; clients ใช้เป้าหมาย SSH เริ่มต้นเป็น22เมื่อไม่มีค่านี้)tailnetDns(ชื่อ host ของ MagicDNS เมื่อพร้อมใช้งาน)gatewayTls/gatewayTlsSha256(เปิดใช้ TLS + fingerprint ของ cert)cliPath(คำใบ้การติดตั้งระยะไกลที่เขียนลงใน zone แบบ wide-area)
gateway discover
timeout ต่อคำสั่ง (browse/resolve)
output ที่อ่านได้ด้วยเครื่อง (และปิด styling/spinner ด้วย)
- CLI สแกน
local.รวมถึงโดเมน wide-area ที่กำหนดค่าไว้เมื่อเปิดใช้อยู่ wsUrlใน output JSON ได้มาจาก endpoint ของบริการที่ resolve แล้ว ไม่ใช่จากคำใบ้แบบ TXT-only เช่นlanHostหรือtailnetDns- บน mDNS
local.,sshPortและcliPathจะ broadcast ก็ต่อเมื่อdiscovery.mdns.modeเป็นfullเท่านั้น DNS-SD แบบ Wide-area ยังคงเขียนcliPath;sshPortก็ยังเป็นตัวเลือกเช่นกัน