Get started
ผู้ควบคุม Claw
ตัวควบคุม Claw
เป้าหมาย
Claw Supervisor ช่วยให้อินสแตนซ์ OpenClaw ที่เปิดทำงานตลอดเวลาหนึ่งตัวสามารถตรวจสอบและขับเคลื่อนกลุ่มเซสชัน Codex ได้โดยไม่เปลี่ยนประสบการณ์ใช้งาน Codex ตามปกติ ผู้ใช้สามารถ SSH เข้าโฮสต์ เริ่ม Codex ทำงานใน TUI และยังให้ตัวควบคุมอ่านเซสชัน กำกับทิศทาง ขัดจังหวะ สร้างเซสชันที่เกี่ยวข้อง และรับการส่งต่องานได้ เซสชัน Codex ยังสามารถเรียกกลับเข้า OpenClaw ผ่าน MCP ได้ด้วย
โมเดลผลิตภัณฑ์
Codex ยังคงเป็นพื้นผิวการทำงานหลัก OpenClaw ควบคุมดูแล Codex แทนที่จะซ่อน Codex ไว้ภายในซับเอเจนต์ OpenClaw ที่ทึบแสง
Plugin ของ OpenClaw มีชื่อว่า codex-supervisor ส่วน crabfleet ยังคงเป็นโปรไฟล์การปรับใช้
และกลุ่มโฮสต์สำหรับเครื่อง CRAB แทนที่จะเป็นชื่อ Plugin ที่นำกลับมาใช้ซ้ำได้
โมเดลนี้มีสามบทบาท:
- Codex ที่ผูกกับมนุษย์: Codex TUI แบบโต้ตอบปกติที่เปิดผ่าน app-server ที่ใช้ร่วมกัน
- Codex อัตโนมัติ: เธรด app-server ของ Codex ที่ตัวควบคุมสร้างขึ้น และมนุษย์สามารถแนบเข้ามาภายหลังได้
- Claw ผู้ควบคุม: เอเจนต์ OpenClaw ที่เปิดทำงานตลอดเวลา พร้อมเครื่องมือสำหรับสถานะกลุ่มโฮสต์ การอ่านทรานสคริปต์ การกำกับทิศทาง การขัดจังหวะ การสร้างเซสชัน และการส่งต่องาน
OpenClaw อาจใช้กลไกซับเอเจนต์ที่มีอยู่ภายใน แต่สัญญาภายนอกคือเซสชัน Codex ที่แนบได้พร้อม id เธรด Codex
สถาปัตยกรรม
user SSH session -> codex --remote unix://... or ws://... -> local codex app-server daemon <-> host sidecar / supervisor connector <-> OpenClaw fleet supervisor <-> supervisor MCP exposed back to Codexแต่ละโฮสต์ที่รองรับ Codex จะรัน:
- เดมอน app-server ของ Codex
- ตัวเรียกใช้งานที่เริ่ม Codex แบบโต้ตอบด้วย
--remoteเสมอ - ตัวเชื่อมต่อที่ลงทะเบียน endpoint ของ app-server และเธรดที่ทำงานอยู่กับตัวควบคุม
ตัวควบคุมจะรัน:
- รีจิสทรี endpoint
- รีจิสทรีเซสชัน
- พูลไคลเอนต์ JSON-RPC ของ app-server Codex
- เซิร์ฟเวอร์ MCP สำหรับการเรียกจาก Codex ไปยัง Claw
- เครื่องมือ OpenClaw สำหรับการควบคุมจาก Claw ไปยัง Codex
- เอนจินนโยบายสำหรับการทำงานอัตโนมัติ การอนุมัติ และการป้องกันลูป
สัญญา App-Server ของ Codex
ใช้ API ของ app-server Codex เป็น control plane หลัก:
initialize,initializedthread/loaded/listthread/listthread/readthread/resumethread/startturn/startturn/steerturn/interruptmodel/list
ต้องเปิด Codex แบบโต้ตอบด้วย codex --remote <endpoint> เพื่อให้ TUI และตัวควบคุมเชื่อมต่อกับ app-server เดียวกัน codex exec แบบสแตนด์อโลนยังไม่ใช่เซสชันที่แชร์สดในวันนี้ ให้ใช้ API ของ app-server สำหรับงานอัตโนมัติจนกว่า Codex จะรองรับ exec --remote
รีจิสทรีเซสชัน
ตัวควบคุมจัดเก็บหนึ่งเรคคอร์ดต่อเธรด Codex ที่สังเกตเห็น:
{ "sessionId": "codex-thread-id", "endpointId": "host-a", "host": "host-a.example", "workspace": "/workspace/repo", "repo": "owner/repo", "branch": "feature/example", "source": "vscode", "status": "idle", "humanAttached": true, "lastSeenAt": "2026-05-28T10:00:00.000Z", "summary": "Short working-state summary"}การใช้งานภายในเครื่องสามารถอนุมานฟิลด์ส่วนใหญ่จากเมทาดาทาของเธรด Codex ได้ การปรับใช้แบบกลุ่มโฮสต์ควรเสริมเรคคอร์ดด้วยอัตลักษณ์โฮสต์ สถานะการแนบของผู้ใช้ สถานะ git และสุขภาพของ sidecar
พื้นผิว MCP สำหรับ Codex
Codex ทุกตัวที่อยู่ภายใต้การควบคุมจะได้เซิร์ฟเวอร์ MCP ชื่อ openclaw-codex-supervisor
เครื่องมือ:
codex_sessions_list: แสดงรายการเซสชัน Codex ที่มองเห็นได้codex_session_read: อ่านทรานสคริปต์หนึ่งรายการcodex_session_send: ส่งข้อความไปยังเธรดที่ว่าง หรือกำกับทิศทางเธรดที่กำลังทำงานcodex_session_interrupt: ขัดจังหวะ turn ที่กำลังทำงานcodex_endpoint_probe: ตรวจสอบการเชื่อมต่อ endpointclaw_report_progress: เผยแพร่สถานะงานปัจจุบันไปยังตัวควบคุมclaw_ask: ขอความช่วยเหลือหรือการมอบหมายงานจากตัวควบคุมcodex_spawn: สร้างเซสชัน Codex อัตโนมัติใหม่codex_handoff: ขอให้มนุษย์หรือเพียร์เข้ารับช่วงต่อ
ทรัพยากร:
codex://sessionscodex://sessions/{sessionId}codex://sessions/{sessionId}/transcript
พื้นผิวควบคุมของ Claw
Claw ที่เปิดทำงานตลอดเวลาจะได้รับ primitive เดียวกันกับเครื่องมือภายใน:
- แสดงรายการเซสชันและ endpoint
- อ่านทรานสคริปต์
- ส่ง/กำกับข้อความ
- ขัดจังหวะงานที่กำลังทำงาน
- สร้างเซสชันใหม่
- สรุปและมอบหมายเซสชัน
- กระจายคำสั่งไปยังกลุ่มที่กรองแล้ว
- ทำเครื่องหมายเซสชันว่า blocked, done หรือ abandoned
พฤติกรรมของเครื่องมือ:
- ถ้าเธรดเป้าหมายว่างอยู่
codex_session_sendจะแมปไปยังturn/start - ถ้าเธรดเป้าหมายกำลังทำงานและมองเห็น id ของ turn ที่กำลังดำเนินอยู่ จะแมปไปยัง
turn/steer - ถ้าไม่สามารถระบุ turn ที่กำลังทำงานได้ เครื่องมือจะปิดแบบปลอดภัยแทนที่จะสร้าง turn ที่ไม่เกี่ยวข้อง
- การควบคุมการเขียน MCP ที่เปิดให้ Codex ใช้จะยังคงปิดอยู่ เว้นแต่นโยบายที่เชื่อถือได้สำหรับตัวควบคุมเท่านั้นจะเปิดใช้
- การอ่านทรานสคริปต์ดิบจะยังคงปิดอยู่ เว้นแต่นโยบายที่เชื่อถือได้สำหรับตัวควบคุมเท่านั้นจะเปิดใช้
- ค่าเริ่มต้นการอนุมัติอัตโนมัติจะปฏิเสธการอนุมัติเครื่องมือ/ไฟล์ เว้นแต่นโยบายที่ชัดเจนจะระบุเป็นอย่างอื่น
ขั้นตอนการเปิดใช้งาน
การเข้าสู่ระบบโฮสต์แบบโต้ตอบ:
- ผู้ใช้ SSH เข้าโฮสต์ CRAB
- บริการ SSH เริ่มหรือยืนยัน
codex app-server daemon start - wrapper การเข้าสู่ระบบเปิด
codex --remote unix:// --cd <workspace> - ตัวเชื่อมต่อโฮสต์ลงทะเบียน endpoint และเธรดที่โหลดแล้ว
- ตัวควบคุมปล่อยเหตุการณ์กลุ่มโฮสต์ที่มีลำดับความสำคัญสูง: เซสชัน Codex ใหม่, workspace, สถานะที่ผูกกับมนุษย์, ตัวอย่างงานปัจจุบัน
- Claw ผู้ควบคุมสามารถอ่านและกำกับทิศทางได้ทันที
การสร้างแบบอัตโนมัติ:
- ตัวควบคุมเลือกโฮสต์และ workspace
- ตัวเชื่อมต่อโฮสต์เปิดหรือ resume เธรด app-server ของ Codex
- ตัวควบคุมเริ่ม turn แรกด้วยข้อความงานและการกำหนดค่า MCP
- รีจิสทรีเซสชันทำเครื่องหมายว่าเป็นอัตโนมัติและแนบได้
- มนุษย์สามารถแนบภายหลังด้วย
codex --remote <endpoint> resume <threadId>เมื่อ Codex รองรับ UX นั้นอย่างแน่นอน หรือผ่าน flow resume ปัจจุบันบน app-server เดียวกัน
การปรับใช้
control plane ที่แนะนำ:
- ตัวเชื่อมต่อโฮสต์คงการเชื่อมต่อ WebSocket ขาออกไปยังตัวควบคุม
- สถานะของตัวควบคุมอยู่ในพื้นที่จัดเก็บ OpenClaw Gateway
- app-server ของ Codex ยังคงอยู่ภายในแต่ละโฮสต์ อย่าเปิดเผย app-server ดิบที่ไม่มีการยืนยันตัวตนต่ออินเทอร์เน็ตสาธารณะ
ความเหมาะสมของ Cloudflare:
- เหมาะสำหรับรีจิสทรี, durable objects, WebSocket fan-in, การกำหนดเส้นทางเหตุการณ์น้ำหนักเบา และ endpoint MCP/gateway สาธารณะ
- ไม่เพียงพอด้วยตัวเองสำหรับการควบคุมโฮสต์ส่วนตัวโดยตรง เพราะ Workers ไม่สามารถ dial Unix socket ส่วนตัวตามอำเภอใจหรือ app-server แบบ local loopback ได้
- ใช้ Cloudflare เมื่อทุกตัวเชื่อมต่อโฮสต์โทรกลับบ้านผ่าน WebSocket ขาออก
ทางเลือก VPS:
- ใช้บริการ Hetzner เมื่อจำเป็นต้องมีการควบคุมโปรเซสที่มีอายุยาวนาน, SSH tunnel, การกำหนดเส้นทางเครือข่ายส่วนตัว หรือการเข้าถึงระบบไฟล์ภายในเครื่อง
- คงโปรโตคอลเดิมไว้: ตัวเชื่อมต่อโฮสต์ขาออก, รีจิสทรีตัวควบคุมแบบศูนย์กลาง, app-server ของ Codex อยู่ภายในเครื่อง
ความปลอดภัย
- ค่า bind เริ่มต้นคือ Unix socket ภายในเครื่อง
- app-server ระยะไกลใช้ token หรือ signed bearer auth
- ตัวเชื่อมต่อโฮสต์ยืนยันตัวตนกับตัวควบคุมด้วย token โฮสต์ที่จำกัดขอบเขต
- เครื่องมือตัวควบคุมบังคับใช้นโยบายต่อเซสชัน: อ่าน, กำกับทิศทาง, ขัดจังหวะ, สร้าง, อนุมัติ
- ข้อความข้ามเอเจนต์มี
originSessionId; self-echo จะถูกทิ้ง - การ broadcast ต้องมีตัวกรองที่ชัดเจนและจำนวนเป้าหมายที่มีขอบเขต
- การอ่านทรานสคริปต์จะปกปิดความลับที่ขอบเขต OpenClaw
- คำขออนุมัติมีค่าเริ่มต้นเป็นปฏิเสธสำหรับ turn ที่มาจากตัวควบคุม เว้นแต่นโยบายจะอนุญาต
แผนการใช้งาน
ระยะที่ 1: MVP ตัวควบคุมภายในเครื่อง
- เพิ่มไคลเอนต์ JSON-RPC ของ app-server Codex สำหรับ stdio proxy และ endpoint WebSocket
- เพิ่มรีจิสทรี endpoint/เซสชันของตัวควบคุม
- เพิ่มเครื่องมือ MCP: list, read, send, interrupt, probe
- เพิ่มการกำหนดค่า env ภายในเครื่องสำหรับ endpoint
- เพิ่มการทดสอบ app-server ปลอมและ smoke ของ app-server ภายในเครื่องจริงหนึ่งรายการ
ระยะที่ 2: การผสานรวม OpenClaw
- ลงทะเบียนเครื่องมือตัวควบคุมใน Plugin
codex-supervisor - ฉีด MCP ของตัวควบคุมเข้าในการกำหนดค่าเธรด Codex
- เพิ่มสรุปเซสชันเข้าในบริบทของเอเจนต์
- เพิ่มการแจ้งเตือนเหตุการณ์เมื่อเธรด Codex ใหม่ปรากฏ
- เพิ่มการกำหนดค่านโยบายสำหรับการส่ง/ขัดจังหวะ/สร้างแบบอัตโนมัติ
ระยะที่ 3: ตัวเชื่อมต่อกลุ่มโฮสต์
- sidecar โฮสต์ลงทะเบียน endpoint ของ app-server, เมทาดาทาโฮสต์, เมทาดาทา git/workspace และสถานะการแนบของมนุษย์
- เพิ่มตัวเชื่อมต่อ WebSocket ขาออกสำหรับ control plane ของ Cloudflare หรือ VPS
- เพิ่ม reconnect, heartbeat และการล้างเซสชันเก่า
- เพิ่ม wrapper ตัวเรียกใช้งาน SSH ของ CRAB
ระยะที่ 4: การทำงานอัตโนมัติ
- เพิ่ม flow spawn/resume/takeover
- เพิ่ม broadcast และการมอบหมายงาน
- เพิ่มรายงานความคืบหน้าและสรุปสถานะงาน
- เพิ่มการป้องกันลูปและ rate limit
- เพิ่มมุมมองแดชบอร์ด
ระยะที่ 5: Multi-Claw
- แบ่ง shard เซสชันตามกลุ่ม
- เพิ่ม leadership/lease สำหรับแต่ละเซสชัน
- เพิ่ม audit log และ replay
- เพิ่มการยกระดับระหว่างกลุ่ม Claw
การทดสอบการยอมรับ
- มนุษย์เปิด Codex TUI ผ่าน app-server ที่ใช้ร่วมกัน
- ตัวควบคุมแสดงรายการเธรดที่ทำงานอยู่ผ่าน
thread/loaded/list - ตัวควบคุมอ่านทรานสคริปต์ผ่าน
thread/read - ตัวควบคุมส่งข้อความไปยังเธรดที่ว่างผ่าน
turn/start - ตัวควบคุมกำกับทิศทางเธรดที่กำลังทำงานผ่าน
turn/steer - การขัดจังหวะของตัวควบคุมหยุด turn ที่กำลังทำงานผ่าน
turn/interrupt - Codex เรียก MCP ของตัวควบคุมและแสดงรายการเซสชันเพียร์
- Codex อัตโนมัติถูกสร้างและภายหลังถูกแนบโดยมนุษย์
- ตัวเชื่อมต่อโฮสต์ที่ขาดหายทำเครื่องหมายเซสชันว่าเก่าโดยไม่ลบประวัติ
คำถามเปิด
- UX การแนบ Codex TUI ที่แน่นอนสำหรับเธรด app-server ที่ถูกสร้างโดยไม่มี TUI
- Codex ควรเพิ่ม
exec --remoteสำหรับการรันแบบ headless ที่แชร์สดหรือไม่ - เจ้าของสถานะถาวร: DB ของ OpenClaw Gateway, Cloudflare Durable Object หรือฐานข้อมูล VPS
- ความละเอียดของนโยบายการอนุมัติสำหรับ turn ที่มาจากตัวควบคุม
- ควรฉีดสรุปทรานสคริปต์เข้าในบริบทของ Claw ที่เปิดทำงานตลอดเวลามากเพียงใด เทียบกับการเก็บไว้เป็นเครื่องมือ/ทรัพยากร