Codex harness
รันไทม์ชุดทดสอบ Codex
สัญญารันไทม์สำหรับเทิร์นของ Codex harness สำหรับการตั้งค่าและการกำหนดเส้นทาง โปรดดู Codex harness สำหรับฟิลด์การกำหนดค่า โปรดดู ข้อมูลอ้างอิง Codex harness
ภาพรวม
Codex รับผิดชอบลูปโมเดลแบบเนทีฟ การดำเนินเธรดต่อแบบเนทีฟ การดำเนินเครื่องมือต่อแบบเนทีฟ และ Compaction แบบเนทีฟ OpenClaw รับผิดชอบการกำหนดเส้นทางช่องทาง ไฟล์เซสชัน การส่งข้อความที่มองเห็นได้ เครื่องมือไดนามิกของ OpenClaw การอนุมัติ การส่งสื่อ และมิเรอร์ทรานสคริปต์รอบขอบเขตดังกล่าว
การกำหนดเส้นทางพรอมต์เป็นไปตามรันไทม์ที่เลือก ไม่ใช่เพียงสตริงผู้ให้บริการ เทิร์น Codex แบบเนทีฟจะได้รับคำสั่งนักพัฒนาของ Codex app-server ส่วนเส้นทางความเข้ากันได้ ของ OpenClaw ที่ระบุอย่างชัดเจนจะยังคงใช้พรอมต์ระบบ OpenClaw ตามปกติ แม้จะใช้ การยืนยันตัวตนหรือการขนส่ง OpenAI ในรูปแบบ Codex
OpenClaw เริ่มต้นและดำเนินเธรด Codex แบบเนทีฟต่อโดยปิดใช้งาน
บุคลิกภาพในตัวของ Codex (personality: "none") เพื่อให้ไฟล์บุคลิกภาพของพื้นที่ทำงาน
และอัตลักษณ์เอเจนต์ OpenClaw ยังคงมีอำนาจสูงสุด มิฉะนั้น Codex แบบเนทีฟจะยังคงใช้
คำสั่งฐาน/โมเดลและการโหลดเอกสารโปรเจกต์ที่ Codex เป็นผู้ดูแล การรัน OpenClaw
แบบเบา (ตัวอย่างเช่น cron) ยังคงระงับการโหลดเอกสารโปรเจกต์
คำสั่งนักพัฒนาของ OpenClaw ครอบคลุมข้อกังวลของรันไทม์ OpenClaw ได้แก่ การส่งไปยัง
ช่องทางต้นทาง เครื่องมือไดนามิกของ OpenClaw การมอบหมายผ่าน ACP บริบทอะแดปเตอร์
และไฟล์โปรไฟล์พื้นที่ทำงานของเอเจนต์ที่ใช้งานอยู่ แค็ตตาล็อก Skills และตัวชี้
MEMORY.md ที่กำหนดเส้นทางผ่านเครื่องมือจะถูกฉายเป็นคำสั่งนักพัฒนา
สำหรับการทำงานร่วมกันที่มีขอบเขตเฉพาะเทิร์น เมื่อเครื่องมือหน่วยความจำไม่พร้อมใช้งาน
เนื้อหา BOOTSTRAP.md ที่ใช้งานอยู่และ MEMORY.md ฉบับเต็มจะใช้
บริบทอินพุตแบบข้อความธรรมดาของเทิร์นแทน
เครื่องมือไดนามิกส่วนใหญ่ของ OpenClaw ใช้เนมสเปซ openclaw ที่ค้นหาได้ เครื่องมือ
ที่ทำเครื่องหมาย catalogMode: "direct-only" จะใช้ openclaw_direct ซึ่ง Codex ทำให้
โมเดลมองเห็นได้โดยตรงในฐานะ DirectModelOnly แทนที่จะเปิดเผยต่อการดำเนินการ
Code Mode แบบซ้อน
การผูกเธรดและการเปลี่ยนโมเดล
เมื่อเซสชัน OpenClaw เชื่อมโยงกับเธรด Codex ที่มีอยู่ เทิร์นถัดไปจะส่งโมเดล
ที่เลือกในปัจจุบัน นโยบายการอนุมัติ แซนด์บ็อกซ์ ผู้ตรวจสอบการอนุมัติ และระดับบริการ
ไปยัง app-server อีกครั้ง การสลับจาก openai/gpt-5.5 เป็น openai/gpt-5.2
จะคงการผูกเธรดไว้ แต่ขอให้ Codex ดำเนินการต่อด้วยโมเดลที่เลือกใหม่
การผูกภายใต้การควบคุมดูแลเป็นข้อยกเว้น ตัวเลือกโมเดลของ OpenClaw จะยังคงถูกล็อก และการดำเนินต่อจะไม่ส่งค่าการแทนที่โมเดลและผู้ให้บริการ เพื่อให้ Codex กู้คืนโมเดล และผู้ให้บริการที่จัดเก็บไว้ของเธรดมาตรฐาน ตัวควบคุม Codex แบบเนทีฟที่แยกต่างหาก สามารถเปลี่ยนคู่ค่าที่จัดเก็บไว้นั้นได้ และสแนปช็อตเริ่มต้นอาจสร้างคำเตือนตามปกติ ของ Codex เกี่ยวกับความแตกต่างของโมเดล โมเดล OpenClaw ชั้นนอกและลำดับการสำรอง จะไม่ใช้แทนค่าใดในคู่นี้
การควบคุมดูแลและการดำเนินต่ออย่างปลอดภัย
การควบคุมดูแล Codex เป็นความสามารถแบบเลือกใช้ของ Plugin codex เดียวกัน
โดยค้นหาเธรดแบบเนทีฟผ่านการเชื่อมต่อแยกต่างหาก และฉายเฉพาะเซสชันที่ยังไม่ถูกเก็บถาวร
เข้าสู่แค็ตตาล็อก Gateway หากไม่มีการตั้งค่าการเชื่อมต่อ appServer อย่างชัดเจน
การเชื่อมต่อนั้นจะใช้ stdio ของโฮมผู้ใช้ที่มีการจัดการ ขณะที่ harness ปกติยังคง
มีขอบเขตระดับเอเจนต์ การแสดงรายการและการอ่านเมทาดาทาเป็นแบบพาสซีฟ โดยจะไม่
ดำเนินเธรดต่อ สมัครรับเหตุการณ์สดของเธรดให้ OpenClaw หรือตอบคำขออนุมัติของเธรด
สำหรับเซสชันที่จัดเก็บหรือไม่ได้ใช้งานอยู่บนคอมพิวเตอร์ Gateway ดำเนินต่อเป็นสาขา
จะสร้าง Chat ปกติที่ล็อกโมเดล และมิเรอร์ประวัติผู้ใช้และผู้ช่วยแบบมีขอบเขตจนถึง
เทิร์นสุดท้ายที่สิ้นสุดและถูกจัดเก็บจากต้นทาง เทิร์น Chat ปกติเทิร์นแรกจะติดตั้ง
ตัวจัดการการอนุมัติจริงและใช้ฟอร์กเนทีฟชั่วคราวเพื่อตรึงสแนปช็อตโดยไม่แทนที่โมเดล
หรือผู้ให้บริการ Codex App Server ใช้การกำหนดค่าเนทีฟปัจจุบันและส่งคืนคู่ค่าที่เลือก
โดยจะแสดงคำเตือนตามปกติหากโมเดลนั้นแตกต่างจากโมเดลล่าสุดที่บันทึกไว้ของต้นทาง
บนการเชื่อมต่อการควบคุมดูแลเดียวกัน OpenClaw จะเริ่มเธรด Codex harness มาตรฐาน
ที่มีต้นทาง appServer ภายใต้ cwd และนโยบายรันไทม์ของต้นทาง โดยใช้โมเดล
และผู้ให้บริการที่ส่งคืนมาสำหรับการเริ่มต้นครั้งแรกนั้นอย่างตรงกันทุกประการ
แทรกประวัติที่มองเห็นได้แบบมีขอบเขต และเก็บฟอร์กชั่วคราวเข้าคลัง ต้นทางจะไม่ถูก
ดำเนินต่อ เธรดมาตรฐานมีพื้นผิวเครื่องมือ OpenClaw harness อย่างครบถ้วน
การให้เหตุผล การเรียกเครื่องมือ และผลลัพธ์เครื่องมือจากต้นทางจะไม่ถูกโคลนเข้าไป
ขอบเขตการเชื่อมต่อส่วนตัวจะคงอยู่ตลอดสถานะการผูกที่รอดำเนินการและที่ยืนยันแล้ว
ดังนั้นทุกเทิร์นภายหลังจะยังคงอยู่บนการเชื่อมต่อนั้น พร้อมการยืนยันตัวตนและ
การกำหนดค่าผู้ให้บริการแบบเนทีฟ การปิดใช้งานการควบคุมดูแลหรือการคลาดเคลื่อนของ
การผูก/การเชื่อมต่อจะปิดกั้นการทำงาน แทนที่จะสลับไปใช้ harness ของโฮมเอเจนต์ตามปกติ
ต้นทาง CLI, VS Code, Atlas หรือ ChatGPT เดิมยังคงมีสิทธิ์ปรากฏในทั้งสองแค็ตตาล็อก
สาขามาตรฐานเป็นเธรด Codex แบบเนทีฟ แต่ชนิดต้นทางคือ appServer
ไคลเอนต์เนทีฟอาจกรองชนิดต้นทางนี้ ดังนั้นจึงไม่รับประกันว่าจะปรากฏใน Codex Desktop
ต้นทางที่ทำงานอยู่ไม่สามารถเริ่มสาขาใหม่หรือถูกเก็บถาวร แต่ยังสามารถเปิด Chat
ภายใต้การควบคุมดูแลที่มีอยู่ได้ notLoaded หมายความว่าไม่ทราบกิจกรรม
ไม่ใช่ไม่ได้ใช้งาน OpenClaw อนุญาตให้เก็บถาวรสำหรับแถว idle
หรือ notLoaded ภายในเครื่องได้ก็ต่อเมื่อมีการยืนยันอย่างชัดเจนว่าไม่มี
ตัวรันอื่น และมีการอ่านสถานะล่าสุดภายในกระบวนการ Codex จะจัดลำดับการเปลี่ยนแปลง
เธรดภายในกระบวนการ App Server เดียว แต่ไม่ได้ให้สิทธิ์เช่าแบบเอกสิทธิ์ข้ามกระบวนการ
สำหรับตัวรันหรือเจ้าของการอนุมัติ ดังนั้นการอ่านนั้นจึงพิสูจน์ไม่ได้ว่าไม่มีกระบวนการอื่น
กำลังใช้เธรด OpenClaw จะบล็อกเจ้าของการผูกที่ทราบว่าทำงานอยู่สำหรับเป้าหมายตรงกัน
หรือรายการสืบทอดที่สร้างขึ้นซึ่งยังไม่ถูกเก็บถาวรและส่งคืนจากคิวรีรายการสืบทอด
แบบแบ่งหน้าของ Codex ข้อผิดพลาดในการแจกแจง วงจร และการใช้ขีดจำกัดความปลอดภัยจนหมด
จะปิดกั้นการทำงาน การเก็บถาวรแบบเนทีฟยังคงอาจแข่งกับเทิร์นใหม่ในกระบวนการอื่น
ดังนั้นการยืนยันจึงครอบคลุมไคลเอนต์ที่ไม่รู้จักและช่วงว่างระหว่างการอ่านสถานะกับ
การเก็บถาวร Chat ภายใต้การควบคุมดูแลที่ล็อกโมเดลไม่สามารถถูกลบได้ขณะที่ยังปกป้อง
การผูกแบบเนทีฟ
แค็ตตาล็อกของโหนดที่จับคู่จะคงเป็นเมทาดาทาเท่านั้นในรุ่นแรก ขอบเขตการเรียกใช้ โหนดปัจจุบันเป็นแบบคำขอ/การตอบกลับ และไม่สามารถส่งผ่านเหตุการณ์เทิร์นอายุยาว คำขออนุมัติ หรือเอาต์พุตแบบสตรีมที่จำเป็นต่อการผูก Codex harness จริง ดังนั้น ดำเนินต่อ และ เก็บถาวร จากระยะไกลจึงยังไม่พร้อมใช้งาน แม้แถวจะไม่ได้ใช้งาน
โปรดดู การควบคุมดูแล Codex สำหรับการตั้งค่าของผู้ปฏิบัติงาน และลักษณะการทำงานที่มองเห็นได้ใน Control UI
การตอบกลับที่มองเห็นได้และ Heartbeat
เทิร์นแชตโดยตรง/จากต้นทางผ่าน Codex harness จะใช้ค่าเริ่มต้นเป็นการส่งคำตอบสุดท้าย
ของผู้ช่วยโดยอัตโนมัติสำหรับพื้นผิว WebChat ภายใน ซึ่งตรงกับสัญญา Pi harness:
เอเจนต์ตอบกลับตามปกติ และ OpenClaw โพสต์ข้อความสุดท้ายไปยังการสนทนาต้นทาง
ตั้งค่า messages.visibleReplies: "message_tool" เพื่อเก็บข้อความสุดท้ายของผู้ช่วยเป็นส่วนตัว เว้นแต่
เอเจนต์จะเรียก message(action="send")
เทิร์น Heartbeat ของ Codex จะได้รับ heartbeat_respond ในแค็ตตาล็อกเครื่องมือ OpenClaw
ที่ค้นหาได้เป็นค่าเริ่มต้น เพื่อให้เอเจนต์บันทึกได้ว่าการปลุกควรเงียบไว้หรือแจ้งเตือน
คำแนะนำการริเริ่ม Heartbeat จะถูกส่งเป็นคำสั่งนักพัฒนาในโหมดการทำงานร่วมกันของ Codex
ที่มีขอบเขตเฉพาะเทิร์น Heartbeat ส่วนเทิร์นแชตปกติยังคงอยู่ในโหมด Codex Default
เมื่อ HEARTBEAT.md ไม่ว่างเปล่า คำสั่ง Heartbeat จะชี้ Codex ไปยังไฟล์
แทนการแทรกเนื้อหาของไฟล์โดยตรง
ขอบเขตฮุก
| ชั้น | เจ้าของ | วัตถุประสงค์ |
|---|---|---|
| ฮุก Plugin ของ OpenClaw | OpenClaw | ความเข้ากันได้ของผลิตภัณฑ์/Plugin ระหว่าง OpenClaw และ Codex harness |
| มิดเดิลแวร์ส่วนขยาย Codex app-server | Plugin ที่รวมมากับ OpenClaw | พฤติกรรมอะแดปเตอร์รายเทิร์นรอบเครื่องมือไดนามิกของ OpenClaw |
| ฮุกเนทีฟของ Codex | Codex | วงจรชีวิต Codex ระดับล่างและนโยบายเครื่องมือเนทีฟจากการกำหนดค่า Codex |
OpenClaw ไม่ใช้ไฟล์ hooks.json ของ Codex ระดับโปรเจกต์หรือส่วนกลางเพื่อกำหนด
เส้นทางพฤติกรรม Plugin สำหรับบริดจ์เครื่องมือเนทีฟและสิทธิ์ OpenClaw จะแทรก
การกำหนดค่า Codex รายเธรดสำหรับ PreToolUse, PostToolUse,
PermissionRequest และ Stop
เมื่อเปิดใช้การอนุมัติของ Codex app-server (approvalPolicy ไม่ใช่
"never") การกำหนดค่าฮุกเนทีฟเริ่มต้นที่แทรกจะละเว้น PermissionRequest
เพื่อให้ผู้ตรวจสอบ app-server ของ Codex และบริดจ์การอนุมัติของ OpenClaw จัดการ
การยกระดับจริงหลังการตรวจสอบ เพิ่ม permission_request ไปยัง
nativeHookRelay.events เพื่อบังคับใช้รีเลย์ความเข้ากันได้ต่อไป ฮุกอื่นของ Codex
เช่น SessionStart และ UserPromptSubmit ยังคงเป็นตัวควบคุมระดับ Codex
โดยจะไม่ถูกเปิดเผยเป็นฮุก Plugin ของ OpenClaw ในสัญญา v1
สำหรับเครื่องมือไดนามิกของ OpenClaw นั้น OpenClaw จะดำเนินการเครื่องมือหลังจาก Codex ขอให้เรียก ดังนั้นพฤติกรรม Plugin และมิดเดิลแวร์จึงทำงานในอะแดปเตอร์ harness สำหรับเครื่องมือเนทีฟของ Codex นั้น Codex เป็นเจ้าของระเบียนเครื่องมือมาตรฐาน OpenClaw สามารถมิเรอร์เหตุการณ์ที่เลือกได้ แต่ไม่สามารถเขียนเธรดเนทีฟใหม่ได้ เว้นแต่ Codex จะเปิดเผยความสามารถนั้นผ่าน app-server หรือคอลแบ็กฮุกเนทีฟ
เหตุการณ์ PreToolUse ในโหมดรายงานของ Codex app-server จะเลื่อนการอนุมัติ
Plugin ไปยังการอนุมัติ app-server ที่ตรงกัน หากฮุก before_tool_call ของ OpenClaw
ส่งคืน requireApproval ขณะที่เพย์โหลดเนทีฟตั้งค่า openclaw_approval_mode: "report"
รีเลย์ฮุกเนทีฟจะบันทึกข้อกำหนดการอนุมัติ Plugin และไม่ส่งคืนการตัดสินใจแบบเนทีฟ
เมื่อ Codex ส่งคำขออนุมัติ app-server สำหรับการใช้เครื่องมือเดียวกันในภายหลัง
OpenClaw จะเปิดพรอมต์การอนุมัติ Plugin และแมปการตัดสินใจกลับไปยัง Codex
เหตุการณ์ PermissionRequest ของ Codex เป็นเส้นทางการอนุมัติที่แยกต่างหาก
และยังคงกำหนดเส้นทางผ่านการอนุมัติของ OpenClaw ได้เมื่อกำหนดค่าไว้สำหรับบริดจ์นั้น
การแจ้งเตือนรายการของ Codex app-server ยังให้การสังเกตการณ์ after_tool_call
แบบอะซิงโครนัสสำหรับการเสร็จสิ้นของเครื่องมือเนทีฟที่ยังไม่ได้ครอบคลุมโดยรีเลย์
PostToolUse แบบเนทีฟ รายการเหล่านี้มีไว้สำหรับเทเลเมทรี/ความเข้ากันได้เท่านั้น
โดยไม่สามารถบล็อก หน่วงเวลา หรือเปลี่ยนแปลงการเรียกเครื่องมือเนทีฟได้
การฉาย Compaction และวงจรชีวิต LLM มาจากการแจ้งเตือนของ Codex app-server
และสถานะอะแดปเตอร์ OpenClaw ไม่ใช่คำสั่งฮุกเนทีฟของ Codex
before_compaction, after_compaction, llm_input และ llm_output
เป็นการสังเกตการณ์ระดับอะแดปเตอร์ ไม่ใช่การจับเพย์โหลดคำขอหรือ Compaction ภายใน
ของ Codex แบบไบต์ต่อไบต์
การแจ้งเตือน app-server hook/started และ hook/completed แบบเนทีฟของ Codex
จะถูกฉายเป็นเหตุการณ์เอเจนต์ codex_app_server.hook สำหรับวิถีการทำงานและการดีบัก
โดยจะไม่เรียกใช้ฮุก Plugin ของ OpenClaw
สัญญาการรองรับ V1
รองรับในรันไทม์ Codex v1:
| พื้นผิว | การรองรับ | เหตุผล |
|---|---|---|
| ลูปโมเดล OpenAI ผ่าน Codex | รองรับ | app-server ของ Codex เป็นเจ้าของรอบการทำงานของ OpenAI การดำเนินเธรดต่อแบบเนทีฟ และการดำเนินเครื่องมือต่อแบบเนทีฟ |
| การกำหนดเส้นทางและการส่งมอบของช่องทาง OpenClaw | รองรับ | Telegram, Discord, Slack, WhatsApp, iMessage และช่องทางอื่น ๆ ยังคงอยู่นอกรันไทม์ของโมเดล |
| เครื่องมือแบบไดนามิกของ OpenClaw | รองรับ | Codex ขอให้ OpenClaw เรียกใช้เครื่องมือเหล่านี้ ดังนั้น OpenClaw จึงยังคงอยู่ในเส้นทางการดำเนินงาน |
| Plugin สำหรับพรอมป์และบริบท | รองรับ | OpenClaw ฉายพรอมป์/บริบทเฉพาะของ OpenClaw เข้าไปในรอบการทำงานของ Codex ขณะเดียวกันก็ปล่อยให้พรอมป์ฐาน พรอมป์โมเดล และพรอมป์เอกสารโปรเจกต์ที่กำหนดค่าไว้ซึ่ง Codex เป็นเจ้าของ อยู่ในเส้นทางเนทีฟของ Codex OpenClaw ปิดใช้งานบุคลิกภาพในตัวของ Codex สำหรับเธรดเนทีฟ เพื่อให้ไฟล์บุคลิกภาพในพื้นที่ทำงานของเอเจนต์ยังคงเป็นแหล่งอ้างอิงหลัก คำสั่งสำหรับนักพัฒนาแบบเนทีฟของ Codex ยอมรับเฉพาะคำแนะนำเกี่ยวกับคำสั่งที่กำหนดขอบเขตไว้อย่างชัดเจนให้กับ codex_app_server; คำแนะนำคำสั่งส่วนกลางแบบเดิมยังคงใช้กับพื้นผิวพรอมป์ที่ไม่ใช่ Codex |
| วงจรชีวิตของเอนจินบริบท | รองรับ | การประกอบ การนำเข้า และการบำรุงรักษาหลังจบรอบจะทำงานครอบรอบการทำงานของ Codex เอนจินบริบทไม่แทนที่ Compaction แบบเนทีฟของ Codex |
| ฮุกเครื่องมือแบบไดนามิก | รองรับ | before_tool_call, after_tool_call และมิดเดิลแวร์ผลลัพธ์ของเครื่องมือทำงานครอบเครื่องมือแบบไดนามิกที่ OpenClaw เป็นเจ้าของ |
| ฮุกวงจรชีวิต | รองรับในฐานะข้อสังเกตของอะแดปเตอร์ | llm_input, llm_output, agent_end, before_compaction และ after_compaction ทำงานพร้อมเพย์โหลดโหมด Codex ที่ตรงตามความเป็นจริง |
| เกตแก้ไขคำตอบสุดท้าย | รองรับผ่านการรีเลย์ฮุกแบบเนทีฟ | Stop ของ Codex ถูกรีเลย์ไปยัง before_agent_finalize; revise ขอให้ Codex ประมวลผลโมเดลเพิ่มอีกหนึ่งรอบก่อนสรุปผล |
| บล็อกหรือสังเกตเชลล์ แพตช์ และ MCP แบบเนทีฟ | รองรับผ่านการรีเลย์ฮุกแบบเนทีฟ | PreToolUse และ PostToolUse ของ Codex ถูกรีเลย์สำหรับพื้นผิวเครื่องมือแบบเนทีฟที่คอมมิตแล้ว รวมถึงเพย์โหลด MCP บน 0.142.0 ของ app-server Codex หรือใหม่กว่า รองรับการบล็อก แต่ไม่รองรับการเขียนอาร์กิวเมนต์ใหม่ |
| นโยบายสิทธิ์แบบเนทีฟ | รองรับผ่านการอนุมัติของ app-server Codex และการรีเลย์ฮุกแบบเนทีฟเพื่อความเข้ากันได้ | คำขออนุมัติของ app-server Codex ถูกกำหนดเส้นทางผ่าน OpenClaw หลังจาก Codex ตรวจสอบแล้ว การรีเลย์ฮุกแบบเนทีฟ PermissionRequest เป็นแบบเลือกรับสำหรับโหมดการอนุมัติแบบเนทีฟ เนื่องจาก Codex ส่งฮุกนี้ก่อนการตรวจสอบของการ์เดียน |
| การบันทึกวิถีของ app-server | รองรับ | OpenClaw บันทึกคำขอที่ส่งไปยัง app-server และการแจ้งเตือนที่ได้รับจาก app-server |
สิ่งที่ไม่รองรับในรันไทม์ Codex v1:
| พื้นผิว | ขอบเขตของ V1 | แนวทางในอนาคต |
|---|---|---|
| การเปลี่ยนแปลงอาร์กิวเมนต์ของเครื่องมือแบบเนทีฟ | ฮุกก่อนเรียกเครื่องมือแบบเนทีฟของ Codex สามารถบล็อกได้ แต่ OpenClaw ไม่ได้เขียนอาร์กิวเมนต์ของเครื่องมือแบบเนทีฟของ Codex ใหม่ | ต้องมีการรองรับฮุก/สคีมาของ Codex สำหรับอินพุตเครื่องมือทดแทน |
| ประวัติทรานสคริปต์แบบเนทีฟของ Codex ที่แก้ไขได้ | Codex เป็นเจ้าของประวัติเธรดแบบเนทีฟที่เป็นแหล่งอ้างอิงหลัก OpenClaw เป็นเจ้าของสำเนาสะท้อนและสามารถฉายบริบทในอนาคตได้ แต่ไม่ควรเปลี่ยนแปลงส่วนภายในที่ไม่รองรับ | เพิ่ม API ของ app-server Codex อย่างชัดเจน หากจำเป็นต้องผ่าตัดเธรดแบบเนทีฟ |
tool_result_persist สำหรับบันทึกเครื่องมือแบบเนทีฟของ Codex |
ฮุกดังกล่าวแปลงการเขียนทรานสคริปต์ที่ OpenClaw เป็นเจ้าของ ไม่ใช่บันทึกเครื่องมือแบบเนทีฟของ Codex | สามารถสะท้อนบันทึกที่แปลงแล้วได้ แต่การเขียนแหล่งอ้างอิงหลักใหม่ต้องได้รับการรองรับจาก Codex |
| ข้อมูลเมตา Compaction แบบเนทีฟที่สมบูรณ์ | OpenClaw สามารถร้องขอ Compaction แบบเนทีฟได้ แต่ไม่ได้รับรายการสิ่งที่เก็บไว้/ตัดทิ้งที่เสถียร ผลต่างของโทเค็น สรุปการเสร็จสมบูรณ์ หรือเพย์โหลดสรุป | ต้องมีอีเวนต์ Compaction ของ Codex ที่สมบูรณ์ยิ่งขึ้น |
| การแทรกแซง Compaction | OpenClaw ไม่อนุญาตให้ Plugin หรือเอนจินบริบทคัดค้าน เขียนใหม่ หรือแทนที่ Compaction แบบเนทีฟของ Codex | เพิ่มฮุกก่อน/หลัง Compaction ของ Codex หาก Plugin จำเป็นต้องคัดค้านหรือเขียน Compaction แบบเนทีฟใหม่ |
| การบันทึกคำขอ API ของโมเดลแบบตรงกันทุกไบต์ | OpenClaw สามารถบันทึกคำขอและการแจ้งเตือนของ app-server ได้ แต่แกนหลักของ Codex สร้างคำขอ OpenAI API ขั้นสุดท้ายภายในระบบ | ต้องมีอีเวนต์ติดตามคำขอโมเดลหรือ API ดีบักของ Codex |
สิทธิ์แบบเนทีฟและการขอข้อมูลของ MCP
สำหรับ PermissionRequest OpenClaw จะส่งกลับเฉพาะการตัดสินใจอนุญาตหรือปฏิเสธอย่างชัดเจน
เมื่อนโยบายตัดสินแล้ว ผลลัพธ์ที่ไม่มีการตัดสินใจไม่ใช่การอนุญาต: Codex
จะถือว่าไม่มีการตัดสินใจจากฮุก และดำเนินต่อไปยังการ์เดียนหรือเส้นทาง
การอนุมัติของผู้ใช้ของตนเอง
โหมดการอนุมัติของ app-server Codex จะละเว้นฮุกแบบเนทีฟนี้โดยค่าเริ่มต้น ข้อนี้
มีผลเว้นแต่ permission_request จะถูกรวมไว้อย่างชัดเจนใน
nativeHookRelay.events หรือรันไทม์เพื่อความเข้ากันได้ติดตั้งฮุกดังกล่าว
เมื่อผู้ปฏิบัติงานเลือก allow-always สำหรับคำขอสิทธิ์แบบเนทีฟของ Codex
OpenClaw จะจดจำลายนิ้วมือที่ตรงกันทุกประการของอินพุต provider/session/tool/cwd
นั้นไว้ในช่วงเวลาเซสชันที่จำกัด การตัดสินใจที่จดจำไว้ถูกกำหนดให้ใช้เฉพาะเมื่อ
ตรงกันทุกประการเท่านั้น: คำสั่ง อาร์กิวเมนต์ เพย์โหลดเครื่องมือ หรือ
cwd ที่เปลี่ยนไปจะสร้างการอนุมัติใหม่
การขออนุมัติเครื่องมือ MCP ของ Codex จะถูกกำหนดเส้นทางผ่านขั้นตอน
การอนุมัติ Plugin ของ OpenClaw เมื่อ Codex ทำเครื่องหมาย _meta.codex_approval_kind
เป็น "mcp_tool_call" โดย request_user_input ของ Codex
จะลงทะเบียนคำถาม Gateway ที่เป็นกลางต่อ provider สำหรับเซสชันต้นทาง
Control UI จะแสดงการ์ดคำถาม Gateway และตัวเลือกเดียวที่ไม่เป็นความลับ
จะใช้ปุ่มช่องทางแบบมีชนิดเมื่อช่องทางรองรับ การแตะปุ่ม คำตอบจาก Control UI
และคำตอบข้อความธรรมดารายการถัดไปในคิว ล้วนแก้ไขเรคคอร์ด Gateway เดียวกัน
ก่อนที่ OpenClaw จะส่งคำตอบของ app-server กลับ การแก้ไขอัตโนมัติของ Codex
และการยกเลิกความพยายามจะจำกัดเวลารอและยกเลิกเรคคอร์ด คำถามที่เป็นความลับ
จะอยู่ในเส้นทางตอบกลับด้วยข้อความที่มีคำเตือนทั้งหมด คำขอข้อมูล MCP
ประเภทอื่นจะปฏิเสธโดยค่าเริ่มต้น
สำหรับขั้นตอนการอนุมัติ Plugin ทั่วไปที่นำพรอมป์เหล่านี้ไปใช้ โปรดดู คำขอสิทธิ์ของ Plugin
การกำกับทิศทางคิว
การกำหนดทิศทางคิวของการรันที่กำลังทำงานจะแมปกับ turn/steer ของ Codex app-server เมื่อใช้ค่าเริ่มต้น messages.queue.mode: "steer" OpenClaw จะรวมข้อความแชตในโหมดกำหนดทิศทางที่เข้ามาภายในช่วงเวลารอที่กำหนดค่าไว้ แล้วส่งเป็นคำขอ turn/steer เดียวตามลำดับที่มาถึง
รอบการรีวิว Codex และ Compaction แบบดำเนินการด้วยตนเองอาจปฏิเสธการกำหนดทิศทางในรอบเดียวกัน ในกรณีนั้น OpenClaw จะรอให้การรันที่กำลังทำงานเสร็จสิ้นก่อนเริ่มพรอมต์ ใช้ /queue followup หรือ /queue collect เมื่อต้องการให้ข้อความเข้าคิวตามค่าเริ่มต้นแทนการกำหนดทิศทาง ดูคิวการกำหนดทิศทาง
การอัปโหลดข้อเสนอแนะของ Codex
เมื่อ /diagnostics [note] ได้รับอนุมัติสำหรับเซสชันบนระบบดำเนินการ Codex แบบเนทีฟ OpenClaw จะเรียก feedback/upload ของ Codex app-server สำหรับเธรด Codex ที่เกี่ยวข้องด้วย รวมถึงบันทึกของแต่ละเธรดที่ระบุและเธรดย่อย Codex ที่สร้างขึ้นเมื่อมี
การอัปโหลดจะผ่านเส้นทางข้อเสนอแนะตามปกติของ Codex ไปยังเซิร์ฟเวอร์ OpenAI หากปิดใช้งานข้อเสนอแนะของ Codex ใน app-server นั้น คำสั่งจะส่งคืนข้อผิดพลาดของ app-server การตอบกลับการวินิจฉัยที่เสร็จสมบูรณ์จะแสดงรายการช่อง รหัสเซสชัน OpenClaw รหัสเธรด Codex และคำสั่ง codex resume <thread-id> ภายในเครื่องสำหรับเธรดที่ส่งไป
หากปฏิเสธหรือเพิกเฉยต่อการอนุมัติ OpenClaw จะไม่แสดงรหัส Codex เหล่านั้นและจะไม่ส่งข้อเสนอแนะของ Codex การอัปโหลดนี้ไม่ได้แทนที่การส่งออกการวินิจฉัย Gateway ภายในเครื่อง ดูการส่งออกการวินิจฉัยสำหรับรายละเอียดเกี่ยวกับการอนุมัติ ความเป็นส่วนตัว บันเดิลภายในเครื่อง และลักษณะการทำงานของแชตกลุ่ม
ใช้ /codex diagnostics [note] เฉพาะเมื่อต้องการอัปโหลดข้อเสนอแนะของ Codex สำหรับเธรดที่แนบอยู่ในปัจจุบัน โดยไม่รวมบันเดิลการวินิจฉัย Gateway แบบเต็ม
Compaction และมิเรอร์ทรานสคริปต์
เมื่อโมเดลที่เลือกใช้ระบบดำเนินการ Codex การทำ Compaction เธรดแบบเนทีฟจะเป็นหน้าที่ของ Codex app-server OpenClaw จะไม่ทำ Compaction ก่อนเริ่มรอบสำหรับรอบ Codex ไม่แทนที่ Compaction ของ Codex ด้วย Compaction ของกลไกบริบท และไม่ย้อนกลับไปใช้การสรุปของ OpenClaw หรือ OpenAI แบบสาธารณะเมื่อไม่สามารถเริ่ม Compaction แบบเนทีฟได้ OpenClaw จะเก็บมิเรอร์ทรานสคริปต์ไว้สำหรับประวัติช่อง การค้นหา /new, /reset และการสลับโมเดลหรือระบบดำเนินการในอนาคต
คำขอ Compaction ที่ระบุอย่างชัดเจน เช่น /compact หรือการดำเนินการ Compaction แบบกำหนดเองที่ Plugin ร้องขอ จะเริ่ม Compaction แบบเนทีฟของ Codex ด้วย thread/compact/start OpenClaw จะเปิดคำขอและสัญญาเช่าไคลเอนต์ที่ใช้ร่วมกันไว้จนกว่า Codex จะปล่อยรายการเสร็จสมบูรณ์ contextCompaction ที่ตรงกัน จากนั้นจึงรายงานว่ารอบ Compaction เสร็จสมบูรณ์ หากรอบปลายทางนั้นเกินระยะหมดเวลาของ Compaction ที่กำหนดค่าไว้ OpenClaw จะร้องขอให้ขัดจังหวะรอบแบบเนทีฟ สัญญาเช่าและรั้ว Compaction ต่อเธรดจะยังคงถูกยึดไว้จนกว่า Codex จะรายงานสถานะปลายทางหรือยืนยัน RPC การขัดจังหวะ หาก Codex ไม่ยืนยันภายในช่วงผ่อนผันของการขัดจังหวะ OpenClaw จะปลดระวางการเชื่อมต่อก่อนปล่อยรั้ว การเชื่อมต่อระยะไกลจะยกเลิกการแนบการผูกเธรดที่ตรงกันด้วย เพื่อไม่ให้งานภายหลังซ้อนทับกับรอบระยะไกลที่ยังไม่ได้รับการยืนยัน รอบอื่นบนการเชื่อมต่อที่ปลดระวางแล้วจะล้มเหลวและสามารถลองใหม่บนไคลเอนต์ใหม่ได้ การปิดไคลเอนต์ การยกเลิกคำขอ หรือรอบ Compaction ที่ล้มเหลวจะส่งคืนการดำเนินการที่ล้มเหลว Compaction อัตโนมัติจากแรงกดดันของบริบทเป็นหน้าที่ของ Codex ส่วน OpenClaw จะเริ่ม Compaction แบบเนทีฟเฉพาะทริกเกอร์ที่ร้องขอด้วยตนเองเท่านั้น
เมื่อกลไกบริบทร้องขอการฉายภาพสำหรับบูตสแตรปเธรด Codex OpenClaw จะฉายชื่อและรหัสของการเรียกใช้เครื่องมือ รูปแบบอินพุต และเนื้อหาผลลัพธ์จากเครื่องมือที่ปกปิดข้อมูลแล้วไปยังเธรด Codex ใหม่ โดยจะไม่คัดลอกค่าอาร์กิวเมนต์ดิบของการเรียกใช้เครื่องมือไปยังการฉายภาพนั้น
มิเรอร์ประกอบด้วยพรอมต์ของผู้ใช้ ข้อความสุดท้ายของผู้ช่วย และระเบียนการให้เหตุผลหรือแผนแบบย่อของ Codex เมื่อ app-server ปล่อยข้อมูลเหล่านั้น OpenClaw จะบันทึกการเริ่มต้นและสถานะปลายทางของ Compaction แบบเนทีฟ แต่จะไม่เปิดเผยข้อมูลสรุป Compaction ที่มนุษย์อ่านได้ หรือรายการที่ตรวจสอบย้อนหลังได้ว่ารายการใดบ้างที่ Codex เก็บไว้หลัง Compaction
เนื่องจาก Codex เป็นเจ้าของเธรดเนทีฟที่เป็นแหล่งข้อมูลหลัก tool_result_persist จึงไม่เขียนระเบียนผลลัพธ์เครื่องมือแบบเนทีฟของ Codex ใหม่ โดยจะใช้เฉพาะเมื่อ OpenClaw เขียนผลลัพธ์เครื่องมือลงในทรานสคริปต์เซสชันที่ OpenClaw เป็นเจ้าของ
สื่อและการส่งมอบ
OpenClaw ยังคงเป็นผู้ควบคุมการส่งมอบสื่อและการเลือกผู้ให้บริการสื่อ รูปภาพ วิดีโอ เพลง PDF, TTS และการทำความเข้าใจสื่อจะใช้การตั้งค่าผู้ให้บริการ/โมเดลที่ตรงกัน เช่น agents.defaults.imageGenerationModel, videoGenerationModel, pdfModel และ messages.tts
ข้อความ รูปภาพ วิดีโอ เพลง TTS การอนุมัติ และเอาต์พุตของเครื่องมือส่งข้อความจะยังคงผ่านเส้นทางการส่งมอบตามปกติของ OpenClaw การสร้างสื่อไม่จำเป็นต้องใช้รันไทม์แบบเดิม เมื่อ Codex ปล่อยรายการสร้างรูปภาพแบบเนทีฟที่มี savedPath OpenClaw จะส่งต่อไฟล์นั้นโดยตรงผ่านเส้นทางสื่อการตอบกลับตามปกติ แม้ว่ารอบ Codex จะไม่มีข้อความของผู้ช่วยก็ตาม