---
read_when:
    - คุณต้องการให้เซสชัน Codex Desktop หรือ CLI ปรากฏใน OpenClaw
    - คุณต้องสร้างสาขาจากเซสชัน Codex ภายในเครื่องที่จัดเก็บไว้หรือไม่มีการใช้งาน หรือเก็บเซสชันนั้นเข้าคลังถาวร
    - คุณกำลังเปิดเผยเซสชัน Codex และประวัติทรานสคริปต์จาก Node ที่จับคู่ไว้
sidebarTitle: Codex supervision
summary: เรียกดูเซสชัน Codex แบบเนทีฟที่ไม่ได้เก็บถาวรและบทถอดความแบบแบ่งหน้าใน Node ของ OpenClaw หลายรายการ
title: กำกับดูแลเซสชัน Codex
x-i18n:
    generated_at: "2026-07-19T07:22:02Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 32
    provider: openai
    source_hash: f365e3207dff092c3dfd8f7588d60d70a16f0cce484991eb4ab3fc0bd15f8051
    source_path: plugins/codex-supervision.md
    workflow: 16
---

การกำกับดูแล Codex เป็นความสามารถแบบเลือกใช้ของ Plugin `codex` อย่างเป็นทางการ โดยจะแสดงเซสชันต้นทางที่ไม่ถูกเก็บถาวรจาก Codex CLI, VS Code, Atlas และ ChatGPT ของคอมพิวเตอร์ Gateway และคอมพิวเตอร์ที่จับคู่ซึ่งเลือกใช้ความสามารถนี้ ในแถบด้านข้างของเซสชันและบานหน้าต่างแชทตามปกติ

รุ่นแรกตั้งใจจำกัดขอบเขตความเป็นเจ้าของไว้ดังนี้:

- เซสชันภายในเครื่องที่จัดเก็บไว้หรือไม่ได้ใช้งานสามารถสร้างแชท OpenClaw ที่ล็อกโมเดลจากประวัติผู้ใช้และผู้ช่วยที่คงอยู่ถาวรภายในขอบเขตได้ ข้อความแรกจะเริ่มการแยกสแนปช็อตแบบเนทีฟ จากนั้นเริ่มเธรดชุดควบคุม Codex แบบเต็มด้วยโมเดลและผู้ให้บริการที่ Codex App Server เลือกไว้สำหรับการแยกนั้นอย่างตรงกันทุกประการ เทิร์นถัดไปจะกู้คืนคู่ค่าที่คงอยู่ถาวรของเธรดเนทีฟมาตรฐาน ขณะที่การเชื่อมโยงภายใต้การกำกับดูแลจะป้องกันไม่ให้ OpenClaw แทนที่ด้วยรันไทม์ โมเดล หรือทางเลือกสำรองอื่น ส่วนการควบคุม Codex แบบเนทีฟที่แยกต่างหากยังคงเปลี่ยนคู่ค่าที่คงอยู่ถาวรนั้นได้ สาขาที่สร้างไว้แล้วจะเปิดแชทเดิมของสาขานั้น
- เซสชันที่จัดเก็บไว้ซึ่งค้นพบจากกระบวนการ Codex อื่นจะมีสถานะกิจกรรมสดที่ไม่ทราบแน่ชัด สามารถสร้างสาขาจากเซสชันนั้นได้ หรือจะเก็บถาวรได้ก็ต่อเมื่อผู้ดำเนินการยืนยันว่าไม่มีไคลเอนต์ Codex อื่นกำลังใช้งานอยู่
- ต้นทางที่กำลังทำงานจะยังคงมองเห็นได้ แต่ไม่สามารถสร้างสาขาหรือเก็บถาวรได้จนกว่าเทิร์นปัจจุบันจะเสร็จสิ้น หากมีแชทภายใต้การกำกับดูแลอยู่แล้ว **เปิดแชท** จะยังคงใช้งานได้
- เซสชันบน Node ที่จับคู่จะเปิดเผยทรานสคริปต์ที่คงอยู่ถาวรผ่านการอ่านจาก App Server ที่จำกัดขอบเขตและแบ่งหน้าโดยใช้เคอร์เซอร์ การดำเนินการต่อจากระยะไกลต้องใช้บริดจ์ Node แบบสตรีมมิงในอนาคต ส่วนการเก็บถาวรจากระยะไกลยังต้องใช้ลีสความเป็นเจ้าของรันเนอร์หรือกลไกกั้นที่เทียบเท่า
- เซสชันที่เก็บถาวรแล้วจะไม่แสดงในรายการ เซสชันภายในเครื่องที่จัดเก็บไว้หรือไม่ได้ใช้งานจะเก็บถาวรได้ก็ต่อเมื่อผู้ดำเนินการยืนยันว่าไม่มีไคลเอนต์ Codex อื่นกำลังใช้งานอยู่

## ก่อนเริ่มต้น

- ติดตั้ง Plugin `@openclaw/codex` อย่างเป็นทางการบน Gateway แอป OpenClaw สำหรับ macOS สามารถติดตั้งให้ได้เมื่อเปิดใช้ฟีเจอร์ Codex ส่วนการติดตั้งผ่าน CLI สามารถเรียกใช้ `openclaw plugins install @openclaw/codex`
- ติดตั้งและลงชื่อเข้าใช้ Codex Desktop หรือ Codex CLI บนคอมพิวเตอร์แต่ละเครื่องที่ต้องการแสดงเซสชัน
- จับคู่คอมพิวเตอร์ระยะไกลเป็น Node ของ OpenClaw คอมพิวเตอร์แต่ละเครื่องต้องเลือกใช้ภายในเครื่อง การเปิดใช้การกำกับดูแลเฉพาะบน Gateway ไม่ได้ให้สิทธิ์แก่ Node อื่น
- ใช้ Gateway ที่เจ้าของควบคุม ชื่อเซสชัน ไดเรกทอรีทำงาน และสาขา Git อาจเปิดเผยข้อมูลโครงการที่ละเอียดอ่อน

## เปิดใช้การกำกับดูแล

การตั้งค่า `openclaw onboard` แบบมีคำแนะนำและการตั้งค่าเมื่อเรียกใช้ macOS ครั้งแรกจะพยายามติดตั้งและเปิดใช้การกำกับดูแล Codex หลังจากตรวจพบการติดตั้ง Codex แบบเนทีฟและเปิดใช้งานแบ็กเอนด์การอนุมานที่เลือกสำเร็จแล้ว Codex ไม่จำเป็นต้องเป็นแบ็กเอนด์หลัก การกำกับดูแลจะพร้อมใช้งานเมื่อการเปิดใช้งาน Plugin ตามโอกาสดังกล่าวสำเร็จ ระบบจะตรวจสอบความพร้อมใช้งานของ App Server เมื่อการกำกับดูแลเชื่อมต่อเป็นครั้งแรก การปิดใช้ Plugin Codex อย่างชัดเจนหรือการบล็อกด้วยนโยบายจะป้องกันการเปิดใช้งานตามโอกาส และ `supervision.enabled: false` ที่ตั้งไว้อย่างชัดเจนอยู่แล้วจะปิดใช้เครื่องมือการกำกับดูแลที่เอเจนต์เข้าถึงได้ แค็ตตาล็อกผู้ดำเนินการจะยังคงลงทะเบียนอยู่ทุกครั้งที่ Plugin Codex ทำงาน เว้นแต่ `sessionCatalog.enabled: false` จะปิดใช้ สวิตช์แยกนี้จะคงผู้ให้บริการ Codex ชุดควบคุม และนโยบายการกำกับดูแลที่เอเจนต์เข้าถึงได้ไว้โดยไม่เปลี่ยนแปลง พร้อมทั้งนำคำสั่งแสดงรายการ/อ่านแค็ตตาล็อกของ Node ที่จับคู่ออกจากโฮสต์นี้ด้วย การติดตั้งที่มีอยู่สามารถเปิดใช้ความสามารถเดียวกันด้วยตนเองได้ดังนี้:

เปิดใช้ Plugin `codex` และความสามารถด้านการกำกับดูแลใน `openclaw.json`:

```json5
{
  plugins: {
    entries: {
      codex: {
        enabled: true,
        config: {
          supervision: {
            enabled: true,
          },
        },
      },
    },
  },
}
```

หากมี `plugins.allow` ให้รวม `codex` ด้วย รีสตาร์ต Gateway หลังเปลี่ยนการเปิดใช้งาน Plugin

เมื่อไม่มีการตั้งค่าการเชื่อมต่อ `appServer` อย่างชัดเจน การกำกับดูแลจะใช้การเชื่อมต่อการกำกับดูแล stdio ที่มีการจัดการแยกต่างหากกับโฮม Codex ของผู้ใช้แบบเนทีฟ โดยค่าเริ่มต้น ชุดควบคุม Codex ปกติจะยังคงจำกัดขอบเขตตามเอเจนต์ ซึ่งทำให้เซสชันแบบเนทีฟปรากฏในทั้งสองแอปโดยไม่ทำให้เทิร์น OpenClaw ปกติใช้สถานะ Codex แบบเนทีฟร่วมกัน ตั้งค่า `appServer.homeScope: "user"` อย่างชัดเจนหากต้องการให้ชุดควบคุมใช้สถานะนั้นร่วมกันด้วย การกำกับดูแลจะปฏิบัติตามการตั้งค่าการเชื่อมต่อ `appServer` ที่ระบุไว้อย่างชัดเจนแทนการแทนที่ด้วยค่าเริ่มต้นโฮมผู้ใช้ภายในเครื่อง

แชทที่รับมาจากกลุ่ม **Codex** ในแถบด้านข้างไม่ใช่เซสชันชุดควบคุมปกติ การเชื่อมโยงการกำกับดูแลส่วนตัวของแชทจะใช้การเชื่อมต่อการกำกับดูแลสำหรับการอ่านต้นทาง การสร้างสาขามาตรฐาน การแทรกประวัติ และทุกเทิร์นถัดไป เมื่อใช้การเชื่อมต่อภายในเครื่องเริ่มต้น วิธีนี้จะรักษาโฮม Codex ของผู้ใช้แบบเนทีฟ การตรวจสอบสิทธิ์ และการกำหนดค่าผู้ให้บริการไว้ โดยไม่เปลี่ยนค่าเริ่มต้นของเซสชันอื่น แชทที่รับมาและเฝ้าดูยังมีส่วนร่วมใน[การรับรู้สถานะเซสชัน](/th/concepts/session-state)ด้วย

สำหรับการเชื่อมต่อการกำกับดูแลภายในเครื่องเริ่มต้น ที่จัดเก็บข้อมูลจะใช้ร่วมกับไคลเอนต์ Codex แบบเนทีฟ OpenClaw จะไม่ถือว่าไคลเอนต์อื่นใช้กระบวนการ App Server สดเดียวกัน และความเป็นเจ้าของสถานะแบบเนทีฟจะจำกัดอยู่ภายในกระบวนการ ดังนั้นจึงถือว่าเธรดที่ App Server สำหรับการกำกับดูแลรายงานเป็น `notLoaded` นั้นเป็น **จัดเก็บไว้ / ไม่ทราบกิจกรรม** ไม่ใช่ไม่ได้ใช้งาน

ใช้การเลือกใช้แบบเดียวกันกับโฮสต์ Node แบบไร้ส่วนหัวทุกเครื่องที่ควรแสดงเซสชัน แอป OpenClaw แบบเนทีฟสำหรับ macOS จะอ่านการตั้งค่าภายในเครื่องเดียวกันเมื่อประกาศแค็ตตาล็อก Codex ไปยัง Gateway ที่จับคู่ แค็ตตาล็อก Mac แบบเนทีฟที่จับคู่นั้นรองรับเฉพาะค่าเริ่มต้นหรือ `appServer.transport: "stdio"` ที่ระบุไว้อย่างชัดเจน โดยไม่ได้ตั้งค่าหรือระบุ `appServer.homeScope: "user"` อย่างชัดเจน กระบวนการ stdio ดังกล่าวจะปฏิบัติตาม `command`, `args` และ `clearEnv` หากการกำหนดค่า Mac เลือก `"unix"`, `"websocket"` หรือ `homeScope: "agent"` แอปจะไม่ประกาศความสามารถหรือคำสั่งของแค็ตตาล็อก และการเรียกใช้โดยตรงที่ล้าสมัยจะล้มเหลวแทนที่จะเปิดเผยโฮม Codex ของผู้ใช้หรือสร้าง App Server stdio ภายในเครื่องตัวอื่น

คำสั่ง Node ที่ประกาศใหม่จะเปลี่ยนพื้นผิวคำสั่งที่ได้รับอนุมัติของ Node อนุมัติการอัปเดตจากโฮสต์ Gateway:

```bash
openclaw nodes pending
openclaw nodes approve <requestId>
```

เซสชัน Codex ที่ไม่ถูกเก็บถาวรจะปรากฏในแถบด้านข้างหลักของ Control UI โดยจัดกลุ่มตามโฮสต์ด้วย เลือกเซสชันเพื่ออ่านทรานสคริปต์ที่คงอยู่ถาวร โปรแกรมดูจะใช้ API `thread/turns/list` ล่าสุดของ Codex ร่วมกับ `itemsView: "full"` และโหลดไม่เกิน 20 เทิร์นต่อคำขอ **โหลดรายการทรานสคริปต์ที่เก่ากว่า** จะติดตามเคอร์เซอร์ App Server แบบทึบจากหน้าล่าสุด หน้าที่โหลดจะแสดงผลตามลำดับเวลา โปรแกรมดูจะไม่โหลดประวัติ `thread/read` แบบไม่จำกัด หากหน้ามีขนาดเกินเพดานความปลอดภัยในการส่งข้อมูล 20 MiB ระบบจะปิดโดยไม่ดำเนินการ แทนที่จะเสี่ยงต่อการเชื่อมต่อของ Node หรือ Gateway

เปิดกลุ่ม **Codex** ในแถบด้านข้างของเซสชันตามปกติ กลุ่มนี้จะแสดงเซสชันชุดเดียวกันโดยจัดกลุ่มตามโฮสต์ **โหลดเซสชันเพิ่มเติม** จะเพิ่มหน้าถัดไปจากแต่ละโฮสต์ที่มีแถวเก่ากว่า และแถวที่เพิ่มเหล่านั้นจะยังคงอยู่หลังการรีเฟรชตามระยะเวลาของแถบด้านข้าง แต่ละโฮสต์จะปรากฏทันทีที่การแสดงรายการแบบเนทีฟของโฮสต์นั้นเสร็จสิ้น หน้าที่มองเห็นจะปรับให้ตรงกันหลังการเปลี่ยนแปลงการเชื่อมต่อของ Node เมื่อกลับมาได้รับโฟกัส และอย่างช้าที่สุดทุก 30 วินาที หากผลลัพธ์เปลี่ยนแปลง จะมีการตรวจติดตามที่เร็วขึ้น ดังนั้นเซสชันที่สร้างใน Codex Desktop, CLI หรือไคลเอนต์แบบเนทีฟอื่นจะปรากฏโดยไม่ต้องโหลดหน้าใหม่ทั้งหมด หน้าแรกเรียงตามลำดับการอัปเดตล่าสุดของ Codex เอง ดังนั้นเซสชันแบบเนทีฟที่สร้างใหม่จึงมีสิทธิ์ปรากฏทันที
หน้าผลการค้นหาแต่ละหน้าจะสแกนหน้าแบบเนทีฟจำนวนจำกัดต่อโฮสต์ แทนที่จะส่งคำค้นไปยัง App Server เนื่องจากการค้นหาแบบเนทีฟสามารถจับคู่กับตัวอย่างทรานสคริปต์ได้ด้วย

ความพร้อมใช้งานของโฮสต์และสถานะเธรดเป็นคนละส่วนกัน **ออฟไลน์** หรือ **ไม่พร้อมใช้งาน** ใช้อธิบายการรีเฟรชโฮสต์ โฮสต์ที่ไม่พร้อมใช้งานจะไม่ส่งคืนแถวเซสชันใหม่ และจะไม่เปลี่ยนสถานะแบบเนทีฟของเธรดเป็น `offline` แถวเซสชันใช้สถานะของ Codex เช่น `idle`, `active`, `notLoaded` หรือข้อผิดพลาด โฮสต์ที่ล้มเหลวจะไม่ซ่อนผลลัพธ์จากโฮสต์ที่ทำงานปกติ

คำเตือนในแถบด้านข้างจะรวมรหัสข้อผิดพลาดของแค็ตตาล็อกและข้อผิดพลาด Gateway เบื้องหลังที่ปลอดภัย เปิด **Settings > Automation > Plugins > Codex > Native Session
Discovery** เพื่อปิดใช้การค้นพบโดยไม่ปิดใช้ Codex สำหรับ `NODE_LIST_FAILED` ให้เปรียบเทียบ `openclaw nodes list` กับ **Settings > Devices** สาเหตุโดยละเอียดจะระบุความล้มเหลวของที่จัดเก็บการจับคู่ รีจิสทรี Node สิทธิ์ หรือวงจรชีวิต Gateway ที่ต้องแก้ไข

## ใช้ CLI สำหรับผู้ดำเนินการ

CLI ในเทอร์มินัลเปิดเผยแค็ตตาล็อกที่ไม่ถูกเก็บถาวรชุดเดียวกัน รวมถึงการดำเนินการสร้างสาขาและเก็บถาวรภายใน Gateway:

```bash
openclaw codex sessions [--search <text>] [--host <id>] [--limit <count>] [--cursor <cursor>] [--json] [--url <url>] [--token <token>] [--timeout <ms>] [--expect-final]
openclaw codex continue <thread-id> [--json] [--url <url>] [--token <token>] [--timeout <ms>] [--expect-final]
openclaw codex archive <thread-id> --confirm-no-other-runner [--json] [--url <url>] [--token <token>] [--timeout <ms>] [--expect-final]
```

ตัวเลือก `openclaw codex sessions`:

- `--search <text>` ค้นหาชื่อเซสชันโดยไม่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
- `--host <id>` จำกัดการตอบกลับไว้ที่โฮสต์แค็ตตาล็อกที่คงที่หนึ่งรายการ เช่น `gateway:local` หรือ `node:<node-id>`
- `--limit <count>` กำหนดจำนวน 1 ถึง 100 แถวต่อโฮสต์ ค่าเริ่มต้นคือ 50
- `--cursor <cursor>` ดำเนินการหน้าของโฮสต์หนึ่งต่อ จึงต้องมี `--host`
- `--json` พิมพ์การตอบกลับ Gateway แบบมีโครงสร้าง

คำสั่งทั้งสามรับช่วง `--url`, `--token` และ `--timeout <ms>` จากไคลเอนต์ Gateway การแสดงรายการเซสชันมีค่าเริ่มต้นเป็น 75,000 ms เพื่อให้แค็ตตาล็อก Node ที่จับคู่แบบเริ่มทำงานช้าสามารถดำเนินการจนเสร็จ ส่วน continue และ archive มีค่าเริ่มต้นเป็น 30,000 ms นอกจากนี้ยังเปิดเผยสวิตช์ `--expect-final` ที่ใช้ร่วมกัน ซึ่งไม่เปลี่ยน RPC การกำกับดูแลแบบยูนารีเหล่านี้ แต่ละคำสั่งต้องใช้ขอบเขต Gateway `operator.write`
เอาต์พุตมาตรฐาน `-h, --help` พร้อมใช้งานในแต่ละคำสั่งย่อย
ไม่มีตัวเลือก archived หรือ include-archived `sessions` สามารถแสดงรายการโฮสต์ที่จับคู่ได้ แต่ `continue` และ `archive` จะกำหนดเป้าหมายไปที่ `gateway:local` เสมอ แถวที่จับคู่ใช้สำหรับแสดงรายการเท่านั้น การเก็บถาวรต้องใช้ `--confirm-no-other-runner` เสมอ

คำสั่งเชลล์เหล่านี้แตกต่างจากคำสั่งรันไทม์ `/codex` ภายในแชท `/codex threads [filter]` จะแสดงรายการเธรด App Server ที่พร้อมใช้งานสำหรับการเชื่อมต่อของบทสนทนาปัจจุบัน `/codex sessions --host <node>` จะแสดงรายการไฟล์เซสชัน Codex CLI ที่สามารถดำเนินการต่อได้บน Node หนึ่งเครื่อง ไม่ใช่แค็ตตาล็อกของกลุ่มการกำกับดูแล `/codex
resume` และ `/codex bind` จะเชื่อมต่อบทสนทนาปัจจุบันแทนการสร้างสาขาภายใต้การกำกับดูแลที่ปลอดภัย และแชทภายใต้การกำกับดูแลที่ล็อกโมเดลจะปฏิเสธการเปลี่ยนแปลงการเชื่อมโยงเหล่านั้น ไม่มีคำสั่งรันไทม์ `/codex continue` หรือ `/codex archive`

## สร้างสาขาจากเซสชันภายในเครื่อง

เลือก **ดำเนินการต่อเป็นสาขา** บนแถวที่จัดเก็บไว้หรือไม่ได้ใช้งานจากคอมพิวเตอร์ Gateway OpenClaw จะสร้างรายการแชทปกติ ทำสำเนาประวัติผู้ใช้และผู้ช่วยที่จำกัดขอบเขตจนถึงเทิร์นสุดท้ายที่คงอยู่ถาวรและสิ้นสุดแล้วของต้นทาง (เสร็จสมบูรณ์ ถูกขัดจังหวะ หรือล้มเหลว) บันทึกสาขาชุดควบคุมที่รอดำเนินการ และเปิดแชท ตัวเลือกโมเดลทั่วไปจะถูกล็อก แต่ยังไม่มีการเลือกโมเดลหรือผู้ให้บริการอย่างเป็นรูปธรรม ต้นทางจะไม่ถูกดำเนินการต่อ และเธรดชุดควบคุมมาตรฐานจะยังไม่เริ่มต้น การทำซ้ำการดำเนินการนี้จะเปิดแชทเดิมแทนการสร้างสาขาใหม่

สำเนาจะเก็บส่วนท้ายล่าสุดที่มองเห็นได้และอยู่ภายในขีดจำกัดทั้งสาม ได้แก่ ข้อความของผู้ใช้หรือผู้ช่วยไม่เกิน 200 ข้อความ ข้อความ UTF-8 รวมไม่เกิน 512 KiB และไม่เกิน 64 KiB ต่อข้อความ ข้อความที่มีขนาดใหญ่เกินไปจะถูกตัดทอนพร้อมเครื่องหมายกำกับ และข้อความเก่ากว่าจะถูกละเว้นเมื่อถึงขีดจำกัด อินพุตรูปภาพหรือรูปภาพภายในเครื่องจะกลายเป็นตัวยึดตำแหน่งแบบข้อความ `[Image attachment]` โดยจะไม่มีการคัดลอกข้อมูลรูปภาพและพาธภายในเครื่อง

ส่งข้อความ Chat ปกติข้อความแรกเพื่อเริ่มทำงาน Codex harness จะติดตั้งตัวจัดการการอนุมัติ การซักถาม เหตุการณ์ และการส่งมอบจริง โดยใช้ fork แบบ native ชั่วคราวบนการเชื่อมต่อการควบคุมเพื่อปักหมุดสแนปช็อตต้นทางโดยไม่ระบุการแทนที่โมเดลหรือผู้ให้บริการ Codex App Server จะเลือกทั้งสองอย่างจากการกำหนดค่า native ปัจจุบันและส่งคืนค่าที่เลือกจริง บนการเชื่อมต่อเดียวกันนั้น OpenClaw จะเริ่มเธรด full harness ต้นฉบับจากแหล่ง `appServer` ภายใต้ cwd และนโยบายรันไทม์ของเธรด โดยใช้คู่ค่าที่ส่งคืนมานั้นอย่างถูกต้อง จากนั้นแทรกประวัติที่มองเห็นได้แบบจำกัดขอบเขตและเก็บ fork ชั่วคราวไว้ในคลัง เธรดต้นฉบับมีพื้นผิวเครื่องมือ OpenClaw harness ครบถ้วน นี่คือสาขาของประวัติที่มองเห็นได้ ไม่ใช่สำเนาการดำเนินงาน native แบบสมบูรณ์: ระบบจะละเว้นการให้เหตุผล การเรียกเครื่องมือ และผลลัพธ์ของเครื่องมือจากต้นทาง เทิร์นนี้และเทิร์นหลังจากนี้ทั้งหมดจะอยู่บนการเชื่อมต่อ Codex ที่มีการควบคุม แทนที่จะเป็นรันไทม์โมเดล OpenClaw อื่นหรือ agent-home harness ตามปกติ

ค่าที่เลือกซึ่งส่งคืนมาไม่ได้เป็นหลักฐานยืนยันโมเดลในอดีตของต้นทาง หากการกำหนดค่า native ปัจจุบันแตกต่างจากโมเดลที่บันทึกไว้สำหรับเทิร์นล่าสุดของต้นทาง Codex จะแสดงคำเตือนตามปกติเกี่ยวกับความแตกต่างของโมเดล OpenClaw ใช้คู่ค่าที่ส่งคืนมาเพื่อเริ่มเธรดต้นฉบับ Codex จะบันทึกโมเดลและผู้ให้บริการแบบ native ของเธรดต้นฉบับนั้น และการดำเนินการต่อภายหลังจะคงค่าเหล่านั้นไว้ เนื่องจาก OpenClaw ไม่ระบุการแทนที่โมเดลและผู้ให้บริการ หากเธรดต้นฉบับถูกเปลี่ยนผ่านตัวควบคุม Codex แบบ native แยกต่างหาก OpenClaw จะยอมรับค่าที่ Codex บันทึกไว้ OpenClaw จะไม่ใช้โมเดลภายนอกหรือสายโซ่สำรองของตนแทนโดยเด็ดขาด

Chat ที่ล็อกโมเดลและอยู่ภายใต้การควบคุมจะไม่สามารถลบ เปลี่ยนโมเดล ใช้ `/new` หรือ `/reset` เรียกการดำเนินการรีเซ็ตเซสชันของ Gateway หรือใช้การดำเนินการทั่วไป **Fork เซสชัน** ได้ การแก้ไข `/codex model <model>`, `/codex
bind`, `/codex resume` (รวมถึงเซสชันของ Node ที่มี `--bind here`) และ `/codex detach` หรือ `/codex unbind` จะถูกปฏิเสธเช่นกัน เนื่องจากการดำเนินการเหล่านี้จะแทนที่หรือล้างการผูกแบบ native ที่ล็อกไว้ คำค้น `/codex model` รวมถึง `/codex fast`, `/codex permissions` และ `/codex threads` ยังคงใช้งานได้ เริ่มเซสชันปกติอีกเซสชันเมื่อต้องการโมเดลอื่นหรือเธรดใหม่

เปิดใช้งานการควบคุมสำหรับ Chat นี้ไว้เสมอ หากปิดใช้งานการควบคุม หรือการผูกการเชื่อมต่อที่จัดเก็บไว้ไม่พร้อมใช้งานหรือไม่สอดคล้องกัน เทิร์นจะล้มเหลวแบบปิดเพื่อความปลอดภัย แทนที่จะย้ายไปยังเซสชัน agent-home ปกติ

การปิดใช้งานหรือถอนการติดตั้ง Plugin `codex` จะไม่ปลดความเป็นเจ้าของดังกล่าวหรือทำให้ Chat สามารถใช้โมเดลอื่นได้ Chat ที่ล็อกไว้จะยังคงถูกเก็บรักษาแต่ไม่พร้อมใช้งาน ให้ติดตั้งใหม่หรือเปิดใช้งาน Plugin เดิมอีกครั้งแล้วรีสตาร์ต Gateway เพื่อดำเนินการต่อ พฤติกรรมแบบล้มเหลวปิดเพื่อความปลอดภัยโดยเจตนานี้ป้องกันไม่ให้การล้างข้อมูลตามระยะเวลาการเก็บรักษาหรือการหยุดทำงานชั่วคราวของ Plugin ทำให้การผูกแบบ native ขาดเจ้าของโดยไม่มีการแจ้งเตือน

เครื่องมือเอเจนต์ `codex_threads` ใช้ขอบเขตเดียวกัน เครื่องมือนี้ไม่สามารถแนบ fork อื่นหรือเก็บเธรด native ที่ผูกกับ Chat ไว้ในคลังได้ การแสดงรายการและการอ่านเฉพาะเมทาดาทายังคงใช้งานได้ การอ่านทรานสคริปต์ดิบต้องใช้ `allowRawTranscripts`
เมื่อปิดใช้งานการเข้าถึงข้อมูลดิบ `codex_threads` จะปฏิเสธการค้นหาในรายการด้วย เนื่องจากการค้นหาแบบ native รวมตัวอย่างทรานสคริปต์ไว้ด้วย ส่วน Control UI และ CLI สำหรับผู้ดูแลยังคงให้การค้นหาเฉพาะชื่อเรื่องแบบจำกัดขอบเขต การเปลี่ยนชื่อ การนำออกจากคลัง การสร้าง fork แบบแยก และการเก็บเธรดอื่นที่ไม่มีเจ้าของไว้ในคลังต้องใช้
`allowWriteControls` ไม่มีตัวเลือกใดข้ามการผูกที่ล็อกไว้ได้

OpenClaw จะไม่สมัครรับหรือตอบคำขออนุมัติขณะเพียงแสดงรายการเธรดต้นทางหรือแสดง Chat ที่รอดำเนินการ การเริ่มเธรด harness ต้นฉบับแยกต่างหากในเทิร์นแรกช่วยให้กระบวนการ Codex อื่นยังคงเป็นเจ้าของต้นทางได้โดยไม่สร้างตัวเขียนการดำเนินงานที่แข่งขันกัน

ต้นทางเดิมจาก CLI, VS Code, Atlas หรือ ChatGPT ยังคงมองเห็นได้ในไคลเอนต์ native และแค็ตตาล็อก OpenClaw สาขาต้นฉบับจะถูกจัดเก็บเป็นเธรด Codex แบบ native แต่ชนิดต้นทางคือ `appServer`; Codex Desktop หรือไคลเอนต์ native อื่นอาจกรองชนิดต้นทางนั้น ดังนั้นจึงไม่รับประกันว่าสาขานั้นจะปรากฏในมุมมองประวัติ native ทุกแห่ง

แถวที่ OpenClaw App Server รายงานว่ากำลังทำงานอยู่ไม่สามารถเริ่มสาขาใหม่ได้ ให้รอจนกว่าเทิร์นปัจจุบันจะเสร็จสิ้นแล้วรีเฟรชแค็ตตาล็อก Codex App Server จะจัดลำดับการแก้ไขภายในกระบวนการเดียว แต่ไม่ได้ให้ตัวเรียกทำงานแบบเอกสิทธิ์ข้ามกระบวนการหรือสิทธิ์เช่าเจ้าของการอนุมัติ

สำหรับแถว **จัดเก็บแล้ว / ไม่ทราบกิจกรรม** มิเรอร์ Chat และการปักหมุดสแนปช็อตในเทิร์นแรกจะใช้สถานะของ Codex จนถึงเทิร์นสุดท้ายที่สิ้นสุดและถูกบันทึกไว้ เธรดต้นทางจะไม่ถูกดำเนินการต่อ ขัดจังหวะ หรือเก็บไว้ในคลัง หากกระบวนการอื่นมีเทิร์นที่กำลังดำเนินการ งานล่าสุดที่ยังดำเนินอยู่ของกระบวนการนั้นอาจไม่ปรากฏในสาขา

## เก็บเซสชันภายในเครื่องไว้ในคลัง

เลือก **เก็บเข้าคลัง** บนแถวที่จัดเก็บไว้หรือไม่ได้ใช้งานซึ่งอยู่ภายใน Gateway จากนั้นยืนยันว่าไม่มีไคลเอนต์ Codex หรือตัวเรียกทำงาน OpenClaw อื่นกำลังใช้เธรดนั้นหรือรายการลูกหลานที่เธรดสร้างขึ้น OpenClaw จะอ่านสถานะภายในกระบวนการใหม่ ดำเนินการต่อเฉพาะสำหรับ `idle` หรือ `notLoaded` เรียกการดำเนินการเก็บเข้าคลังแบบ native ของ Codex และนำเซสชันออกจากรายการที่ไม่ได้เก็บเข้าคลัง Codex แบบ native จะพยายามเก็บรายการลูกหลานที่เธรดสร้างขึ้นไว้ในคลังด้วย

การเก็บเข้าคลังจะใช้ไม่ได้เมื่อการอ่านใหม่รายงานว่าเซสชันกำลังทำงานหรืออยู่ในสถานะข้อผิดพลาด เมื่อเซสชันเป็นของ Node ที่จับคู่ หรือขณะที่ Chat ที่มีการควบคุมซึ่งเพิ่งสร้างขึ้นยังมีสาขาจากต้นทางนั้นรอดำเนินการ ส่งข้อความแรกของ Chat เพื่อสร้างสาขาต้นฉบับให้เป็นรูปธรรมก่อนเก็บต้นทางเข้าคลัง นอกจากนี้ การเก็บเข้าคลังยังถูกบล็อกเมื่อ OpenClaw ทราบว่าการผูกที่กำลังทำงานเป็นเจ้าของเธรดเป้าหมายที่ตรงกันทุกประการหรือรายการลูกหลานที่ยังไม่ได้เก็บเข้าคลัง OpenClaw จะติดตามคำค้นรายการลูกหลานของ Codex ซึ่งเป็นฟีเจอร์ทดลองไปจนครบทุกหน้า โดยการตอบกลับที่ไม่ถูกต้อง คำขอล้มเหลว เคอร์เซอร์หรือเธรดซ้ำ หรือการใช้ขีดจำกัดความปลอดภัยจนหมด จะทำให้คำขอเก็บเข้าคลังถูกปฏิเสธ

คำขออ่าน แจกแจงรายการลูกหลาน และเก็บเข้าคลังไม่ได้เป็นการดำเนินการแบบมีเงื่อนไขรายการเดียว ดังนั้นเทิร์นอาจยังเริ่มขึ้นระหว่างคำขอเหล่านั้น สถานะ App Server ยังไม่ถูกแชร์ระหว่างกระบวนการอิสระ การยืนยันจึงเป็นขอบเขตความปลอดภัยสำหรับไคลเอนต์ที่ไม่ทราบและสภาวะแข่งขันดังกล่าว: ให้ออกจากไคลเอนต์อื่นทั้งหมดหรือยืนยันด้วยวิธีอื่นก่อนกดยืนยัน กู้คืนเธรดที่เก็บเข้าคลังด้วย Codex Desktop, Codex CLI หรือขั้นตอนการจัดการเธรดแบบ native ที่ได้รับอนุญาตจากเจ้าของ เธรดจะปรากฏอีกครั้งหลังนำออกจากคลัง

```bash
codex unarchive <thread-id>
```

## ทำความเข้าใจข้อจำกัดของ Node ที่จับคู่

Node ที่จับคู่จะเปิดเผยคำสั่งแบบอ่านอย่างเดียวที่มีการกำหนดเวอร์ชัน
`codex.appServer.threads.list.v1` และ
`codex.appServer.thread.turns.list.v1` โฮสต์ Node แบบ native ที่มี
Codex CLI พร้อมใช้งานจะเปิดเผยคำสั่ง `codex.terminal.resume.v1`
ที่อยู่ในรายการอนุญาตด้วย Gateway จะได้รับเมทาดาทาที่ปรับให้อยู่ในรูปแบบมาตรฐานและหน้าทรานสคริปต์แบบจำกัดขอบเขตที่มีการร้องขออย่างชัดเจน โดยจะไม่ได้รับปลายทาง App Server ดิบ การเปิดแถวในเทอร์มินัลสำหรับผู้ดูแลจะเรียกใช้ `codex resume <thread-id>`
บนโฮสต์เจ้าของและถ่ายทอด PTY ของคำสั่งนั้น โดยไม่เปิดเผยเชลล์ทั่วไปหรือ argv ที่ Gateway เป็นผู้ระบุ

การถ่ายทอดเทอร์มินัลไม่ได้ให้สัญญาการดำเนินการต่อของ harness หรือความเป็นเจ้าของการเก็บเข้าคลัง ดังนั้นแถวระยะไกลจึงยังคงมองเห็นได้ แต่ไม่มี **ดำเนินการต่อ** หรือ **เก็บเข้าคลัง** แม้เธรดระยะไกลจะไม่ได้ใช้งาน ให้ใช้ Codex บนคอมพิวเตอร์เครื่องนั้นผ่าน **เปิดในเทอร์มินัล** หรือใช้ขั้นตอนการดำเนินการต่อในอนาคตที่มีขอบเขตความเป็นเจ้าของตัวเรียกทำงานที่ปลอดภัย

## เมทาดาทาและสิทธิ์

แถวในแค็ตตาล็อกอาจประกอบด้วย:

- ตัวระบุเธรดและเซสชัน
- ชื่อเรื่องและไดเรกทอรีทำงาน
- สถานะปัจจุบันและแฟล็กรอที่กำลังทำงาน
- เวลาที่สร้าง อัปเดต และมีกิจกรรม
- ต้นทาง ผู้ให้บริการโมเดล เวอร์ชัน Codex CLI และสาขา Git

การฉายภาพแค็ตตาล็อกจะไม่รวมตัวอย่างทรานสคริปต์ เทิร์น พาธการดำเนินงาน พาธโฮมของ Codex รีโมต Git, SHA ของคอมมิต และข้อผิดพลาด App Server ดิบ การเข้าถึงแค็ตตาล็อกและการอ่านทรานสคริปต์ใน Control UI ต้องใช้ขอบเขต Gateway `operator.write` เนื่องจากการรวมข้อมูลทั้งฟลีตใช้พาธมาตรฐาน `node.invoke` แม้ว่าคำสั่งของ Node ทั้งสองจะเป็นแบบอ่านอย่างเดียวก็ตาม

`supervision.allowRawTranscripts` และ `supervision.allowWriteControls` ควบคุมเครื่องมือเอเจนต์อัตโนมัติและเครื่องมือ MCP แบบสแตนด์อโลน ทั้งสองมีค่าเริ่มต้นเป็น `false` เมื่อเปิดใช้งานการควบคุม `codex_threads` จะนำตัวอย่างทรานสคริปต์และเทิร์นออกจากผลลัพธ์การแสดงรายการและการอ่านเฉพาะเมทาดาทา เว้นแต่จะอนุญาตทรานสคริปต์ดิบ การอ่านที่รวมเทิร์นจะล้มเหลวแบบปิดเพื่อความปลอดภัย ทุกการสร้าง fork การเปลี่ยนชื่อ การเก็บเข้าคลัง และการนำออกจากคลังต้องใช้การควบคุมการเขียน ตัวเลือกเหล่านี้ไม่จำกัดการดูทรานสคริปต์ผ่าน Control UI ที่ผ่านการรับรองความถูกต้อง และไม่ข้ามการตรวจสอบการผูก โฮสต์ สถานะ หรือการยืนยัน

### เครื่องมือความเข้ากันได้

Plugin `codex` อย่างเป็นทางการยังคงเก็บชื่อเครื่องมือ Supervisor ทั้งห้าชื่อที่เผยแพร่แล้วไว้สำหรับเอเจนต์และไคลเอนต์ MCP แบบสแตนด์อโลนที่มีอยู่:

- `codex_endpoint_probe`
- `codex_sessions_list`
- `codex_session_read`
- `codex_session_send`
- `codex_session_interrupt`

โดยค่าเริ่มต้น `codex_sessions_list` จะใช้เฉพาะรายการที่โหลดแล้ว และไม่มีพารามิเตอร์ `loaded_only`
ตั้งค่า `include_stored: true` เพื่ออ่านแถวที่จัดเก็บไว้และยังไม่ได้เก็บเข้าคลังจากฐานข้อมูลสถานะของ Codex ด้วย ขีดจำกัด `max_stored_sessions` ซึ่งเป็นตัวเลือกมีค่าเริ่มต้นเป็น 200 และยอมรับ 1 ถึง 1,000 แถวต่อปลายทาง ขีดจำกัดนี้ไม่จำกัดแถวที่โหลดแล้ว หากไม่มีสิทธิ์เข้าถึงทรานสคริปต์ดิบ ผลลัพธ์รายการจะละเว้นชื่อและตัวอย่างที่ได้มาจากทรานสคริปต์ รวมถึงข้อผิดพลาดโดยละเอียดของปลายทาง
`codex_session_read` ต้องใช้ `allowRawTranscripts`; ส่วน `include_turns: true`
จะขอเทิร์นจาก Codex เพิ่มเติม

`codex_session_send` และ `codex_session_interrupt` ต้องใช้
`allowWriteControls` การส่งยอมรับ `mode: "auto" | "start" | "steer"` แต่
`"start"` จะถูกปฏิเสธเสมอ และทั้ง `"auto"` กับ `"steer"` สามารถชี้นำได้เฉพาะเทิร์นที่กำลังทำงานและอ่านได้เท่านั้น เธรดที่ไม่ได้ใช้งานจะถูกปฏิเสธพร้อมคำแนะนำให้ใช้ **เซสชัน Codex** ซึ่ง full harness จะติดตั้งตัวจัดการการอนุมัติและเครื่องมือก่อนดำเนินการต่อ การขัดจังหวะต้องใช้เทิร์นที่กำลังทำงานและอ่านได้เช่นกัน เครื่องมือเหล่านี้จะไม่ดำเนินการต่อหรือเริ่มเธรดต้นทางที่ไม่ได้ใช้งาน

`openclaw doctor --fix` จะย้ายรายการ `codex-supervisor` ที่เลิกใช้แล้ว ฟิลด์ปลายทางและสิทธิ์ของรายการดังกล่าว และการอ้างอิงนโยบายรายการอนุญาต/ปฏิเสธของ Plugin ไปยัง Plugin `codex` อย่างเป็นทางการโดยไม่เขียนทับการตั้งค่าต้นฉบับที่ระบุไว้อย่างชัดเจน อะแดปเตอร์ MCP สำหรับความเข้ากันได้แบบสแตนด์อโลนจะยังคงโหลดเครื่องมือห้ารายการเดิมจาก Plugin นั้น ตัวแปรสภาพแวดล้อมของนโยบายแบบเดิมจะมีผลเฉพาะภายในอะแดปเตอร์ที่เชื่อถือได้นั้น

สำหรับฟิลด์การกำหนดค่าการควบคุมทั้งหมด โปรดดู
[ข้อมูลอ้างอิง Codex harness](/th/plugins/codex-harness-reference#supervision)

## การแก้ไขปัญหา

**ไม่มีเซสชันปรากฏ:** ตรวจสอบว่าได้ติดตั้ง `@openclaw/codex` แล้ว ทั้ง Plugin และ `supervision.enabled` เป็น true รายการอนุญาตของ Plugin ปัจจุบันอนุญาต `codex` และเซสชันไม่ได้ถูกเก็บเข้าคลัง รีสตาร์ต Gateway หรือ Node หลังเปลี่ยนการเปิดใช้งาน

**ปิดใช้งานการดำเนินการต่อ:** แถวที่ยังไม่ได้แมปกำลังทำงาน เป็นของ Node ที่จับคู่ โฮสต์ออฟไลน์ หรือมีการดำเนินการอื่นรอดำเนินการ แถวภายใน Gateway ที่จัดเก็บไว้และไม่ได้ใช้งานจะแสดง **ดำเนินการต่อเป็นสาขา** แทนการเข้าควบคุมเธรดเดิมโดยตรงซึ่งไม่ปลอดภัย แถวที่มี Chat ภายใต้การควบคุมอยู่แล้วจะแสดง **เปิด Chat**

**ปิดใช้งานการเก็บเข้าคลัง:** การเก็บเข้าคลังพร้อมใช้งานสำหรับแถวภายใน Gateway ที่จัดเก็บไว้/ไม่ทราบกิจกรรมและแถวที่ไม่ได้ใช้งาน หลังยืนยันว่าไม่มีตัวเรียกทำงานอื่น แถวที่กำลังทำงาน มีข้อผิดพลาด ออฟไลน์ เป็นของ Node ที่จับคู่ มีสาขารอดำเนินการ และมีเจ้าของการผูกที่ตรงกันซึ่งระบบทราบ จะยังคงเป็นแบบอ่านอย่างเดียวสำหรับการเก็บเข้าคลัง

**เซสชันที่เก็บเข้าคลังหายไป:** นี่เป็นพฤติกรรมที่คาดไว้ หน้าการควบคุมไม่มีมุมมองรายการที่เก็บเข้าคลัง เรียกใช้ `codex unarchive <thread-id>` หรือใช้ Codex Desktop เพื่อแสดงอีกครั้ง

**ยังมีการกำหนดค่า `codex-supervisor` แบบเก่า:** เรียกใช้ `openclaw doctor --fix` Doctor จะย้ายรายการ Plugin ที่เลิกใช้แล้วและการอ้างอิงนโยบาย Plugin ที่เกี่ยวข้องไปยัง `plugins.entries.codex.config.supervision` โดยไม่เขียนทับการตั้งค่า Codex ที่ระบุไว้อย่างชัดเจน

## ที่เกี่ยวข้อง

- [Codex harness](/th/plugins/codex-harness)
- [ข้อมูลอ้างอิง Codex harness](/th/plugins/codex-harness-reference)
- [รันไทม์ Codex harness](/th/plugins/codex-harness-runtime)
- [สถาปัตยกรรมการควบคุม Codex](/specs/codex-supervision)
- [Node](/th/nodes)
- [ความปลอดภัยของ Gateway](/th/gateway/security)
