CLI commands
Gateway
Gateway คือเซิร์ฟเวอร์ WebSocket ของ OpenClaw (ช่องทาง, Node, เซสชัน, ฮุก) คำสั่งย่อยทั้งหมดด้านล่างอยู่ภายใต้ openclaw gateway ...
การตั้งค่า mDNS ภายในเครือข่าย + DNS-SD บริเวณกว้าง
วิธีที่ OpenClaw ประกาศและค้นหา Gateway
คีย์การกำหนดค่า Gateway ระดับบนสุด
เรียกใช้ Gateway
openclaw gatewayopenclaw gateway run # รูปแบบชัดเจนที่ให้ผลเทียบเท่ากันลักษณะการทำงานเมื่อเริ่มต้น
- จะไม่ยอมเริ่มทำงาน เว้นแต่จะตั้งค่า
gateway.mode=localใน~/.openclaw/openclaw.jsonใช้--allow-unconfiguredสำหรับการเรียกใช้เฉพาะกิจ/การพัฒนา ซึ่งจะข้ามการตรวจสอบนี้โดยไม่เขียนหรือซ่อมแซมการกำหนดค่า - เมื่อพบการกำหนดค่าที่ไม่ถูกต้องแต่ซ่อมแซมได้ระหว่างการเริ่มต้น เทอร์มินัลแบบโต้ตอบจะเสนอให้เรียกใช้
openclaw doctor --fixและลองเริ่มต้นใหม่หนึ่งครั้งหลังได้รับความยินยอม การเรียกใช้แบบไม่โต้ตอบจะไม่ซ่อมแซมโดยอัตโนมัติ แต่จะแสดงคำสั่งแทน หากการกำหนดค่าหลังซ่อมแซมยังไม่ถูกต้อง การเริ่มต้นจะยังคงหยุดอยู่ openclaw onboard --mode localและopenclaw setupจะเขียนgateway.mode=localหากมีไฟล์การกำหนดค่าอยู่แต่ไม่มีgateway.modeระบบจะถือว่าการกำหนดค่าเสียหาย/ถูกเขียนทับ และ Gateway จะไม่คาดเดาlocalให้ โปรดเริ่มขั้นตอนเริ่มต้นใช้งานอีกครั้ง ตั้งค่าคีย์ด้วยตนเอง หรือส่ง--allow-unconfigured- ระบบจะบล็อกการผูกกับที่อยู่นอกเหนือจาก loopback หากไม่มีการยืนยันตัวตน
- ค่า
--bindได้แก่lan,tailnetและcustomปัจจุบันจะจำแนกผ่านเส้นทาง IPv4 เท่านั้น การตั้งค่าโฮสต์ของตนเองที่รองรับเฉพาะ IPv6 ต้องมี sidecar IPv4 หรือพร็อกซีอยู่ด้านหน้า Gateway SIGUSR1จะทริกเกอร์การเริ่มกระบวนการใหม่ภายในโปรเซสเมื่อได้รับอนุญาตcommands.restart(ค่าเริ่มต้น: เปิดใช้งาน) ควบคุมSIGUSR1ที่ส่งมาจากภายนอก ให้ตั้งเป็นfalseเพื่อบล็อกการเริ่มกระบวนการใหม่ด้วยสัญญาณ OS แบบกำหนดเอง เครื่องมือgatewayสำหรับเอเจนต์เป็นแบบอ่านอย่างเดียว เอเจนต์จะขอเริ่มกระบวนการใหม่ผ่านเครื่องมือมอบหมายopenclawที่มนุษย์อนุมัติSIGINT/SIGTERMจะหยุดโปรเซสแต่ไม่คืนค่าสถานะเทอร์มินัลแบบกำหนดเอง หากห่อหุ้ม CLI ด้วย TUI หรืออินพุตโหมด raw โปรดคืนค่าเทอร์มินัลด้วยตนเองก่อนออก
ตัวเลือก
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tcG9ydCA8cG9ydA
" type="number">
พอร์ต WebSocket (ค่าเริ่มต้นมาจากการกำหนดค่า/ตัวแปรสภาพแวดล้อม โดยทั่วไปคือ 18789)
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tYmluZCA8bW9kZQ
" type="string">
โหมดการผูก: loopback (ค่าเริ่มต้น), lan, tailnet, auto, custom
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tdG9rZW4gPHRva2Vu
" type="string">
โทเค็นร่วมสำหรับ connect.params.auth.token ค่าเริ่มต้นคือ OPENCLAW_GATEWAY_TOKEN เมื่อตั้งค่าไว้
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tYXV0aCA8bW9kZQ
" type="string">
โหมดการยืนยันตัวตน: none, token, password, trusted-proxy
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tcGFzc3dvcmQgPHBhc3N3b3Jk
" type="string">
รหัสผ่านสำหรับ --auth password
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tdGFpbHNjYWxlIDxtb2Rl
" type="string">
การเปิดให้เข้าถึงผ่าน Tailscale: off, serve, funnel
--tailscale-reset-on-exitbooleanรีเซ็ตการกำหนดค่า serve/funnel ของ Tailscale เมื่อปิดระบบ
--allow-unconfiguredbooleanเริ่มทำงานโดยไม่บังคับใช้ gateway.mode=local สำหรับการบูตสแตรปเฉพาะกิจ/การพัฒนาเท่านั้น โดยจะไม่บันทึกหรือซ่อมแซมการกำหนดค่า
--devbooleanสร้างการกำหนดค่าและพื้นที่ทำงานสำหรับการพัฒนาหากไม่มี (ข้าม BOOTSTRAP.md)
--dev-ambient-channelsbooleanอนุญาตให้ Gateway สำหรับการพัฒนากำหนดค่าช่องทางโดยอัตโนมัติจากตัวแปรสภาพแวดล้อมที่มีอยู่ ต้องใช้ --dev
--resetbooleanรีเซ็ตการกำหนดค่าสำหรับการพัฒนา ข้อมูลรับรอง เซสชัน และพื้นที่ทำงาน ต้องใช้ --dev
--forcebooleanยุติตัวรับฟังที่มีอยู่บนพอร์ตเป้าหมายก่อนเริ่มทำงาน ในเชลล์แบบไม่โต้ตอบ ระบบจะไม่ยอมยุติตัวรับฟัง Gateway ที่ยืนยันแล้ว ให้ใช้ --dev หรือ --profile แบบแยกส่วนที่มีพอร์ตว่างแทน
--verbosebooleanบันทึกล็อกแบบละเอียดไปยัง stdout/stderr
--cli-backend-logsbooleanแสดงเฉพาะล็อกแบ็กเอนด์ CLI ในคอนโซล (เปิดใช้งาน stdout/stderr ด้วย)
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0td3MtbG9nIDxzdHlsZQ
" type="string" default="auto">
รูปแบบล็อก WebSocket: auto, full, compact
--compactbooleanนามแฝงสำหรับ --ws-log compact
--raw-streambooleanบันทึกเหตุการณ์สตรีมโมเดลดิบลงใน JSONL
--claude-cli-logs เป็นนามแฝงที่เลิกใช้แล้วสำหรับ --cli-backend-logs
สำหรับ --bind custom ให้ตั้ง gateway.customBindHost เป็นที่อยู่ IPv4 ที่อยู่ใดก็ตามนอกเหนือจาก 127.0.0.1 หรือ 0.0.0.0 ต้องมี 127.0.0.1 บนพอร์ตเดียวกันสำหรับไคลเอนต์ในโฮสต์เดียวกันด้วย การเริ่มต้นจะล้มเหลวหากตัวรับฟังตัวใดตัวหนึ่งไม่สามารถผูกได้ ไวลด์การ์ด 0.0.0.0 จะไม่เพิ่มนามแฝงที่จำเป็นแยกต่างหาก การตั้งค่าโฮสต์ของตนเองที่รองรับเฉพาะ IPv6 ต้องมี sidecar IPv4 หรือพร็อกซีอยู่ด้านหน้า Gateway
เริ่ม Gateway ใหม่
openclaw gateway restartopenclaw gateway restart --safeopenclaw gateway restart --safe --skip-deferralopenclaw gateway restart --forceopenclaw gateway restart --wait 30s--safe จะขอให้ Gateway ที่กำลังทำงานตรวจสอบงานที่ใช้งานอยู่ล่วงหน้า และกำหนดการเริ่มใหม่แบบรวมหนึ่งครั้งหลังงานเหล่านั้นเสร็จสิ้น การรอจำกัดไว้ที่ 5 นาที เมื่อหมดเวลาที่กำหนด ระบบจะบังคับเริ่มใหม่ --safe ไม่สามารถใช้ร่วมกับ --force หรือ --wait
--skip-deferral จะข้ามเกตการเลื่อนเวลาตามงานที่ใช้งานอยู่สำหรับการเริ่มใหม่แบบปลอดภัย ทำให้ Gateway เริ่มใหม่ทันทีแม้มีรายงานตัวขัดขวาง ต้องใช้ร่วมกับ --safe โปรดใช้เมื่อการเลื่อนเวลาค้างอยู่กับงานที่ทำงานไม่หยุด
--wait <duration> จะแทนที่ช่วงเวลาที่อนุญาตให้ระบายงานสำหรับการเริ่มใหม่แบบธรรมดา (ไม่ใช่แบบปลอดภัย) รองรับค่ามิลลิวินาทีเปล่าหรือส่วนต่อท้ายหน่วย ms, s, m, h, d (เช่น 30s, 5m, 1h30m) ส่วน --wait 0 จะรอไม่มีกำหนด ใช้ร่วมกับ --force หรือ --safe ไม่ได้
--force จะข้ามการระบายงานที่ใช้งานอยู่และเริ่มใหม่ทันที restart แบบธรรมดา (ไม่มีแฟล็ก) จะคงลักษณะการเริ่มใหม่ของตัวจัดการบริการที่มีอยู่
ตัวควบคุมภายนอก
ตั้งค่า OPENCLAW_SUPERVISOR_MODE=external เฉพาะเมื่อมีตัวจัดการโปรเซสอื่นเป็นเจ้าของวงจรชีวิตของ Gateway ในโหมดนี้:
openclaw gateway restartจะคงลักษณะการทำงานแบบปลอดภัย แบบบังคับ และแบบรอตามเวลาที่กำหนดไว้ โดยกำหนดเป้าหมายไปยัง Gateway ที่กำลังทำงานและผ่านการยืนยัน แทน launchd, systemd หรือ Task Scheduler- ระบบจะปฏิเสธการติดตั้ง เริ่ม หยุด และถอนการติดตั้งบริการแบบเนทีฟ พร้อมแนะนำให้ใช้ตัวควบคุมภายนอก
- ระบบจะปฏิเสธการอัปเดตตัวเองของ OpenClaw เพื่อให้ตัวควบคุมสามารถหยุด Gateway แทนที่และจัดเตรียมรันไทม์ให้เสร็จสมบูรณ์ แล้วเริ่มใหม่ได้อย่างปลอดภัย
- การเริ่มใหม่ด้วยโปรเซสใหม่จะเขียนข้อมูลส่งต่อ SQLite ที่มีขอบเขตก่อนออกอย่างเรียบร้อย หากการบันทึกถาวรล้มเหลว Gateway จะย้อนกลับไปใช้การเริ่มใหม่ภายในโปรเซสแทนการออกโดยไม่มีข้อมูลส่งต่อที่นำไปใช้ได้
OPENCLAW_SERVICE_REPAIR_POLICY=external ยังคงเป็นนโยบายซ่อมแซมของ Doctor ที่แยกต่างหาก โดยไม่ได้ประกาศความเป็นเจ้าของรันไทม์ ตัวควบคุมที่ต้องการลักษณะการทำงานทั้งสองแบบควรตั้งค่าตัวแปรทั้งคู่
ตัวควบคุมภายนอกสามารถเจรจาและใช้ข้อมูลส่งต่อการเริ่มใหม่ผ่านสัญญาสำหรับเครื่องที่ซ่อนอยู่:
openclaw gateway restart-handoff capabilities --jsonopenclaw gateway restart-handoff consume --expected-pid <pid> --jsonโปรโตคอลเวอร์ชัน 1 รองรับการดำเนินการ consume การใช้ข้อมูลจะตรวจสอบ PID ที่คาดไว้และฟิลด์ข้อมูลส่งต่อที่มีขอบเขตภายในธุรกรรม SQLite แบบทันทีหนึ่งรายการ ข้อมูลส่งต่อที่ยอมรับแล้วจะถูกลบก่อนส่งคืนผลสำเร็จ ดังนั้นผู้ใช้ข้อมูลพร้อมกันหรือผู้ใช้ซ้ำจึงไม่สามารถยอมรับข้อมูลเดียวกันได้ทั้งคู่ ระบบจะเก็บข้อมูลที่ PID ไม่ตรงกันไว้ให้เจ้าของที่ตรงกัน ส่วนแถวที่ไม่มี หมดอายุ หรือไม่ถูกต้องจะไม่อนุญาตให้เริ่มใหม่
คำขอสำหรับเครื่องที่ถูกต้องจะส่งคืน JSON ด้วยรหัสออก 0 รวมถึงผลลัพธ์ที่ไม่ใช่การเริ่มใหม่ อาร์กิวเมนต์ที่ไม่ถูกต้องจะส่งคืน reason: "invalid-expected-pid" พร้อมรหัสออก 2 ส่วนความล้มเหลวของที่เก็บสถานะจะส่งคืน reason: "store-unavailable" พร้อมรหัสออก 1 ตัวควบคุมควรตรวจสอบ capabilities บนรันไทม์หรือตัวเรียกใช้ที่แน่นอนซึ่งจะใช้งาน แทนการอนุมานการรองรับจากสตริงเวอร์ชัน OpenClaw หรืออ่านสคีมา SQLite ส่วนตัวโดยตรง
การทำโปรไฟล์ Gateway
OPENCLAW_GATEWAY_STARTUP_TRACE=1จะบันทึกเวลาของแต่ละระยะระหว่างการเริ่มต้น รวมถึงความล่าช้าeventLoopMaxรายระยะและเวลาของตารางค้นหา Plugin (ดัชนีที่ติดตั้ง, รีจิสทรีไฟล์กำกับ, การวางแผนการเริ่มต้น, งานแผนผังเจ้าของ)OPENCLAW_GATEWAY_RESTART_TRACE=1จะบันทึกบรรทัดrestart trace:ที่มีขอบเขตเฉพาะการเริ่มใหม่ ได้แก่ การจัดการสัญญาณ การระบายงานที่ใช้งานอยู่ ระยะการปิดระบบ การเริ่มครั้งถัดไป เวลาที่พร้อมใช้งาน และเมตริกหน่วยความจำOPENCLAW_DIAGNOSTICS=timelineร่วมกับOPENCLAW_DIAGNOSTICS_TIMELINE_PATH=<path>จะเขียนไทม์ไลน์การวินิจฉัยการเริ่มต้นแบบ JSONL ด้วยความพยายามสูงสุดสำหรับชุดทดสอบ QA ภายนอก (เทียบเท่าการกำหนดค่าdiagnostics.flags: ["timeline"]แต่พาธยังคงกำหนดได้ผ่านตัวแปรสภาพแวดล้อมเท่านั้น) เพิ่มOPENCLAW_DIAGNOSTICS_EVENT_LOOP=1เพื่อรวมตัวอย่าง event looppnpm buildแล้วตามด้วยpnpm test:startup:gateway -- --runs 5 --warmup 1จะวัดประสิทธิภาพการเริ่มต้น Gateway เทียบกับจุดเข้า CLI ที่สร้างแล้ว ได้แก่ เอาต์พุตแรกของโปรเซส,/healthz,/readyz, เวลาการติดตามการเริ่มต้น, ความล่าช้าของ event loop และเวลาของตารางค้นหา Pluginpnpm buildแล้วตามด้วยpnpm test:restart:gateway -- --case skipChannels --runs 1 --restarts 5จะวัดประสิทธิภาพการเริ่มใหม่ภายในโปรเซสบน macOS หรือ Linux (ไม่รองรับบน Windows และการเริ่มใหม่ต้องใช้SIGUSR1) โดยใช้SIGUSR1เปิดใช้งานการติดตามทั้งสองแบบในโปรเซสลูก และบันทึก/healthzถัดไป,/readyzถัดไป, เวลาหยุดทำงาน, เวลาที่พร้อมใช้งาน, CPU, RSS และเมตริกการติดตามการเริ่มใหม่/healthzคือสถานะการทำงาน ส่วน/readyzคือความพร้อมใช้งานจริง ให้ถือว่าบรรทัดการติดตามและผลการวัดประสิทธิภาพเป็นสัญญาณระบุเจ้าของ ไม่ใช่ข้อสรุปด้านประสิทธิภาพที่สมบูรณ์จากช่วงหรือตัวอย่างเพียงหนึ่งรายการ
สอบถาม Gateway ที่กำลังทำงาน
คำสั่งสอบถามทั้งหมดใช้ WebSocket RPC
โหมดเอาต์พุต
- ค่าเริ่มต้น: อ่านได้โดยมนุษย์ (มีสีใน TTY)
--json: JSON ที่เครื่องอ่านได้ (ไม่มีการจัดรูปแบบ/ตัวหมุน)--no-color(หรือNO_COLOR=1): ปิดใช้งาน ANSI โดยคงเค้าโครงสำหรับมนุษย์ไว้
ตัวเลือกร่วม
--url <url>: URL WebSocket ของ Gateway--token <token>: โทเค็น Gateway--password <password>: รหัสผ่าน Gateway--timeout <ms>: เวลาหมดเวลา/งบเวลา (ค่าเริ่มต้นแตกต่างกันตามคำสั่ง โปรดดูแต่ละคำสั่งด้านล่าง)--expect-final: รอการตอบกลับ "สุดท้าย" (การเรียกของเอเจนต์)
gateway health
openclaw gateway health --url ws://127.0.0.1:18789openclaw gateway health --port 18789/healthz เป็นโพรบตรวจสอบความพร้อมทำงาน: จะตอบกลับทันทีที่เซิร์ฟเวอร์สามารถตอบ HTTP ได้ ส่วน /readyz เข้มงวดกว่าและยังคงแสดงสถานะสีแดงขณะที่ sidecar ของ plugin ช่องทาง หรือ hook ที่กำหนดค่าไว้ระหว่างการเริ่มต้นระบบยังปรับเข้าสู่ภาวะปกติไม่เสร็จ การตอบกลับ /readyz แบบละเอียดจากภายในเครื่องหรือที่ผ่านการยืนยันตัวตนจะมีบล็อกการวินิจฉัย eventLoop (ความล่าช้า การใช้งาน อัตราส่วนคอร์ CPU และแฟล็ก degraded)
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tcG9ydCA8cG9ydA
" type="number">
กำหนดเป้าหมายเป็น Gateway แบบลูปแบ็กภายในเครื่องบนพอร์ตนี้ แทนที่ OPENCLAW_GATEWAY_URL และ OPENCLAW_GATEWAY_PORT สำหรับการเรียกครั้งนี้
gateway usage-cost
ดึงข้อมูลสรุปค่าใช้จ่ายการใช้งานจากบันทึกเซสชัน
openclaw gateway usage-costopenclaw gateway usage-cost --days 7openclaw gateway usage-cost --agent work --jsonopenclaw gateway usage-cost --all-agentsopenclaw gateway usage-cost --json"--days"--agent--all-agentsbooleanรวมข้อมูลจากเอเจนต์ที่กำหนดค่าไว้ทั้งหมด ใช้ร่วมกับ --agent ไม่ได้
gateway stability
ดึงข้อมูลล่าสุดจากตัวบันทึกเสถียรภาพเพื่อการวินิจฉัยของ Gateway ที่กำลังทำงาน
openclaw gateway stabilityopenclaw gateway stability --type payload.largeopenclaw gateway stability --bundle latestopenclaw gateway stability --bundle latest --exportopenclaw gateway stability --jsonOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tbGltaXQgPGxpbWl0
" type="number" default="25">
จำนวนเหตุการณ์ล่าสุดสูงสุดที่จะรวม (สูงสุด 1000)
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tdHlwZSA8dHlwZQ
" type="string">
กรองตามประเภทเหตุการณ์วินิจฉัย เช่น payload.large หรือ diagnostic.memory.pressure
"--since-seq--bundle [path]stringอ่านบันเดิลเสถียรภาพที่บันทึกไว้อย่างถาวรแทนการเรียก Gateway ที่กำลังทำงาน --bundle latest (หรือระบุเพียง --bundle) จะเลือกบันเดิลใหม่ล่าสุดภายใต้ไดเรกทอรีสถานะ หรือจะส่งพาธ JSON ของบันเดิลโดยตรงก็ได้
--exportbooleanเขียนไฟล์ zip ข้อมูลวินิจฉัยสำหรับฝ่ายสนับสนุนที่แชร์ได้ แทนการแสดงรายละเอียดเสถียรภาพ
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tb3V0cHV0IDxwYXRo
" type="string">
พาธเอาต์พุตสำหรับ --export
ความเป็นส่วนตัวและลักษณะการทำงานของบันเดิล
- ระเบียนจะเก็บข้อมูลเมตาด้านการดำเนินงาน ได้แก่ ชื่อเหตุการณ์ จำนวน ขนาดไบต์ ค่าหน่วยความจำ สถานะคิว/เซสชัน ID การอนุมัติ ชื่อช่องทาง/plugin และข้อมูลสรุปเซสชันที่ปกปิดแล้ว โดยไม่รวมข้อความแชต เนื้อหา Webhook เอาต์พุตจากเครื่องมือ เนื้อหาคำขอ/การตอบกลับดิบ โทเค็น คุกกี้ ค่าความลับ ชื่อโฮสต์ และ ID เซสชันดิบ ตั้งค่า
diagnostics.enabled: falseเพื่อปิดใช้งานตัวบันทึกทั้งหมด - การออกจาก Gateway เนื่องจากข้อผิดพลาดร้ายแรง การหมดเวลาระหว่างปิดระบบ และความล้มเหลวในการเริ่มต้นหลังรีสตาร์ต จะเขียนสแนปช็อตการวินิจฉัยเดียวกันไปยัง
~/.openclaw/logs/stability/openclaw-stability-*.jsonเมื่อตัวบันทึกมีเหตุการณ์ ตรวจสอบบันเดิลใหม่ล่าสุดด้วยopenclaw gateway stability --bundle latest;--limit,--typeและ--since-seqใช้กับเอาต์พุตบันเดิลด้วย
gateway diagnostics export
เขียนไฟล์ zip ข้อมูลวินิจฉัยภายในเครื่องซึ่งออกแบบมาสำหรับรายงานข้อบกพร่อง สำหรับโมเดลความเป็นส่วนตัวและเนื้อหาบันเดิล โปรดดู การส่งออกข้อมูลวินิจฉัย
openclaw gateway diagnostics exportopenclaw gateway diagnostics export --output openclaw-diagnostics.zipopenclaw gateway diagnostics export --json"--log-lines"--log-bytes"--url"--token"--password"--timeout--no-stability-bundlebooleanข้ามการค้นหาบันเดิลเสถียรภาพที่บันทึกไว้อย่างถาวร
--jsonbooleanแสดงพาธที่เขียน ขนาด และรายการกำกับในรูปแบบ JSON
ไฟล์ส่งออกจะรวม: manifest.json (รายการไฟล์), summary.md (ข้อมูลสรุป Markdown), diagnostics.json (ข้อมูลสรุประดับบนสุดของการกำหนดค่า/บันทึก/การค้นพบ/เสถียรภาพ/สถานะ/สถานภาพ), config/sanitized.json, status/gateway-status.json, health/gateway-health.json, logs/openclaw-sanitized.jsonl และ stability/latest.json เมื่อมีบันเดิลอยู่
ไฟล์นี้ออกแบบมาเพื่อการแชร์ โดยเก็บรายละเอียดด้านการดำเนินงานที่เป็นประโยชน์ต่อการแก้ไขข้อบกพร่อง ได้แก่ ฟิลด์บันทึกที่ปลอดภัย ชื่อระบบย่อย รหัสสถานะ ระยะเวลา โหมดที่กำหนดค่าไว้ พอร์ต ID ของ plugin/ผู้ให้บริการ การตั้งค่าคุณสมบัติที่ไม่เป็นความลับ และข้อความบันทึกด้านการดำเนินงานที่ปกปิดแล้ว พร้อมทั้งละเว้นหรือปกปิดข้อความแชต เนื้อหา Webhook เอาต์พุตจากเครื่องมือ ข้อมูลประจำตัว คุกกี้ ตัวระบุบัญชี/ข้อความ ข้อความพรอมต์/คำสั่ง ชื่อโฮสต์ และค่าความลับ เมื่อข้อความบันทึกดูเหมือนเป็นข้อความเพย์โหลดจากผู้ใช้/แชต/เครื่องมือ (เช่น "ผู้ใช้กล่าวว่า", "ข้อความแชต", "เอาต์พุตจากเครื่องมือ", "เนื้อหา Webhook") ไฟล์ส่งออกจะเก็บไว้เพียงข้อเท็จจริงว่ามีการละเว้นข้อความ พร้อมจำนวนไบต์ของข้อความนั้น
gateway status
แสดงบริการ Gateway (launchd/systemd/schtasks) พร้อมโพรบการเชื่อมต่อ/การยืนยันตัวตนที่เลือกใช้ได้
openclaw gateway statusopenclaw gateway status --jsonopenclaw gateway status --require-rpc"--url"--token"--password"--timeout--no-probebooleanข้ามโพรบการเชื่อมต่อ (มุมมองเฉพาะบริการ)
--deepbooleanสแกนบริการระดับระบบด้วย
--require-rpcbooleanยกระดับโพรบการเชื่อมต่อเป็นโพรบการอ่าน และออกด้วยรหัสที่ไม่ใช่ศูนย์หากล้มเหลว ใช้ร่วมกับ --no-probe ไม่ได้
ความหมายของสถานะ
- ยังคงพร้อมใช้งานสำหรับการวินิจฉัย แม้ว่าการกำหนดค่า CLI ภายในเครื่องจะหายไปหรือไม่ถูกต้อง
- เอาต์พุตเริ่มต้นยืนยันสถานะบริการ การเชื่อมต่อ WebSocket และความสามารถในการยืนยันตัวตนที่มองเห็นได้ขณะจับมือเชื่อมต่อ ไม่ใช่การดำเนินการอ่าน/เขียน/ผู้ดูแลระบบ
- โพรบจะไม่เปลี่ยนแปลงข้อมูลสำหรับการยืนยันตัวตนอุปกรณ์ครั้งแรก โดยจะใช้โทเค็นอุปกรณ์ที่แคชไว้อยู่แล้วเมื่อมี แต่จะไม่สร้างข้อมูลประจำตัวอุปกรณ์ CLI ใหม่หรือระเบียนการจับคู่แบบอ่านอย่างเดียวเพียงเพื่อตรวจสอบสถานะ
- แก้ค่า SecretRef สำหรับการยืนยันตัวตนที่กำหนดค่าไว้เพื่อใช้ยืนยันตัวตนของโพรบเมื่อทำได้ หาก SecretRef ที่จำเป็นแก้ค่าไม่ได้
--jsonจะรายงานrpc.authWarningเมื่อการเชื่อมต่อ/การยืนยันตัวตนของโพรบล้มเหลว ให้ส่ง--token/--passwordอย่างชัดเจนหรือแก้ไขแหล่งข้อมูลความลับ คำเตือนการยืนยันตัวตนที่แก้ค่าไม่ได้จะถูกระงับเมื่อโพรบสำเร็จ - เอาต์พุต JSON จะมี
gateway.versionเมื่อ Gateway ที่กำลังทำงานรายงานค่านี้ โดย--require-rpcสามารถใช้เพย์โหลด RPC ของstatus.runtimeVersionเป็นทางเลือกได้ หากโพรบการจับมือเชื่อมต่อไม่สามารถให้ข้อมูลเมตาเวอร์ชัน - ใช้
--require-rpcในสคริปต์/ระบบอัตโนมัติ เมื่อบริการที่รับฟังอยู่เพียงอย่างเดียวยังไม่เพียงพอ และต้องการให้ RPC ขอบเขตการอ่านมีสถานภาพดีด้วย --deepจะสแกนหาการติดตั้ง launchd/systemd/schtasks เพิ่มเติม เมื่อพบบริการที่มีลักษณะคล้าย Gateway หลายรายการ เอาต์พุตสำหรับมนุษย์จะแสดงคำแนะนำการล้างข้อมูล (โดยทั่วไปให้เรียกใช้ Gateway หนึ่งรายการต่อเครื่อง) และรายงานการส่งมอบการรีสตาร์ตล่าสุดของตัวควบคุมเมื่อเกี่ยวข้อง--deepยังเรียกใช้การตรวจสอบความถูกต้องของการกำหนดค่าในโหมดที่รับรู้ plugin (pluginValidation: "full") และแสดงคำเตือนรายการกำกับของ plugin (เช่น ข้อมูลเมตาการกำหนดค่าช่องทางที่ขาดหายไป) ส่วนgateway statusเริ่มต้นจะคงเส้นทางอ่านอย่างเดียวที่รวดเร็วซึ่งข้ามการตรวจสอบ plugin- เอาต์พุตสำหรับมนุษย์จะแสดงพาธไฟล์บันทึกที่แก้ค่าแล้ว พร้อมพาธ/ความถูกต้องของการกำหนดค่าฝั่ง CLI เทียบกับบริการ เพื่อช่วยวินิจฉัยความคลาดเคลื่อนของโปรไฟล์หรือไดเรกทอรีสถานะ
- เอาต์พุตสำหรับมนุษย์จะมี
Gateway heap:พร้อมขีดจำกัดที่ใช้และวิธีคำนวณแบบปรับเปลี่ยนได้ ส่วนเอาต์พุต JSON จะแสดงรายงานเดียวกันเป็นservice.gatewayHeap
การตรวจสอบความคลาดเคลื่อนของการยืนยันตัวตนใน Linux systemd
- การตรวจสอบความคลาดเคลื่อนของการยืนยันตัวตนของบริการจะอ่านทั้ง
Environment=และEnvironmentFile=จากยูนิต (รวมถึง%hพาธที่อยู่ในเครื่องหมายอัญประกาศ ไฟล์หลายรายการ และไฟล์-ที่เลือกใช้ได้) - แก้ค่า SecretRef ของ
gateway.auth.tokenโดยใช้สภาพแวดล้อมรันไทม์ที่รวมกัน (สภาพแวดล้อมคำสั่งบริการก่อน แล้วจึงใช้สภาพแวดล้อมกระบวนการเป็นทางเลือก) - การตรวจสอบความคลาดเคลื่อนของโทเค็นจะข้ามการแก้ค่าโทเค็นจากการกำหนดค่า เมื่อการยืนยันตัวตนด้วยโทเค็นไม่ได้ทำงานจริง (
gateway.auth.modeถูกตั้งค่าอย่างชัดเจนเป็นpassword/none/trusted-proxyหรือไม่ได้ตั้งค่าโหมดในกรณีที่รหัสผ่านสามารถมีผลเหนือกว่าและไม่มีตัวเลือกโทเค็นใดมีผลเหนือกว่าได้)
gateway probe
คำสั่ง "ดีบักทุกอย่าง" โดยจะโพรบสิ่งต่อไปนี้เสมอ:
- Gateway รีโมตที่กำหนดค่าไว้ (หากตั้งค่าไว้) และ
- localhost (ลูปแบ็ก) แม้ว่าจะกำหนดค่ารีโมตไว้ก็ตาม
การส่ง --url จะเพิ่มเป้าหมายที่ระบุอย่างชัดเจนไว้ก่อนทั้งสองรายการ เอาต์พุตสำหรับมนุษย์จะติดป้ายเป้าหมายเป็น URL (explicit), Remote (configured) / Remote (configured, inactive) และ Local loopback
openclaw gateway probeopenclaw gateway probe --jsonopenclaw gateway probe --port 18789OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tcG9ydCA8cG9ydA
" type="number">
ใช้พอร์ตนี้สำหรับเป้าหมายโพรบลูปแบ็กภายในเครื่องและพอร์ตรีโมตของทันเนล SSH หากไม่มี --url ตัวเลือกนี้จะเลือกเฉพาะเป้าหมายลูปแบ็กภายในเครื่อง แทน URL สภาพแวดล้อมของ Gateway พอร์ตสภาพแวดล้อม หรือเป้าหมายรีโมตที่กำหนดค่าไว้
การตีความ
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หมายความว่า WebSocket เชื่อมต่อแล้ว แต่การวินิจฉัยการอ่านที่ตามมาหมดเวลาหรือล้มเหลว ซึ่งถือว่า ลดระดับ เช่นกัน ไม่ใช่ไม่สามารถเข้าถึงได้- เช่นเดียวกับ
gateway statusโพรบจะใช้การยืนยันตัวตนอุปกรณ์ที่แคชไว้อยู่แล้ว แต่ไม่สร้างข้อมูลประจำตัวอุปกรณ์หรือสถานะการจับคู่สำหรับครั้งแรก - รหัสออกจะไม่ใช่ศูนย์เฉพาะเมื่อไม่สามารถเข้าถึงเป้าหมายที่โพรบทั้งหมดได้
เอาต์พุต JSON
ระดับบนสุด:
ok: เข้าถึงเป้าหมายได้อย่างน้อยหนึ่งรายการdegraded: มีเป้าหมายอย่างน้อยหนึ่งรายการยอมรับการเชื่อมต่อ แต่ดำเนินการวินิจฉัย RPC แบบรายละเอียดทั้งหมดไม่เสร็จสมบูรณ์capability: ความสามารถที่ดีที่สุดที่พบในบรรดาเป้าหมายที่เข้าถึงได้ (read_only,write_capable,admin_capable,pairing_pending,connected_no_operator_scopeหรือunknown)primaryTargetId: เป้าหมายที่ดีที่สุดที่จะถือเป็นเป้าหมายหลักที่ใช้งานอยู่ โดยเรียงตามลำดับดังนี้: URL ที่ระบุไว้อย่างชัดเจน, ทันเนล SSH, รีโมตที่กำหนดค่าไว้, ลูปแบ็กภายในเครื่องwarnings[]: ระเบียนคำเตือนที่รวบรวมโดยพยายามให้ได้มากที่สุด พร้อมcode,messageและtargetIdsซึ่งเป็นตัวเลือกnetwork: คำแนะนำ URL สำหรับลูปแบ็กภายในเครื่อง/tailnet ที่ได้มาจากการกำหนดค่าปัจจุบันและเครือข่ายของโฮสต์discovery.timeoutMs/discovery.count: งบประมาณการค้นหา/จำนวนผลลัพธ์จริงที่ใช้สำหรับรอบการตรวจสอบนี้
ต่อเป้าหมาย (targets[].connect): ok (ความสามารถในการเข้าถึง + การจำแนกสถานะที่ลดระดับ), rpcOk (RPC แบบรายละเอียดทั้งหมดสำเร็จ), scopeLimited (RPC รายละเอียดล้มเหลวเนื่องจากไม่มีขอบเขตผู้ดำเนินการ)
ต่อเป้าหมาย (targets[].auth): รายงาน role และ scopes ใน hello-ok เมื่อมีข้อมูล พร้อมการจำแนก capability ที่แสดงออกมา
รหัสคำเตือนทั่วไป
ssh_tunnel_failed: การตั้งค่าทันเนล SSH ล้มเหลว คำสั่งจึงเปลี่ยนไปใช้การตรวจสอบโดยตรงmultiple_gateways: สามารถเข้าถึง Gateway ที่มีข้อมูลระบุตัวตนแตกต่างกัน หรือ OpenClaw ไม่สามารถพิสูจน์ได้ว่าเป้าหมายที่เข้าถึงได้นั้นเป็น Gateway เดียวกัน ทันเนล SSH, URL พร็อกซี หรือ URL รีโมตที่กำหนดค่าไว้ซึ่งชี้ไปยัง Gateway เดียวกันจะไม่ทำให้เกิดคำเตือนนี้auth_secretref_unresolved: ไม่สามารถแก้ไข SecretRef สำหรับการตรวจสอบสิทธิ์ที่กำหนดค่าไว้ของเป้าหมายที่ล้มเหลวprobe_scope_limited: เชื่อมต่อ WebSocket สำเร็จ แต่การตรวจสอบการอ่านถูกจำกัดเนื่องจากไม่มีoperator.readlocal_tls_runtime_unavailable: เปิดใช้งาน TLS ของ Gateway ภายในเครื่อง แต่ OpenClaw ไม่สามารถโหลดลายนิ้วมือใบรับรองภายในเครื่องได้
รีโมตผ่าน SSH (ทำงานเทียบเท่าแอป Mac)
โหมด "Remote over SSH" ของแอป macOS ใช้การส่งต่อพอร์ตภายในเครื่อง เพื่อให้สามารถเข้าถึง Gateway รีโมตที่รับการเชื่อมต่อเฉพาะลูปแบ็กได้ที่ ws://127.0.0.1:<port>
คำสั่ง CLI ที่เทียบเท่า:
openclaw gateway probe --ssh user@gateway-hostOPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tc3NoIDx0YXJnZXQ
" type="string">
user@host หรือ user@host:port (พอร์ตมีค่าเริ่มต้นเป็น 22)
--ssh-autobooleanเลือกโฮสต์ Gateway รายการแรกที่ค้นพบเป็นเป้าหมาย SSH จากเอนด์พอยต์การค้นหาที่แก้ไขแล้ว (local. รวมถึงโดเมนเครือข่ายบริเวณกว้างที่กำหนดค่าไว้ หากมี) ระบบจะไม่สนใจคำแนะนำที่มีเฉพาะ TXT
ค่าเริ่มต้นของการกำหนดค่า (ไม่บังคับ): gateway.remote.sshTarget, gateway.remote.sshIdentity
gateway call <method>
ตัวช่วย RPC ระดับล่าง
openclaw gateway call statusopenclaw gateway call logs.tail --params '{"limit": 200}'"--params"--url"--token"--password"--timeout--expect-finalbooleanใช้เป็นหลักสำหรับ RPC รูปแบบเอเจนต์ที่สตรีมเหตุการณ์ระหว่างทางก่อนเพย์โหลดสุดท้าย
--jsonbooleanเอาต์พุต JSON ที่เครื่องอ่านได้
จัดการบริการ Gateway
openclaw gateway installopenclaw gateway startopenclaw gateway stopopenclaw gateway restartopenclaw gateway uninstallติดตั้งด้วยแรปเปอร์
ใช้ --wrapper เมื่อบริการที่มีการจัดการต้องเริ่มต้นผ่านไฟล์ปฏิบัติการอื่น เช่น ชิมของตัวจัดการข้อมูลลับหรือตัวช่วยสำหรับเรียกใช้ในนามผู้ใช้อื่น แรปเปอร์จะรับอาร์กิวเมนต์ปกติของ Gateway และมีหน้าที่เรียกใช้ openclaw หรือ Node ด้วยอาร์กิวเมนต์เหล่านั้นในท้ายที่สุด
cat > ~/.local/bin/openclaw-doppler <<'EOF'#!/usr/bin/env bashset -euo pipefailexec doppler run --project my-project --config production -- openclaw "$@"EOFchmod +x ~/.local/bin/openclaw-doppler openclaw gateway install --wrapper ~/.local/bin/openclaw-doppler --forceopenclaw gateway restartนอกจากนี้ยังสามารถตั้งค่าแรปเปอร์ผ่านสภาพแวดล้อมได้ gateway install จะตรวจสอบว่าพาธดังกล่าวเป็นไฟล์ปฏิบัติการ เขียนแรปเปอร์ลงใน ProgramArguments ของบริการ และเก็บ OPENCLAW_WRAPPER ไว้ในสภาพแวดล้อมของบริการสำหรับการบังคับติดตั้งใหม่ การอัปเดต และการซ่อมแซมโดย doctor ในภายหลัง
OPENCLAW_WRAPPER="$HOME/.local/bin/openclaw-doppler" openclaw gateway install --forceopenclaw doctorหากต้องการนำ wrapper ที่บันทึกไว้ออก ให้ล้าง OPENCLAW_WRAPPER ขณะติดตั้งใหม่:
OPENCLAW_WRAPPER= openclaw gateway install --forceopenclaw gateway restartตัวเลือกคำสั่ง
gateway status:--url,--token,--password,--timeout,--no-probe,--require-rpc,--deep,--jsongateway install:--port,--runtime <node>(ค่าเริ่มต้น:node),--token,--wrapper <path>,--force,--jsongateway restart:--safe,--skip-deferral,--force,--wait <duration>,--jsongateway uninstall|start:--jsongateway stop:--disable,--force,--json
ลักษณะการทำงานของวงจรชีวิต
gateway startเป็นแบบ idempotent: เมื่อบริการที่มีการจัดการกำลังทำงานอยู่แล้ว ระบบจะรายงานกระบวนการที่กำลังทำงานและไม่แก้ไขใด ๆ ส่วนบริการที่โหลดไว้แต่หยุดทำงานอยู่จะเริ่มทำงานเช่นเดิม- ใช้
gateway restartเพื่อเริ่มบริการที่มีการจัดการใหม่ อย่าเรียกgateway stopต่อด้วยgateway startเพื่อใช้แทนการเริ่มใหม่ - ในเชลล์แบบไม่โต้ตอบ
gateway stopต้องใช้--forceส่วนเทอร์มินัลแบบโต้ตอบยังคงทำงานโดยไม่แสดงพรอมต์เช่นเดิม สำหรับระบบอัตโนมัติและการทดสอบ ควรใช้gateway run --devหรือ--profileที่แยกออกมาต่างหากพร้อมพอร์ตที่ว่าง - บน macOS โดยค่าเริ่มต้น
gateway stopจะใช้launchctl bootoutซึ่งนำ LaunchAgent ออกจากเซสชันการบูตปัจจุบันโดยไม่บันทึกสถานะปิดใช้งานไว้ การกู้คืนอัตโนมัติของ KeepAlive จึงยังคงทำงานสำหรับการขัดข้องในอนาคต และgateway startสามารถเปิดใช้งานอีกครั้งได้อย่างเรียบร้อยโดยไม่ต้องใช้launchctl enableด้วยตนเอง ส่ง--disableเพื่อระงับ KeepAlive และ RunAtLoad อย่างถาวร เพื่อไม่ให้ Gateway เริ่มทำงานอีกจนกว่าจะมีการเรียกgateway startอย่างชัดเจนครั้งถัดไป ใช้ตัวเลือกนี้เมื่อต้องการให้การหยุดด้วยตนเองยังคงมีผลหลังรีบูต - การเปลี่ยนแปลงวงจรชีวิตของ Gateway จะเพิ่มระเบียนการตรวจสอบแบบคีย์-ค่าตามความพยายามที่ดีที่สุดลงใน
<state-dir>/logs/gateway-restart.logซึ่งรวมถึงการเริ่ม หยุด และเริ่มใหม่ผ่าน CLI คำขอเริ่มใหม่อย่างปลอดภัย การเริ่มใหม่โดย supervisor และการส่งมอบงานแบบแยกกระบวนการ - คำสั่งวงจรชีวิตรองรับ
--jsonสำหรับการเขียนสคริปต์
การกำหนดขนาดฮีปของ Gateway ที่มีการจัดการ
gateway installเขียนค่าNODE_OPTIONSที่ใช้กับฮีปเท่านั้นสำหรับบริการ Gateway ที่มีการจัดการ โดยตั้งเป้าไว้ที่ 50% ของหน่วยความจำที่ถูกจำกัดเมื่อ Node รายงานขีดจำกัดของคอนเทนเนอร์หรือบริการ มิฉะนั้นจะใช้ 50% ของหน่วยความจำจริง- ช่วงเป้าหมายตามค่าปกติคือ 2048–8192 MiB พร้อมขีดจำกัดเพิ่มเติมที่สงวนพื้นที่สำหรับหน่วยความจำเนทีฟไว้ 75% บนโฮสต์ขนาดเล็ก ขีดจำกัดพื้นที่สำรองนี้อาจทำให้ขีดจำกัดที่นำไปใช้ต่ำกว่าค่าขั้นต่ำตามค่าปกติที่ 2048 MiB
- ค่า
--max-old-space-sizeที่ระบุไว้อย่างชัดเจนและถูกต้องซึ่งจัดเก็บอยู่ในบริการที่ติดตั้งแล้วจะถูกเก็บรักษาไว้ระหว่างการบังคับติดตั้งใหม่และการซ่อมแซมโดย doctor แฟล็กNODE_OPTIONSอื่น ๆ จะไม่ถูกนำไปใช้กับบริการที่มีการจัดการ - ค่า
NODE_OPTIONSจากสภาพแวดล้อมเชลล์จะไม่แทนที่นโยบายนี้ ใช้gateway statusหรือdoctorเพื่อตรวจสอบค่าที่ติดตั้งไว้ และเรียกopenclaw gateway install --forceเพื่อสร้างเมตาดาต้าบริการรุ่นเก่าที่ไม่มีการตั้งค่าฮีปที่มีการจัดการขึ้นใหม่ - นโยบายนี้ใช้เฉพาะกับบริการ Gateway ที่มีการจัดการเท่านั้น
gateway runที่ทำงานเบื้องหน้า บริการ Node และหน่วย supervisor ที่เขียนขึ้นเองจะยังคงใช้การกำหนดค่ารันไทม์ของตนเอง
การตรวจสอบสิทธิ์และ SecretRef ขณะติดตั้ง
- เมื่อการตรวจสอบสิทธิ์ด้วยโทเค็นต้องใช้โทเค็นและ
gateway.auth.tokenได้รับการจัดการด้วย SecretRef คำสั่งgateway installจะตรวจสอบว่าสามารถแก้ไข SecretRef ได้ แต่จะไม่บันทึกโทเค็นที่แก้ไขแล้วลงในเมตาดาต้าสภาพแวดล้อมของบริการ - หากการตรวจสอบสิทธิ์ด้วยโทเค็นต้องใช้โทเค็น แต่ไม่สามารถแก้ไข SecretRef ของโทเค็นที่กำหนดค่าไว้ได้ การติดตั้งจะล้มเหลวแบบปิดแทนที่จะบันทึกข้อความธรรมดาสำรอง
- สำหรับการตรวจสอบสิทธิ์ด้วยรหัสผ่านบน
gateway runควรใช้OPENCLAW_GATEWAY_PASSWORD,--password-fileหรือgateway.auth.passwordที่รองรับด้วย SecretRef แทน--passwordแบบอินไลน์ - ในโหมดตรวจสอบสิทธิ์ที่อนุมาน ค่า
OPENCLAW_GATEWAY_PASSWORDที่มีเฉพาะในเชลล์จะไม่ผ่อนปรนข้อกำหนดด้านโทเค็นในการติดตั้ง เมื่อติดตั้งบริการที่มีการจัดการ ให้ใช้การกำหนดค่าแบบถาวร (gateway.auth.passwordหรือenvในการกำหนดค่า) - หากกำหนดค่าทั้ง
gateway.auth.tokenและgateway.auth.passwordแต่ไม่ได้ตั้งค่าgateway.auth.modeการติดตั้งจะถูกระงับจนกว่าจะตั้งค่าโหมดอย่างชัดเจน
ค้นหา Gateway (Bonjour)
gateway discover จะสแกนหาบีคอนของ Gateway (_openclaw-gw._tcp)
- Multicast DNS-SD:
local. - Unicast DNS-SD (Bonjour แบบเครือข่ายบริเวณกว้าง): เลือกโดเมน (ตัวอย่าง:
openclaw.internal.) และตั้งค่า split DNS พร้อมเซิร์ฟเวอร์ DNS โปรดดู Bonjour
เฉพาะ Gateway ที่เปิดใช้งานการค้นหาผ่าน Bonjour (ค่าเริ่มต้น) เท่านั้นที่จะประกาศบีคอน
คำใบ้ TXT ในทุกบีคอน: role (คำใบ้บทบาทของ Gateway), transport (คำใบ้การรับส่งข้อมูล เช่น gateway), gatewayPort (พอร์ต WebSocket ซึ่งโดยทั่วไปคือ 18789), tailnetDns (ชื่อโฮสต์ MagicDNS เมื่อมี), gatewayTls / gatewayTlsSha256 (เปิดใช้งาน TLS และลายนิ้วมือใบรับรอง) ระบบจะเผยแพร่ sshPort และ cliPath เฉพาะในโหมดการค้นหาแบบเต็ม (discovery.mdns.mode: "full"; ค่าเริ่มต้นคือ "minimal" ซึ่งจะละเว้นค่าเหล่านี้ โดยไคลเอนต์จะใช้พอร์ต 22 เป็นค่าเริ่มต้นสำหรับเป้าหมาย SSH)
gateway discover
openclaw gateway discover"--timeout--jsonbooleanเอาต์พุตที่เครื่องอ่านได้ (และปิดใช้งานการจัดรูปแบบ/ตัวบ่งชี้การโหลดด้วย)
ตัวอย่าง:
openclaw gateway discover --timeout 4000openclaw gateway discover --json | jq '.beacons[].wsUrl'