---
read_when:
    - การออกแบบการกำกับดูแลฟลีต Codex
    - การสร้างเครื่องมือ OpenClaw ที่อ่าน ควบคุม หรือสร้างเซสชัน Codex
    - การเลือกระหว่างการติดตั้งใช้งานแบบ local, Cloudflare และ VPS สำหรับ Codex แบบมีการกำกับดูแล
summary: แผนการกำกับดูแลฟลีตสำหรับเซสชัน app-server ของ Codex ที่ควบคุมโดย OpenClaw
title: ผู้ควบคุม Claw
x-i18n:
    generated_at: "2026-06-27T18:23:35Z"
    model: gpt-5.5
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: ecdd58730011c94796c6df1d757606aad7112d2f36f30921541ac7f5d46ad91f
    source_path: specs/claw-supervisor.md
    workflow: 16
---

# ตัวควบคุม 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

## สถาปัตยกรรม

```text
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`, `initialized`
- `thread/loaded/list`
- `thread/list`
- `thread/read`
- `thread/resume`
- `thread/start`
- `turn/start`
- `turn/steer`
- `turn/interrupt`
- `model/list`

ต้องเปิด Codex แบบโต้ตอบด้วย `codex --remote <endpoint>` เพื่อให้ TUI และตัวควบคุมเชื่อมต่อกับ app-server เดียวกัน `codex exec` แบบสแตนด์อโลนยังไม่ใช่เซสชันที่แชร์สดในวันนี้ ให้ใช้ API ของ app-server สำหรับงานอัตโนมัติจนกว่า Codex จะรองรับ `exec --remote`

## รีจิสทรีเซสชัน

ตัวควบคุมจัดเก็บหนึ่งเรคคอร์ดต่อเธรด Codex ที่สังเกตเห็น:

```json
{
  "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`: ตรวจสอบการเชื่อมต่อ endpoint
- `claw_report_progress`: เผยแพร่สถานะงานปัจจุบันไปยังตัวควบคุม
- `claw_ask`: ขอความช่วยเหลือหรือการมอบหมายงานจากตัวควบคุม
- `codex_spawn`: สร้างเซสชัน Codex อัตโนมัติใหม่
- `codex_handoff`: ขอให้มนุษย์หรือเพียร์เข้ารับช่วงต่อ

ทรัพยากร:

- `codex://sessions`
- `codex://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 ใช้จะยังคงปิดอยู่ เว้นแต่นโยบายที่เชื่อถือได้สำหรับตัวควบคุมเท่านั้นจะเปิดใช้
- การอ่านทรานสคริปต์ดิบจะยังคงปิดอยู่ เว้นแต่นโยบายที่เชื่อถือได้สำหรับตัวควบคุมเท่านั้นจะเปิดใช้
- ค่าเริ่มต้นการอนุมัติอัตโนมัติจะปฏิเสธการอนุมัติเครื่องมือ/ไฟล์ เว้นแต่นโยบายที่ชัดเจนจะระบุเป็นอย่างอื่น

## ขั้นตอนการเปิดใช้งาน

การเข้าสู่ระบบโฮสต์แบบโต้ตอบ:

1. ผู้ใช้ SSH เข้าโฮสต์ CRAB
2. บริการ SSH เริ่มหรือยืนยัน `codex app-server daemon start`
3. wrapper การเข้าสู่ระบบเปิด `codex --remote unix:// --cd <workspace>`
4. ตัวเชื่อมต่อโฮสต์ลงทะเบียน endpoint และเธรดที่โหลดแล้ว
5. ตัวควบคุมปล่อยเหตุการณ์กลุ่มโฮสต์ที่มีลำดับความสำคัญสูง: เซสชัน Codex ใหม่, workspace, สถานะที่ผูกกับมนุษย์, ตัวอย่างงานปัจจุบัน
6. Claw ผู้ควบคุมสามารถอ่านและกำกับทิศทางได้ทันที

การสร้างแบบอัตโนมัติ:

1. ตัวควบคุมเลือกโฮสต์และ workspace
2. ตัวเชื่อมต่อโฮสต์เปิดหรือ resume เธรด app-server ของ Codex
3. ตัวควบคุมเริ่ม turn แรกด้วยข้อความงานและการกำหนดค่า MCP
4. รีจิสทรีเซสชันทำเครื่องหมายว่าเป็นอัตโนมัติและแนบได้
5. มนุษย์สามารถแนบภายหลังด้วย `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 ที่เปิดทำงานตลอดเวลามากเพียงใด เทียบกับการเก็บไว้เป็นเครื่องมือ/ทรัพยากร
