Codex harness

Runtime harness Codex

Kontrak runtime untuk giliran harness Codex. Untuk penyiapan dan perutean, lihat harness Codex. Untuk bidang konfigurasi, lihat referensi harness Codex.

Ringkasan

Codex menangani loop model native, pelanjutan utas native, kelanjutan alat native, dan compaction native. OpenClaw menangani perutean kanal, berkas sesi, pengiriman pesan yang terlihat, alat dinamis OpenClaw, persetujuan, pengiriman media, dan cerminan transkrip di sekitar batas tersebut.

Perutean prompt mengikuti runtime yang dipilih, bukan hanya string penyedia. Giliran Codex native mendapatkan instruksi pengembang app-server Codex; rute kompatibilitas OpenClaw yang eksplisit mempertahankan prompt sistem OpenClaw normal meskipun menggunakan autentikasi atau transportasi OpenAI bercorak Codex.

OpenClaw memulai dan melanjutkan utas Codex native dengan kepribadian bawaan Codex dinonaktifkan (personality: "none") agar berkas kepribadian ruang kerja dan identitas agen OpenClaw tetap menjadi acuan utama. Selain itu, Codex native tetap mempertahankan instruksi dasar/model dan pemuatan dokumen proyek yang dikelola Codex. Proses OpenClaw ringan (misalnya cron) tetap menonaktifkan pemuatan dokumen proyek.

Instruksi pengembang OpenClaw mencakup hal-hal terkait runtime OpenClaw: pengiriman kanal sumber, alat dinamis OpenClaw, delegasi ACP, konteks adaptor, dan berkas profil ruang kerja agen aktif. Katalog Skills dan penunjuk MEMORY.md yang dirutekan melalui alat diproyeksikan sebagai instruksi pengembang kolaborasi yang cakupannya terbatas pada giliran. Ketika alat memori tidak tersedia, konten BOOTSTRAP.md aktif dan seluruh MEMORY.md sebagai gantinya dimasukkan ke konteks masukan giliran biasa.

Sebagian besar alat dinamis OpenClaw menggunakan namespace openclaw yang dapat dicari. Alat yang ditandai catalogMode: "direct-only" menggunakan openclaw_direct, yang dipertahankan Codex agar terlihat langsung oleh model sebagai DirectModelOnly, alih-alih mengeksposnya ke eksekusi Code Mode bersarang.

Pengikatan utas dan perubahan model

Ketika sesi OpenClaw dilampirkan ke utas Codex yang sudah ada, giliran berikutnya mengirimkan kembali model yang saat ini dipilih, kebijakan persetujuan, sandbox, peninjau persetujuan, dan tingkat layanan ke app-server. Peralihan dari openai/gpt-5.5 ke openai/gpt-5.2 mempertahankan pengikatan utas, tetapi meminta Codex untuk melanjutkan dengan model yang baru dipilih.

Pengikatan yang diawasi merupakan pengecualian. Pemilih model OpenClaw tetap terkunci, dan pelanjutan tidak menyertakan penggantian model maupun penyedia agar Codex memulihkan model dan penyedia tersimpan milik utas kanonis. Kontrol Codex native yang terpisah dapat mengubah pasangan tersimpan tersebut, dan snapshot awal dapat menghasilkan peringatan perbedaan model normal dari Codex; model OpenClaw luar dan rantai fallback tidak pernah menggantikan keduanya.

Pengawasan dan kelanjutan yang aman

Pengawasan Codex adalah kemampuan ikut-serta dari plugin codex yang sama. Kemampuan ini menemukan utas native melalui koneksi terpisah dan hanya memproyeksikan sesi yang tidak diarsipkan ke katalog Gateway. Tanpa pengaturan koneksi appServer yang eksplisit, koneksi tersebut menggunakan stdio rumah pengguna terkelola, sedangkan harness biasa tetap terbatas pada agen. Pembacaan daftar dan metadata bersifat pasif: tindakan tersebut tidak melanjutkan utas, mendaftarkan OpenClaw ke peristiwa langsungnya, atau menjawab permintaan persetujuannya.

Untuk sesi tersimpan atau tidak aktif pada komputer Gateway, Lanjutkan sebagai cabang membuat Chat normal yang modelnya terkunci dan mencerminkan riwayat pengguna serta asisten yang dibatasi hingga giliran tersimpan terminal terakhir dari sumber. Giliran Chat normal pertama memasang penangan persetujuan yang sebenarnya dan menggunakan fork native sementara untuk menyematkan snapshot tanpa penggantian model atau penyedia. Codex App Server menggunakan konfigurasi native saat ini dan mengembalikan pasangan yang dipilih; Codex mengeluarkan peringatan normalnya jika model tersebut berbeda dari model terakhir yang tercatat pada sumber. Pada koneksi pengawasan yang sama, OpenClaw memulai utas harness Codex kanonis yang bersumber dari appServer di bawah cwd dan kebijakan runtime-nya dengan tepat model dan penyedia yang dikembalikan untuk permulaan awal tersebut, menyuntikkan riwayat terlihat yang dibatasi, lalu mengarsipkan fork sementara. Sumber tidak pernah dilanjutkan. Utas kanonis memiliki seluruh permukaan alat harness OpenClaw; penalaran, panggilan alat, dan hasil alat dari sumber tidak dikloning ke dalamnya. Cakupan koneksi privat bertahan sepanjang status pengikatan tertunda dan tersimpan, sehingga setiap giliran berikutnya tetap menggunakan koneksi tersebut dengan konfigurasi autentikasi dan penyedia native. Pengawasan yang dinonaktifkan atau penyimpangan pengikatan/koneksi akan gagal secara tertutup, alih-alih beralih ke harness rumah agen biasa.

Sumber CLI atau VS Code asli tetap memenuhi syarat untuk kedua katalog. Cabang kanonis adalah utas Codex native, tetapi jenis sumbernya adalah appServer; klien native dapat memfilter jenis sumber tersebut, sehingga kemunculannya di Codex Desktop tidak dijamin.

Sumber aktif tidak dapat memulai cabang baru atau diarsipkan; Chat terawasi yang sudah ada masih dapat dibuka. notLoaded berarti aktivitas tidak diketahui, bukan tidak aktif; OpenClaw hanya mengizinkan pengarsipan untuk baris lokal idle atau notLoaded setelah konfirmasi eksplisit bahwa tidak ada pelaksana lain dan pembacaan status lokal proses yang baru. Codex menserialkan mutasi utas dalam satu proses App Server, tetapi tidak menyediakan lease eksklusif pelaksana lintas proses atau pemilik persetujuan, sehingga pembacaan tersebut tidak dapat membuktikan bahwa proses lain tidak sedang menggunakan utas. OpenClaw memblokir pemilik pengikatan aktif yang diketahui untuk target yang tepat atau turunan hasil pembuatan yang belum diarsipkan yang dikembalikan oleh kueri turunan berhalaman milik Codex. Kesalahan enumerasi, siklus, dan habisnya batas keamanan akan gagal secara tertutup. Pengarsipan native masih dapat berpacu dengan giliran baru di proses lain, sehingga konfirmasi mencakup klien yang tidak diketahui dan celah antara pembacaan status dengan pengarsipan. Chat terawasi dengan model terkunci tidak dapat dihapus selama melindungi pengikatan native.

Katalog node berpasangan tetap hanya berupa metadata dalam rilis awal. Batas pemanggilan node saat ini menggunakan pola permintaan/respons dan tidak dapat membawa peristiwa giliran berumur panjang, permintaan persetujuan, atau keluaran streaming yang diperlukan oleh pengikatan harness Codex sebenarnya. Oleh karena itu, Lanjutkan dan Arsipkan jarak jauh tetap tidak tersedia meskipun baris sedang tidak aktif.

Lihat pengawasan Codex untuk penyiapan operator dan perilaku Control UI yang terlihat.

Balasan terlihat dan heartbeat

Giliran chat langsung/sumber melalui harness Codex secara default mengirimkan balasan akhir asisten secara otomatis untuk permukaan WebChat internal, sesuai dengan kontrak harness Pi: agen membalas secara normal dan OpenClaw mengirimkan teks akhir ke percakapan sumber. Atur messages.visibleReplies: "message_tool" agar teks akhir asisten tetap privat kecuali agen memanggil message(action="send").

Giliran heartbeat Codex secara default mendapatkan heartbeat_respond dalam katalog alat OpenClaw yang dapat dicari agar agen dapat mencatat apakah pengaktifan harus tetap senyap atau mengirim notifikasi. Panduan inisiatif Heartbeat dikirim sebagai instruksi pengembang mode kolaborasi Codex yang cakupannya terbatas pada giliran heartbeat; giliran chat biasa tetap berada dalam mode Default Codex. Ketika HEARTBEAT.md tidak kosong, instruksi heartbeat mengarahkan Codex ke berkas tersebut alih-alih menyematkan isinya.

Batas hook

Lapisan Pemilik Tujuan
Hook plugin OpenClaw OpenClaw Kompatibilitas produk/plugin di seluruh harness OpenClaw dan Codex.
Middleware ekstensi app-server Codex Plugin bawaan OpenClaw Perilaku adaptor per giliran di sekitar alat dinamis OpenClaw.
Hook native Codex Codex Siklus hidup Codex tingkat rendah dan kebijakan alat native dari konfigurasi Codex.

OpenClaw tidak menggunakan berkas hooks.json Codex proyek atau global untuk merutekan perilaku plugin. Untuk jembatan alat native dan izin, OpenClaw menyuntikkan konfigurasi Codex per utas untuk PreToolUse, PostToolUse, PermissionRequest, dan Stop.

Ketika persetujuan app-server Codex diaktifkan (approvalPolicy bukan "never"), konfigurasi hook native bawaan yang disuntikkan tidak menyertakan PermissionRequest agar peninjau app-server Codex dan jembatan persetujuan OpenClaw menangani eskalasi nyata setelah peninjauan. Tambahkan permission_request ke nativeHookRelay.events untuk tetap memaksa relai kompatibilitas. Hook Codex lainnya seperti SessionStart dan UserPromptSubmit tetap menjadi kontrol tingkat Codex; keduanya tidak diekspos sebagai hook plugin OpenClaw dalam kontrak v1.

Untuk alat dinamis OpenClaw, OpenClaw mengeksekusi alat setelah Codex meminta panggilan, sehingga perilaku plugin dan middleware berjalan dalam adaptor harness. Untuk alat native Codex, Codex memiliki catatan alat kanonis; OpenClaw dapat mencerminkan peristiwa tertentu, tetapi tidak dapat menulis ulang utas native kecuali Codex mengeksposnya melalui app-server atau callback hook native.

Peristiwa PreToolUse mode laporan app-server Codex menunda persetujuan plugin hingga persetujuan app-server yang sesuai. Jika hook before_tool_call OpenClaw mengembalikan requireApproval sementara payload native menetapkan openclaw_approval_mode: "report", relai hook native mencatat persyaratan persetujuan plugin dan tidak mengembalikan keputusan native. Ketika Codex kemudian mengirimkan permintaan persetujuan app-server untuk penggunaan alat yang sama, OpenClaw membuka prompt persetujuan plugin dan memetakan keputusan kembali ke Codex. Peristiwa PermissionRequest Codex merupakan jalur persetujuan terpisah dan masih dapat dirutekan melalui persetujuan OpenClaw ketika dikonfigurasi untuk jembatan tersebut.

Notifikasi item app-server Codex juga menyediakan pengamatan after_tool_call asinkron untuk penyelesaian alat native yang belum dicakup oleh relai native PostToolUse. Ini hanya untuk telemetri/kompatibilitas; pengamatan tersebut tidak dapat memblokir, menunda, atau memutasi panggilan alat native.

Proyeksi Compaction dan siklus hidup LLM berasal dari notifikasi app-server Codex serta status adaptor OpenClaw, bukan perintah hook native Codex. before_compaction, after_compaction, llm_input, dan llm_output adalah pengamatan tingkat adaptor, bukan tangkapan byte demi byte dari permintaan internal atau payload compaction Codex.

Notifikasi app-server hook/started dan hook/completed native Codex diproyeksikan sebagai peristiwa agen codex_app_server.hook untuk lintasan dan debugging. Notifikasi tersebut tidak memanggil hook plugin OpenClaw.

Kontrak dukungan V1

Didukung dalam runtime Codex v1:

Permukaan Dukungan Alasan
Perulangan model OpenAI melalui Codex Didukung app-server Codex menangani giliran OpenAI, pelanjutan utas native, dan kelanjutan alat native.
Perutean dan pengiriman kanal OpenClaw Didukung Telegram, Discord, Slack, WhatsApp, iMessage, dan kanal lainnya tetap berada di luar runtime model.
Alat dinamis OpenClaw Didukung Codex meminta OpenClaw menjalankan alat-alat ini, sehingga OpenClaw tetap berada dalam jalur eksekusi.
Plugin prompt dan konteks Didukung OpenClaw memproyeksikan prompt/konteks khusus OpenClaw ke dalam giliran Codex, sementara prompt dasar, model, dan dokumen proyek terkonfigurasi milik Codex tetap berada di jalur native Codex. OpenClaw menonaktifkan kepribadian bawaan Codex untuk utas native agar berkas kepribadian ruang kerja agen tetap menjadi acuan utama. Instruksi pengembang native Codex hanya menerima panduan perintah yang secara eksplisit dicakupkan ke codex_app_server; petunjuk perintah global lama tetap berlaku untuk permukaan prompt non-Codex.
Siklus hidup mesin konteks Didukung Perakitan, penyerapan, dan pemeliharaan setelah giliran dijalankan di sekitar giliran Codex. Mesin konteks tidak menggantikan Compaction native Codex.
Hook alat dinamis Didukung Middleware before_tool_call, after_tool_call, dan hasil alat dijalankan di sekitar alat dinamis milik OpenClaw.
Hook siklus hidup Didukung sebagai pengamatan adaptor llm_input, llm_output, agent_end, before_compaction, dan after_compaction dipicu dengan payload mode Codex yang sesuai dengan keadaan sebenarnya.
Gerbang revisi jawaban akhir Didukung melalui relai hook native Stop Codex direlai ke before_agent_finalize; revise meminta Codex melakukan satu lintasan model lagi sebelum finalisasi.
Pemblokiran atau pengamatan shell, patch, dan MCP native Didukung melalui relai hook native PreToolUse dan PostToolUse Codex direlai untuk permukaan alat native yang telah dikomit, termasuk payload MCP pada app-server Codex 0.142.0 atau yang lebih baru. Pemblokiran didukung; penulisan ulang argumen tidak didukung.
Kebijakan izin native Didukung melalui persetujuan app-server Codex dan relai hook native kompatibilitas Permintaan persetujuan app-server Codex dirutekan melalui OpenClaw setelah peninjauan Codex. Relai hook native PermissionRequest bersifat opsional untuk mode persetujuan native karena Codex memancarkannya sebelum peninjauan guardian.
Perekaman trajektori app-server Didukung OpenClaw merekam permintaan yang dikirimnya ke app-server dan notifikasi app-server yang diterimanya.

Tidak didukung dalam runtime Codex v1:

Permukaan Batasan V1 Jalur mendatang
Mutasi argumen alat native Hook sebelum alat native Codex dapat memblokir, tetapi OpenClaw tidak menulis ulang argumen alat native Codex. Memerlukan dukungan hook/skema Codex untuk masukan alat pengganti.
Riwayat transkrip native Codex yang dapat diedit Codex memiliki riwayat utas native kanonis. OpenClaw memiliki cerminan dan dapat memproyeksikan konteks mendatang, tetapi tidak boleh memutasi bagian internal yang tidak didukung. Tambahkan API app-server Codex eksplisit jika pembedahan utas native diperlukan.
tool_result_persist untuk catatan alat native Codex Hook tersebut mentransformasi penulisan transkrip milik OpenClaw, bukan catatan alat native Codex. Catatan yang ditransformasi dapat dicerminkan, tetapi penulisan ulang kanonis memerlukan dukungan Codex.
Metadata Compaction native yang lengkap OpenClaw dapat meminta Compaction native, tetapi tidak menerima daftar stabil item yang dipertahankan/dibuang, delta token, ringkasan penyelesaian, atau payload ringkasan. Memerlukan peristiwa Compaction Codex yang lebih lengkap.
Intervensi Compaction OpenClaw tidak mengizinkan Plugin atau mesin konteks memveto, menulis ulang, atau menggantikan Compaction native Codex. Tambahkan hook sebelum/sesudah Compaction Codex jika Plugin perlu memveto atau menulis ulang Compaction native.
Perekaman permintaan API model byte demi byte OpenClaw dapat merekam permintaan dan notifikasi app-server, tetapi inti Codex membangun permintaan API OpenAI akhir secara internal. Memerlukan peristiwa pelacakan permintaan model Codex atau API debug.

Izin native dan permintaan elisitasi MCP

Untuk PermissionRequest, OpenClaw hanya mengembalikan keputusan izinkan atau tolak secara eksplisit ketika kebijakan telah memutuskan. Hasil tanpa keputusan bukanlah izin: Codex memperlakukannya sebagai tidak adanya keputusan hook dan meneruskannya ke jalur persetujuan guardian atau pengguna miliknya sendiri.

Mode persetujuan app-server Codex secara bawaan tidak menyertakan hook native ini. Hal ini berlaku kecuali permission_request secara eksplisit disertakan dalam nativeHookRelay.events atau runtime kompatibilitas memasangnya.

Ketika operator memilih allow-always untuk permintaan izin native Codex, OpenClaw mengingat sidik jari persis dari penyedia/sesi/masukan alat/cwd tersebut untuk jangka waktu sesi yang terbatas. Keputusan yang diingat sengaja hanya berlaku untuk kecocokan persis: perubahan perintah, argumen, payload alat, atau cwd akan membuat persetujuan baru.

Permintaan elisitasi persetujuan alat MCP Codex dirutekan melalui alur persetujuan Plugin OpenClaw ketika Codex menandai _meta.codex_approval_kind sebagai "mcp_tool_call". Prompt request_user_input Codex dikirim kembali ke percakapan asal, dan pesan tindak lanjut berikutnya dalam antrean akan menjawab permintaan server native tersebut alih-alih diarahkan sebagai konteks tambahan. Permintaan elisitasi MCP lainnya ditolak secara aman.

Untuk alur persetujuan Plugin umum yang membawa prompt ini, lihat Permintaan izin Plugin.

Pengarahan antrean

Pengarahan antrean proses aktif dipetakan ke turn/steer app-server Codex. Dengan messages.queue.mode: "steer" bawaan, OpenClaw mengelompokkan pesan percakapan mode pengarahan selama periode tenang yang dikonfigurasi dan mengirimkannya sebagai satu permintaan turn/steer sesuai urutan kedatangan.

Giliran peninjauan Codex dan Compaction manual dapat menolak pengarahan pada giliran yang sama. Dalam kasus tersebut, OpenClaw menunggu proses aktif selesai sebelum memulai prompt. Gunakan /queue followup atau /queue collect jika pesan harus masuk antrean secara default alih-alih mengarahkan. Lihat Antrean pengarahan.

Pengunggahan umpan balik Codex

Ketika /diagnostics [note] disetujui untuk suatu sesi pada harness Codex native, OpenClaw juga memanggil feedback/upload dari app-server Codex untuk utas Codex yang relevan, termasuk log untuk setiap utas yang tercantum dan subutas Codex yang dibuat jika tersedia.

Pengunggahan dilakukan melalui jalur umpan balik normal Codex ke server OpenAI. Jika umpan balik Codex dinonaktifkan di app-server tersebut, perintah akan mengembalikan kesalahan app-server. Balasan diagnostik yang selesai mencantumkan kanal, id sesi OpenClaw, id utas Codex, dan perintah lokal codex resume <thread-id> untuk utas yang dikirim.

Jika Anda menolak atau mengabaikan persetujuan, OpenClaw tidak mencetak id Codex tersebut dan tidak mengirim umpan balik Codex. Pengunggahan ini tidak menggantikan ekspor diagnostik Gateway lokal. Lihat Ekspor diagnostik untuk perilaku persetujuan, privasi, bundel lokal, dan percakapan grup.

Gunakan /codex diagnostics [note] hanya jika Anda menginginkan pengunggahan umpan balik Codex untuk utas yang saat ini terlampir tanpa bundel diagnostik Gateway lengkap.

Compaction dan cermin transkrip

Ketika model yang dipilih menggunakan harness Codex, Compaction utas native merupakan tanggung jawab app-server Codex. OpenClaw tidak menjalankan Compaction prapemeriksaan untuk giliran Codex, mengganti Compaction Codex dengan Compaction mesin konteks, atau melakukan fallback ke peringkasan OpenClaw atau OpenAI publik ketika Compaction native tidak dapat dimulai. OpenClaw menyimpan cermin transkrip untuk riwayat kanal, pencarian, /new, /reset, serta peralihan model atau harness pada masa mendatang.

Permintaan Compaction eksplisit, seperti /compact atau operasi Compaction manual yang diminta Plugin, memulai Compaction Codex native dengan thread/compact/start. OpenClaw mempertahankan permintaan dan sewa klien bersama tetap terbuka hingga Codex memancarkan item penyelesaian contextCompaction yang sesuai, lalu melaporkan giliran Compaction sebagai selesai. Jika giliran terminal tersebut melampaui batas waktu Compaction yang dikonfigurasi, OpenClaw meminta interupsi giliran native. Sewa dan pembatas Compaction per utas tetap ditahan hingga Codex melaporkan status terminal atau mengonfirmasi RPC interupsi. Jika Codex tidak mengonfirmasi dalam masa tenggang interupsi, OpenClaw menghentikan koneksi sebelum melepaskan pembatas. Koneksi jarak jauh juga melepaskan pengikatan utas yang sesuai agar pekerjaan berikutnya tidak dapat bertumpang tindih dengan giliran jarak jauh yang belum dikonfirmasi. Giliran lain pada koneksi yang dihentikan akan gagal dan dapat dicoba lagi pada klien baru. Penutupan klien, pembatalan permintaan, atau giliran Compaction yang gagal akan menghasilkan operasi gagal. Compaction otomatis akibat tekanan konteks merupakan tugas Codex; OpenClaw hanya memulai Compaction native untuk pemicu yang diminta secara manual.

Ketika mesin konteks meminta proyeksi bootstrap utas Codex, OpenClaw memproyeksikan nama dan id pemanggilan alat, bentuk input, serta konten hasil alat yang disunting ke utas Codex baru. OpenClaw tidak menyalin nilai argumen mentah pemanggilan alat ke dalam proyeksi tersebut.

Cermin tersebut mencakup prompt pengguna, teks akhir asisten, serta catatan penalaran atau rencana Codex yang ringan ketika app-server memancarkannya. OpenClaw mencatat awal dan status terminal Compaction native, tetapi tidak menampilkan ringkasan Compaction yang dapat dibaca manusia atau daftar yang dapat diaudit mengenai entri yang dipertahankan Codex setelah Compaction.

Karena Codex memiliki utas native kanonis, tool_result_persist tidak menulis ulang catatan hasil alat native Codex. Pengaturan ini hanya berlaku ketika OpenClaw menulis hasil alat transkrip sesi yang dimiliki OpenClaw.

Media dan pengiriman

OpenClaw tetap mengelola pengiriman media dan pemilihan penyedia media. Gambar, video, musik, PDF, TTS, dan pemahaman media menggunakan pengaturan penyedia/model yang sesuai seperti agents.defaults.imageGenerationModel, videoGenerationModel, pdfModel, dan messages.tts.

Teks, gambar, video, musik, TTS, persetujuan, dan output alat perpesanan tetap dikirim melalui jalur pengiriman OpenClaw normal; pembuatan media tidak memerlukan runtime lama. Ketika Codex memancarkan item pembuatan gambar native dengan savedPath, OpenClaw meneruskan berkas tersebut persis melalui jalur media balasan normal meskipun giliran Codex tidak memiliki teks asisten.

Terkait

Was this useful?
On this page

On this page