Bundled plugin guides
Harness Codex
Plugin codex bawaan memungkinkan OpenClaw menjalankan giliran agen OpenAI tertanam
melalui Codex app-server, bukan melalui harness OpenClaw bawaan.
Gunakan harness Codex saat Anda ingin Codex memiliki sesi agen level rendah: resume thread native, kelanjutan alat native, compaction native, dan eksekusi app-server. OpenClaw tetap memiliki saluran chat, berkas sesi, pemilihan model, alat dinamis OpenClaw, persetujuan, pengiriman media, dan cermin transkrip yang terlihat.
Penyiapan normal menggunakan referensi model OpenAI kanonis seperti openai/gpt-5.5.
Jangan konfigurasi referensi GPT Codex lama. Letakkan urutan auth agen OpenAI
di bawah auth.order.openai; id profil auth Codex lama yang lebih lama dan
entri urutan auth Codex lama adalah status lama yang diperbaiki oleh
openclaw doctor --fix.
Saat tidak ada sandbox OpenClaw yang aktif, OpenClaw memulai thread Codex app-server
dengan mode kode native Codex diaktifkan sambil membiarkan code-mode-only nonaktif secara default.
Ini menjaga workspace native dan kapabilitas kode Codex tetap tersedia sementara
alat dinamis OpenClaw terus berjalan melalui bridge item/tool/call app-server.
Sandboxing OpenClaw aktif dan kebijakan alat terbatas menonaktifkan mode kode native
sepenuhnya kecuali Anda memilih ikut pada jalur sandbox exec-server eksperimental.
Fitur native Codex ini terpisah dari
mode kode OpenClaw, yaitu runtime QuickJS-WASI opsional
untuk run OpenClaw generik dengan bentuk input exec yang berbeda.
Untuk pemisahan model/penyedia/runtime yang lebih luas, mulai dari
Runtime agen. Versi singkatnya:
openai/gpt-5.5 adalah referensi model, codex adalah runtime, dan Telegram,
Discord, Slack, atau saluran lain tetap menjadi permukaan komunikasi.
Persyaratan
- OpenClaw dengan Plugin
codexbawaan tersedia. - Jika config Anda menggunakan
plugins.allow, sertakancodex. - Codex app-server
0.125.0atau yang lebih baru. Plugin bawaan mengelola biner Codex app-server yang kompatibel secara default, sehingga perintahcodexlokal diPATHtidak memengaruhi startup harness normal. - Auth Codex tersedia melalui
openclaw models auth login --provider openai, akun app-server di home Codex agen, atau profil auth API-key Codex eksplisit.
Untuk prioritas auth, isolasi environment, perintah app-server kustom, penemuan model, dan semua field config, lihat Referensi harness Codex.
Mulai cepat
Sebagian besar pengguna yang menginginkan Codex di OpenClaw menginginkan jalur ini: masuk dengan
langganan ChatGPT/Codex, aktifkan Plugin codex bawaan, dan gunakan
referensi model openai/gpt-* kanonis.
Masuk dengan OAuth Codex:
openclaw models auth login --provider openaiAktifkan Plugin codex bawaan dan pilih model agen OpenAI:
{ plugins: { entries: { codex: { enabled: true, }, }, }, agents: { defaults: { model: "openai/gpt-5.5", }, },}Jika config Anda menggunakan plugins.allow, tambahkan juga codex di sana:
{ plugins: { allow: ["codex"], entries: { codex: { enabled: true, }, }, },}Restart gateway setelah mengubah config Plugin. Jika chat yang sudah ada
sudah memiliki sesi, gunakan /new atau /reset sebelum menguji perubahan runtime agar giliran berikutnya
menyelesaikan harness dari config saat ini.
Bagikan thread dengan Codex Desktop dan CLI
Default appServer.homeScope: "agent" menjaga setiap agen OpenClaw tetap terisolasi
dari status native Codex milik operator. Untuk memungkinkan pemilik meminta OpenClaw memeriksa
dan mengelola thread native yang sama yang ditampilkan oleh Codex Desktop dan Codex CLI,
pilih untuk menggunakan home Codex pengguna:
{ plugins: { entries: { codex: { enabled: true, config: { appServer: { homeScope: "user", }, }, }, }, },}Mode user-home hanya tersedia dengan transport stdio lokal. Mode ini menggunakan
$CODEX_HOME saat disetel dan ~/.codex jika tidak, termasuk auth, config,
Plugin, dan penyimpanan thread native Codex milik home tersebut. OpenClaw tidak menyuntikkan
profil auth OpenClaw ke app-server ini.
Giliran pemilik mendapatkan alat codex_threads. Alat ini dapat mencantumkan, mencari, membaca, fork,
mengganti nama, mengarsipkan, dan memulihkan thread native. Minta agen untuk melakukan fork thread saat
Anda ingin melanjutkannya di OpenClaw; fork tersebut dilampirkan ke sesi
OpenClaw saat ini dan tetap terlihat oleh klien native Codex lain. Arsip
memerlukan konfirmasi eksplisit bahwa thread ditutup di tempat lain.
Jangan resume atau menulis thread yang sama secara bersamaan dari OpenClaw dan klien Codex lain. Codex mengoordinasikan penulis live di dalam satu proses app-server, bukan di seluruh proses Desktop, CLI, dan OpenClaw yang independen. Fork membuat kelanjutan terpisah dan merupakan jalur koeksistensi yang aman.
Konfigurasi
Config mulai cepat adalah config harness Codex minimum yang layak. Setel opsi harness Codex di config OpenClaw, dan gunakan CLI hanya untuk auth Codex:
| Kebutuhan | Setel | Lokasi |
|---|---|---|
| Aktifkan harness | plugins.entries.codex.enabled: true |
Config OpenClaw |
| Pertahankan instalasi Plugin allowlist | Sertakan codex di plugins.allow |
Config OpenClaw |
| Rutekan giliran agen OpenAI melalui Codex | agents.defaults.model atau agents.list[].model sebagai openai/gpt-* |
Config agen OpenClaw |
| Masuk dengan OAuth ChatGPT/Codex | openclaw models auth login --provider openai |
Profil auth CLI |
| Tambahkan cadangan API-key untuk run Codex | Profil API-key openai:* dicantumkan setelah auth langganan di auth.order.openai |
Profil auth CLI + config OpenClaw |
| Gagal tertutup saat Codex tidak tersedia | agentRuntime.id: "codex" penyedia atau model |
Config model/penyedia OpenClaw |
| Gunakan traffic API OpenAI langsung | agentRuntime.id: "openclaw" penyedia atau model dengan auth OpenAI normal |
Config model/penyedia OpenClaw |
| Sesuaikan perilaku app-server | plugins.entries.codex.config.appServer.* |
Config Plugin Codex |
| Aktifkan app Plugin native Codex | plugins.entries.codex.config.codexPlugins.* |
Config Plugin Codex |
| Aktifkan Codex Computer Use | plugins.entries.codex.config.computerUse.* |
Config Plugin Codex |
Gunakan referensi model openai/gpt-* untuk giliran agen OpenAI yang didukung Codex. Utamakan
auth.order.openai untuk urutan langganan lebih dulu/cadangan API-key. Id profil auth
Codex lama yang sudah ada dan urutan auth Codex lama adalah status lama khusus doctor;
jangan tulis referensi GPT Codex lama yang baru.
Jangan setel compaction.model atau compaction.provider pada agen yang didukung Codex.
Codex melakukan compaction melalui status thread app-server native-nya, sehingga OpenClaw mengabaikan
override peringkas lokal tersebut saat runtime dan openclaw doctor --fix menghapusnya
saat agen menggunakan Codex.
Lossless tetap didukung sebagai mesin konteks untuk assembly, ingestion, dan
maintenance di sekitar giliran Codex. Konfigurasikan melalui
plugins.slots.contextEngine: "lossless-claw" dan
plugins.entries.lossless-claw.config.summaryModel, bukan melalui
agents.defaults.compaction.provider. openclaw doctor --fix memigrasikan bentuk lama
compaction.provider: "lossless-claw" ke slot mesin konteks Lossless
saat Codex adalah runtime aktif, tetapi Codex native tetap memiliki compaction.
Harness native Codex app-server mendukung mesin konteks yang memerlukan
assembly sebelum prompt. Backend CLI generik, termasuk codex-cli, tidak menyediakan
kapabilitas host tersebut.
Untuk agen yang didukung Codex, /compact memulai compaction native Codex app-server pada
thread yang terikat. OpenClaw tidak menunggu penyelesaian, memberlakukan timeout
OpenClaw, memulai ulang app-server bersama, atau fallback ke mesin konteks atau
peringkas OpenAI publik. Jika binding thread native Codex hilang atau
stale, perintah gagal tertutup sehingga operator melihat batas runtime yang sebenarnya
alih-alih diam-diam beralih backend compaction.
{ auth: { order: { openai: ["openai:user@example.com", "openai:api-key-backup"], }, },}Dalam bentuk tersebut, kedua profil tetap berjalan melalui Codex untuk giliran agen
openai/gpt-*. API key hanya fallback auth, bukan permintaan untuk beralih ke OpenClaw atau
OpenAI Responses biasa.
Sisa halaman ini membahas varian umum yang harus dipilih pengguna: bentuk deployment, routing gagal tertutup, kebijakan persetujuan guardian, Plugin native Codex, dan Computer Use. Untuk daftar opsi lengkap, default, enum, penemuan, isolasi environment, timeout, dan field transport app-server, lihat Referensi harness Codex.
Verifikasi runtime Codex
Gunakan /status di chat tempat Anda mengharapkan Codex. Giliran agen OpenAI yang didukung Codex
menampilkan:
Runtime: OpenAI CodexLalu periksa status Codex app-server:
/codex status/codex models/codex status melaporkan konektivitas app-server, akun, rate limit, server MCP,
dan Skills. /codex models mencantumkan katalog Codex app-server live untuk
harness dan akun. Jika /status mengejutkan, lihat
Pemecahan masalah.
Routing dan pemilihan model
Pisahkan referensi penyedia dan kebijakan runtime:
- Gunakan
openai/gpt-*untuk giliran agen OpenAI melalui Codex. - Jangan gunakan referensi GPT Codex lama dalam config. Jalankan
openclaw doctor --fixuntuk memperbaiki referensi lama dan pin rute sesi yang stale. agentRuntime.id: "codex"bersifat opsional untuk mode otomatis OpenAI normal, tetapi berguna saat deployment harus gagal tertutup jika Codex tidak tersedia.agentRuntime.id: "openclaw"memilih penyedia atau model ke runtime tertanam OpenClaw saat itu disengaja./codex ...mengontrol percakapan native Codex app-server dari chat.- ACP/acpx adalah jalur harness eksternal terpisah. Gunakan hanya saat pengguna meminta ACP/acpx atau adapter harness eksternal.
Routing perintah umum:
| Niat pengguna | Gunakan |
|---|---|
| Lampirkan chat saat ini | /codex bind [--cwd <path>] |
| Lanjutkan thread Codex yang sudah ada | /codex resume <thread-id> |
| Cantumkan atau filter thread Codex | /codex threads [filter] |
| Cantumkan plugin Codex native | /codex plugins list |
| Aktifkan atau nonaktifkan plugin Codex native yang sudah dikonfigurasi | /codex plugins enable <name>, /codex plugins disable <name> |
| Lampirkan sesi Codex CLI yang sudah ada pada node yang dipasangkan | /codex sessions --host <node> [filter], lalu /codex resume <session-id> --host <node> --bind here |
| Kirim masukan Codex saja | /codex diagnostics [note] |
| Mulai tugas ACP/acpx | Perintah sesi ACP/acpx, bukan /codex |
| Kasus penggunaan | Konfigurasi | Verifikasi | Catatan |
|---|---|---|---|
| Langganan ChatGPT/Codex dengan runtime Codex native | openai/gpt-* ditambah plugin codex yang diaktifkan |
/status menampilkan Runtime: OpenAI Codex |
Jalur yang direkomendasikan |
| Gagal tertutup jika Codex tidak tersedia | Provider atau model agentRuntime.id: "codex" |
Giliran gagal alih-alih fallback tertanam | Gunakan untuk deployment khusus Codex |
| Arahkan traffic kunci API OpenAI langsung melalui OpenClaw | Provider atau model agentRuntime.id: "openclaw" dan auth OpenAI normal |
/status menampilkan runtime OpenClaw |
Gunakan hanya jika OpenClaw memang disengaja |
| Konfigurasi legacy | referensi GPT Codex legacy | openclaw doctor --fix menulis ulangnya |
Jangan tulis konfigurasi baru dengan cara ini |
| Adapter ACP/acpx Codex | ACP sessions_spawn({ runtime: "acp" }) |
Status tugas/sesi ACP | Terpisah dari harness Codex native |
agents.defaults.imageModel mengikuti pemisahan prefiks yang sama. Gunakan openai/gpt-*
untuk rute OpenAI normal dan codex/gpt-* hanya ketika pemahaman gambar
harus berjalan melalui giliran server aplikasi Codex yang dibatasi. Jangan gunakan
referensi GPT Codex legacy; doctor menulis ulang prefiks legacy tersebut ke openai/gpt-*.
Pola deployment
Deployment Codex dasar
Gunakan konfigurasi quickstart ketika semua giliran agen OpenAI harus menggunakan Codex secara default.
{ plugins: { entries: { codex: { enabled: true, }, }, }, agents: { defaults: { model: "openai/gpt-5.5", }, },}Deployment provider campuran
Bentuk ini mempertahankan Claude sebagai agen default dan menambahkan agen Codex bernama:
{ plugins: { entries: { codex: { enabled: true, }, }, }, agents: { defaults: { model: "anthropic/claude-opus-4-6", }, list: [ { id: "main", default: true, model: "anthropic/claude-opus-4-6", }, { id: "codex", name: "Codex", model: "openai/gpt-5.5", }, ], },}Dengan konfigurasi ini, agen main menggunakan jalur provider normalnya dan agen
codex menggunakan server aplikasi Codex.
Deployment Codex gagal tertutup
Untuk giliran agen OpenAI, openai/gpt-* sudah terselesaikan ke Codex ketika
plugin bawaan tersedia. Tambahkan kebijakan runtime eksplisit ketika Anda menginginkan aturan
gagal tertutup tertulis:
{ models: { providers: { openai: { agentRuntime: { id: "codex", }, }, }, }, agents: { defaults: { model: "openai/gpt-5.5", }, }, plugins: { entries: { codex: { enabled: true, }, }, },}Dengan Codex dipaksa, OpenClaw gagal lebih awal jika plugin Codex dinonaktifkan, server aplikasi terlalu lama, atau server aplikasi tidak dapat dimulai.
Kebijakan server aplikasi
Secara default, plugin memulai biner Codex yang dikelola OpenClaw secara lokal dengan transport
stdio. Tetapkan appServer.command hanya ketika Anda memang ingin menjalankan
executable yang berbeda. Gunakan transport WebSocket hanya ketika server aplikasi sudah
berjalan di tempat lain:
{ plugins: { entries: { codex: { enabled: true, config: { appServer: { transport: "websocket", url: "ws://gateway-host:39175", authToken: "${CODEX_APP_SERVER_TOKEN}", }, }, }, }, },}Sesi server aplikasi stdio lokal secara default memakai postur operator lokal tepercaya:
approvalPolicy: "never", approvalsReviewer: "user", dan
sandbox: "danger-full-access". Jika persyaratan Codex lokal tidak mengizinkan
postur YOLO implisit tersebut, OpenClaw memilih izin guardian yang diizinkan sebagai gantinya.
Ketika sandbox OpenClaw aktif untuk sesi, OpenClaw menonaktifkan Code Mode
native Codex, server MCP pengguna, dan eksekusi plugin berbasis aplikasi untuk
giliran tersebut, alih-alih mengandalkan sandboxing sisi host Codex. Akses shell diekspos
melalui alat dinamis berbasis sandbox OpenClaw seperti sandbox_exec dan
sandbox_process ketika alat exec/proses normal tersedia.
Gunakan mode exec OpenClaw yang dinormalisasi ketika Anda menginginkan auto-review native Codex sebelum pelolosan sandbox atau izin tambahan:
{ tools: { exec: { mode: "auto", }, }, plugins: { entries: { codex: { enabled: true, }, }, },}Untuk sesi server aplikasi Codex, OpenClaw memetakan tools.exec.mode: "auto" ke persetujuan
yang ditinjau Guardian oleh Codex, biasanya
approvalPolicy: "on-request", approvalsReviewer: "auto_review", dan
sandbox: "workspace-write" ketika persyaratan lokal mengizinkan nilai tersebut.
Dalam tools.exec.mode: "auto", OpenClaw tidak mempertahankan override Codex legacy yang tidak aman
approvalPolicy: "never" atau sandbox: "danger-full-access"; gunakan
tools.exec.mode: "full" untuk postur Codex tanpa persetujuan yang disengaja. Preset legacy
plugins.entries.codex.config.appServer.mode: "guardian" masih
berfungsi, tetapi tools.exec.mode: "auto" adalah permukaan OpenClaw yang dinormalisasi.
Untuk perbandingan tingkat mode dengan persetujuan exec host dan izin ACPX, lihat Mode izin.
Untuk setiap field server aplikasi, urutan auth, isolasi lingkungan, discovery, dan perilaku timeout, lihat Referensi harness Codex.
Perintah dan diagnostik
Plugin bawaan mendaftarkan /codex sebagai perintah garis miring pada channel apa pun yang
mendukung perintah teks OpenClaw.
Eksekusi dan kontrol native memerlukan pemilik atau klien Gateway operator.admin.
Ini mencakup binding atau melanjutkan thread, mengirim atau menghentikan giliran,
mengubah model, mode cepat, atau status izin, melakukan compact atau review, dan
melepas binding. Pengirim resmi lainnya tetap memiliki perintah baca-saja untuk status,
bantuan, akun, model, thread, server MCP, skill, dan inspeksi binding.
Bentuk umum:
/codex statusmemeriksa konektivitas server aplikasi, model, akun, batas laju, server MCP, dan skills./codex modelsmencantumkan model server aplikasi Codex live./codex threads [filter]mencantumkan thread server aplikasi Codex terbaru./codex resume <thread-id>melampirkan sesi OpenClaw saat ini ke thread Codex yang sudah ada./codex compactmeminta server aplikasi Codex untuk melakukan compact pada thread yang dilampirkan./codex reviewmemulai review native Codex untuk thread yang dilampirkan./codex diagnostics [note]meminta izin sebelum mengirim masukan Codex untuk thread yang dilampirkan./codex accountmenampilkan status akun dan batas laju./codex mcpmencantumkan status server MCP server aplikasi Codex./codex skillsmencantumkan skills server aplikasi Codex.
Untuk sebagian besar laporan dukungan, mulai dengan /diagnostics [note] dalam percakapan
tempat bug terjadi. Perintah ini membuat satu laporan diagnostik Gateway dan, untuk sesi
harness Codex, meminta persetujuan untuk mengirim bundel masukan Codex yang relevan.
Lihat Ekspor diagnostik untuk model privasi dan perilaku
chat grup.
Gunakan /codex diagnostics [note] hanya ketika Anda secara khusus menginginkan unggahan
masukan Codex untuk thread yang saat ini dilampirkan tanpa bundel diagnostik Gateway
lengkap.
Inspeksi thread Codex secara lokal
Cara tercepat untuk memeriksa run Codex yang buruk sering kali adalah membuka thread Codex native secara langsung:
codex resume <thread-id>Dapatkan id thread dari balasan /diagnostics yang selesai, /codex binding, atau
/codex threads [filter].
Untuk mekanisme unggahan dan batas diagnostik tingkat runtime, lihat Runtime harness Codex.
Di home per agen default, auth dipilih dalam urutan ini:
- Profil auth OpenAI berurutan untuk agen, sebaiknya di bawah
auth.order.openai. Jalankanopenclaw doctor --fixuntuk memigrasikan id profil auth Codex legacy lama dan urutan auth Codex legacy. - Akun server aplikasi yang sudah ada di home Codex agen tersebut.
- Hanya untuk peluncuran server aplikasi stdio lokal,
CODEX_API_KEY, laluOPENAI_API_KEY, ketika tidak ada akun server aplikasi dan auth OpenAI masih diperlukan.
Ketika OpenClaw melihat profil auth Codex bergaya langganan ChatGPT, OpenClaw menghapus
CODEX_API_KEY dan OPENAI_API_KEY dari proses anak Codex yang dibuat. Itu
membuat kunci API tingkat Gateway tetap tersedia untuk embeddings atau model OpenAI langsung
tanpa membuat giliran server aplikasi Codex native tertagih melalui API secara tidak sengaja.
Profil kunci API Codex eksplisit dan fallback kunci env stdio lokal menggunakan login server aplikasi
alih-alih env proses anak yang diwarisi. Koneksi server aplikasi WebSocket
tidak menerima fallback kunci API env Gateway; gunakan profil auth eksplisit atau akun
milik server aplikasi jarak jauh.
Ketika plugin Codex native dikonfigurasi, OpenClaw memasang atau memperbarui plugin tersebut
melalui server aplikasi yang terhubung sebelum mengekspos aplikasi milik plugin ke
thread Codex. app/list tetap menjadi sumber kebenaran untuk id aplikasi,
aksesibilitas, dan metadata, tetapi OpenClaw memiliki keputusan pengaktifan per thread:
jika kebijakan mengizinkan aplikasi terdaftar yang dapat diakses, OpenClaw mengirim
thread/start.config.apps[appId].enabled = true bahkan ketika app/list saat ini
melaporkan aplikasi tersebut dinonaktifkan. Jalur ini tidak menciptakan instalasi aplikasi untuk
id yang tidak dikenal; OpenClaw hanya mengaktifkan plugin marketplace dengan plugin/install
lalu memperbarui inventaris.
Jika profil langganan mencapai batas penggunaan Codex, OpenClaw mencatat waktu reset
ketika Codex melaporkannya dan mencoba profil auth berurutan berikutnya untuk run
Codex yang sama. Ketika waktu reset berlalu, profil langganan kembali memenuhi syarat
tanpa mengubah model openai/gpt-* yang dipilih atau runtime Codex.
Untuk peluncuran app-server stdio lokal, OpenClaw menetapkan CODEX_HOME ke direktori per agen sehingga konfigurasi Codex, file auth/akun, cache/data plugin, dan status thread native tidak membaca atau menulis ~/.codex pribadi milik operator secara default. OpenClaw mempertahankan HOME proses normal; subproses yang dijalankan Codex tetap dapat menemukan konfigurasi dan token di home pengguna, dan Codex dapat menemukan entri bersama $HOME/.agents/skills dan $HOME/.agents/plugins/marketplace.json. Dengan appServer.homeScope: "user", OpenClaw sebagai gantinya menggunakan home Codex pengguna native dan akun yang sudah ada tanpa menyuntikkan profil auth OpenClaw.
Jika deployment membutuhkan isolasi lingkungan tambahan, tambahkan variabel tersebut ke appServer.clearEnv:
{ plugins: { entries: { codex: { enabled: true, config: { appServer: { clearEnv: ["CODEX_API_KEY", "OPENAI_API_KEY"], }, }, }, }, },}appServer.clearEnv hanya memengaruhi proses anak app-server Codex yang dijalankan. OpenClaw menghapus CODEX_HOME dan HOME dari daftar ini selama normalisasi peluncuran lokal: CODEX_HOME tetap diarahkan ke cakupan agen atau pengguna yang dipilih, dan HOME tetap diwariskan sehingga subproses dapat menggunakan status home pengguna normal.
Alat dinamis Codex secara default menggunakan pemuatan searchable. OpenClaw tidak mengekspos alat dinamis yang menduplikasi operasi workspace native Codex: read, write, edit, apply_patch, exec, process, dan update_plan. Sebagian besar alat integrasi OpenClaw lain seperti perpesanan, media, cron, browser, node, Gateway, dan heartbeat_respond tersedia melalui pencarian alat Codex di bawah namespace openclaw, sehingga konteks model awal lebih kecil. Pencarian web menggunakan alat hosted web_search milik Codex secara default ketika pencarian diaktifkan dan tidak ada penyedia terkelola yang dipilih. Pencarian hosted native dan alat dinamis web_search terkelola milik OpenClaw saling eksklusif sehingga pencarian terkelola tidak dapat melewati pembatasan domain native. OpenClaw menggunakan alat terkelola ketika pencarian hosted tidak tersedia, dinonaktifkan secara eksplisit, atau digantikan oleh penyedia terkelola yang dipilih. OpenClaw tetap menonaktifkan ekstensi mandiri web.run milik Codex karena traffic app-server produksi menolak namespace web yang ditentukan pengguna. tools.web.search.enabled: false menonaktifkan kedua jalur, demikian juga run khusus LLM dengan alat dinonaktifkan. Codex memperlakukan "cached" sebagai preferensi dan menyelesaikannya menjadi akses eksternal live untuk giliran app-server tanpa pembatasan. Fallback terkelola otomatis gagal tertutup ketika allowedDomains native ditetapkan sehingga allowlist tidak dapat dilewati. Perubahan kebijakan pencarian efektif yang persisten merotasi thread Codex yang terikat sebelum giliran berikutnya. Pembatasan sementara per giliran menggunakan thread terbatas sementara dan mempertahankan binding yang ada untuk dilanjutkan nanti. Balasan sumber khusus sessions_yield dan message-tool-only tetap langsung karena itu adalah kontrak kontrol giliran. sessions_spawn tetap searchable sehingga spawn_agent native milik Codex tetap menjadi permukaan subagen Codex utama, sementara delegasi OpenClaw atau ACP eksplisit tetap tersedia melalui namespace alat dinamis openclaw. Instruksi kolaborasi Heartbeat memberi tahu Codex untuk mencari heartbeat_respond sebelum mengakhiri giliran Heartbeat ketika alat tersebut belum dimuat.
Tetapkan codexDynamicToolsLoading: "direct" hanya ketika terhubung ke app-server Codex kustom yang tidak dapat mencari alat dinamis yang ditangguhkan atau ketika men-debug payload alat penuh.
Bidang plugin Codex tingkat atas yang didukung:
| Bidang | Default | Makna |
|---|---|---|
codexDynamicToolsLoading |
"searchable" |
Gunakan "direct" untuk menaruh alat dinamis OpenClaw langsung di konteks alat Codex awal. |
codexDynamicToolsExclude |
[] |
Nama alat dinamis OpenClaw tambahan yang akan dihilangkan dari giliran app-server Codex. |
codexPlugins |
dinonaktifkan | Dukungan plugin/app Codex native untuk plugin kurasi yang dimigrasikan dan dipasang dari sumber. |
Bidang appServer yang didukung:
| Bidang | Default | Makna |
|---|---|---|
transport |
"stdio" |
"stdio" menjalankan Codex; "websocket" terhubung ke url. |
homeScope |
"agent" |
"agent" mengisolasi status Codex per agen OpenClaw. "user" membagikan $CODEX_HOME native atau ~/.codex, menggunakan autentikasi native, dan mengaktifkan pengelolaan utas khusus pemilik. Cakupan pengguna memerlukan stdio. |
command |
biner Codex terkelola | Executable untuk transport stdio. Biarkan tidak disetel untuk menggunakan biner terkelola; setel hanya untuk override eksplisit. |
args |
["app-server", "--listen", "stdio://"] |
Argumen untuk transport stdio. |
url |
belum disetel | URL app-server WebSocket. |
authToken |
belum disetel | Token Bearer untuk transport WebSocket. Menerima string literal atau SecretInput seperti ${CODEX_APP_SERVER_TOKEN}. |
headers |
{} |
Header WebSocket tambahan. Nilai header menerima string literal atau nilai SecretInput, misalnya x-codex-client-session-token: "${CODEX_CLIENT_SESSION_TOKEN}". |
clearEnv |
[] |
Nama variabel lingkungan tambahan yang dihapus dari proses app-server stdio yang dijalankan setelah OpenClaw membangun lingkungan warisannya. OpenClaw mempertahankan CODEX_HOME yang dipilih dan HOME yang diwarisi untuk peluncuran lokal. |
codeModeOnly |
false |
Ikut serta ke permukaan alat khusus mode kode milik Codex. Alat dinamis OpenClaw tetap terdaftar dengan Codex sehingga panggilan tools.* bertingkat kembali melalui jembatan item/tool/call app-server. |
remoteWorkspaceRoot |
belum disetel | Root ruang kerja app-server Codex jarak jauh. Saat disetel, OpenClaw menyimpulkan root ruang kerja lokal dari ruang kerja OpenClaw yang telah di-resolve, mempertahankan sufiks cwd saat ini di bawah root jarak jauh ini, dan hanya mengirim cwd app-server final ke Codex. Jika cwd berada di luar root ruang kerja OpenClaw yang telah di-resolve, OpenClaw gagal secara tertutup alih-alih mengirim jalur lokal Gateway ke app-server jarak jauh. |
requestTimeoutMs |
60000 |
Timeout untuk panggilan control-plane app-server. |
turnCompletionIdleTimeoutMs |
60000 |
Jendela senyap setelah Codex menerima giliran atau setelah permintaan app-server bercakupan giliran saat OpenClaw menunggu turn/completed. |
postToolRawAssistantCompletionIdleTimeoutMs |
300000 |
Penjaga idle penyelesaian dan progres yang digunakan setelah serah terima alat, penyelesaian alat native, progres asisten mentah pasca-alat, penyelesaian reasoning mentah, atau progres reasoning saat OpenClaw menunggu turn/completed. Gunakan ini untuk beban kerja tepercaya atau berat ketika sintesis pasca-alat secara sah dapat tetap senyap lebih lama daripada anggaran rilis asisten akhir. |
mode |
"yolo" kecuali persyaratan Codex lokal melarang YOLO |
Preset untuk eksekusi YOLO atau yang ditinjau penjaga. Persyaratan stdio lokal yang menghilangkan approval danger-full-access, never, atau peninjau user membuat default implisit menjadi penjaga. |
approvalPolicy |
"never" atau kebijakan approval penjaga yang diizinkan |
Kebijakan approval Codex native yang dikirim ke start/resume/turn utas. Default penjaga memilih "on-request" saat diizinkan. |
sandbox |
"danger-full-access" atau sandbox penjaga yang diizinkan |
Mode sandbox Codex native yang dikirim ke start/resume utas. Default penjaga memilih "workspace-write" saat diizinkan, jika tidak "read-only". Saat sandbox OpenClaw aktif, giliran danger-full-access menggunakan Codex workspace-write dengan akses jaringan yang diturunkan dari pengaturan egress sandbox OpenClaw. |
approvalsReviewer |
"user" atau peninjau penjaga yang diizinkan |
Gunakan "auto_review" untuk membiarkan Codex meninjau prompt approval native saat diizinkan, jika tidak guardian_subagent atau user. guardian_subagent tetap menjadi alias lama. |
serviceTier |
belum disetel | Tier layanan app-server Codex opsional. "priority" mengaktifkan perutean mode cepat, "flex" meminta pemrosesan fleksibel, null menghapus override, dan "fast" lama diterima sebagai "priority". |
networkProxy |
dinonaktifkan | Ikut serta ke jaringan profil izin Codex untuk perintah app-server. OpenClaw mendefinisikan konfigurasi permissions.<profile>.network yang dipilih dan memilihnya dengan default_permissions alih-alih mengirim sandbox. |
experimental.sandboxExecServer |
false |
Keikutsertaan pratinjau yang mendaftarkan lingkungan Codex berbasis sandbox OpenClaw dengan app-server Codex 0.132.0 atau yang lebih baru sehingga eksekusi Codex native dapat berjalan di dalam sandbox OpenClaw yang aktif. |
appServer.networkProxy bersifat eksplisit karena mengubah kontrak sandbox
Codex. Saat diaktifkan, OpenClaw juga menetapkan features.network_proxy.enabled dan
default_permissions dalam konfigurasi utas Codex sehingga profil izin yang
dihasilkan dapat memulai jaringan terkelola Codex. Secara default, OpenClaw menghasilkan
nama profil openclaw-network-<fingerprint> yang tahan benturan dari isi
profil; gunakan profileName hanya saat nama lokal yang stabil diperlukan.
export default { plugins: { entries: { codex: { config: { appServer: { sandbox: "workspace-write", networkProxy: { enabled: true, domains: { "api.openai.com": "allow", "blocked.example.com": "deny", }, unixSockets: { "/tmp/proxy.sock": "allow", "/tmp/blocked.sock": "none", }, allowUpstreamProxy: true, proxyUrl: "http://127.0.0.1:3128", }, }, }, }, }, },};Jika runtime app-server normal adalah danger-full-access, mengaktifkan
networkProxy menggunakan akses filesystem bergaya workspace untuk profil izin
yang dihasilkan. Penegakan jaringan yang dikelola Codex adalah jaringan
tersandbox, sehingga profil akses penuh tidak akan melindungi lalu lintas
keluar. Entri domain menggunakan allow atau deny; entri soket Unix
menggunakan nilai Codex allow atau none.
Panggilan alat dinamis milik OpenClaw dibatasi secara independen dari
appServer.requestTimeoutMs: permintaan Codex item/tool/call menggunakan
watchdog OpenClaw 90 detik secara default. Argumen timeoutMs per panggilan
yang positif memperpanjang atau memperpendek anggaran alat spesifik tersebut.
Alat image_generate menggunakan
agents.defaults.imageGenerationModel.timeoutMs ketika panggilan alat tidak
menyediakan timeout-nya sendiri, atau default pembuatan gambar 120 detik jika
tidak. Alat image untuk pemahaman media menggunakan
tools.media.image.timeoutSeconds atau default media 60 detiknya. Untuk
pemahaman gambar, timeout tersebut berlaku pada permintaan itu sendiri dan
tidak dikurangi oleh pekerjaan persiapan sebelumnya. Anggaran alat dinamis
dibatasi hingga 600000 md. Saat timeout, OpenClaw membatalkan sinyal alat jika
didukung dan mengembalikan respons alat dinamis yang gagal ke Codex agar turn
dapat berlanjut alih-alih membiarkan sesi dalam status processing.
Watchdog ini adalah anggaran luar item/tool/call dinamis; timeout permintaan
spesifik penyedia berjalan di dalam panggilan tersebut dan mempertahankan
semantik timeout-nya sendiri.
Setelah Codex menerima sebuah turn, dan setelah OpenClaw merespons permintaan
app-server yang tercakup pada turn, harness mengharapkan Codex membuat kemajuan
turn saat ini dan akhirnya menyelesaikan turn native dengan turn/completed.
Jika app-server diam selama appServer.turnCompletionIdleTimeoutMs, OpenClaw
berupaya sebaik mungkin menginterupsi turn Codex, mencatat timeout diagnostik,
dan melepaskan lane sesi OpenClaw sehingga pesan chat lanjutan tidak mengantre
di belakang turn native yang basi. Sebagian besar notifikasi non-terminal untuk
turn yang sama menonaktifkan watchdog singkat tersebut karena Codex telah
membuktikan turn masih hidup. Handoff alat menggunakan anggaran diam pasca-alat
yang lebih panjang: setelah OpenClaw mengembalikan respons item/tool/call,
setelah item alat native seperti commandExecution selesai, setelah penyelesaian
mentah custom_tool_call_output, dan setelah kemajuan asisten mentah
pasca-alat, penyelesaian reasoning, atau kemajuan reasoning. Guard menggunakan
appServer.postToolRawAssistantCompletionIdleTimeoutMs jika dikonfigurasi dan
default ke lima menit jika tidak. Anggaran pasca-alat yang sama juga
memperpanjang watchdog kemajuan untuk jendela sintesis senyap sebelum Codex
memancarkan event turn saat ini berikutnya. Notifikasi app-server global,
seperti pembaruan batas laju, tidak mereset kemajuan turn-idle. Penyelesaian
reasoning, penyelesaian agentMessage commentary, serta kemajuan reasoning
atau asisten mentah pra-alat dapat diikuti oleh balasan final otomatis, sehingga
semuanya menggunakan guard balasan pasca-kemajuan alih-alih langsung melepas
lane sesi. Hanya item agentMessage final/non-commentary yang selesai dan
penyelesaian asisten mentah pra-alat yang mengaktifkan pelepasan output
asisten: jika Codex kemudian diam tanpa turn/completed, OpenClaw berupaya
sebaik mungkin menginterupsi turn native dan melepas lane sesi. Jika watch turn
lain memenangkan balapan pelepasan tersebut, OpenClaw masih menerima item
asisten final yang selesai setelah tidak ada permintaan native, item, atau
penyelesaian alat dinamis yang tetap aktif dan pelepasan output asisten masih
milik item selesai terbaru, tanpa penyelesaian item yang lebih baru. Ini dapat
mempertahankan jawaban final setelah pekerjaan alat selesai tanpa memutar ulang
turn. Delta asisten parsial, balasan lama yang basi, dan penyelesaian berikutnya
yang kosong tidak memenuhi syarat. Kegagalan app-server stdio yang aman untuk
diputar ulang, termasuk timeout idle penyelesaian turn tanpa bukti asisten,
alat, item aktif, atau efek samping, dicoba ulang sekali pada percobaan
app-server baru. Timeout yang tidak aman tetap memensiunkan klien app-server
yang macet dan melepas lane sesi OpenClaw. Timeout tersebut juga menghapus
binding thread native yang basi alih-alih diputar ulang secara otomatis. Timeout
completion-watch menampilkan teks timeout khusus Codex: kasus yang aman untuk
diputar ulang mengatakan respons mungkin tidak lengkap, sedangkan kasus yang
tidak aman meminta pengguna memverifikasi status saat ini sebelum mencoba ulang.
Diagnostik timeout publik menyertakan field struktural seperti metode notifikasi
app-server terakhir, id/tipe/peran item respons asisten mentah, jumlah
permintaan/item aktif, dan status watch yang aktif. Ketika notifikasi terakhir
adalah item respons asisten mentah, diagnostik juga menyertakan pratinjau teks
asisten yang dibatasi. Diagnostik tidak menyertakan prompt mentah atau konten
alat.
Override lingkungan tetap tersedia untuk pengujian lokal:
OPENCLAW_CODEX_APP_SERVER_BINOPENCLAW_CODEX_APP_SERVER_ARGSOPENCLAW_CODEX_APP_SERVER_MODE=yolo|guardianOPENCLAW_CODEX_APP_SERVER_APPROVAL_POLICYOPENCLAW_CODEX_APP_SERVER_SANDBOX
OPENCLAW_CODEX_APP_SERVER_BIN melewati biner terkelola ketika
appServer.command tidak disetel.
OPENCLAW_CODEX_APP_SERVER_GUARDIAN=1 telah dihapus. Gunakan
plugins.entries.codex.config.appServer.mode: "guardian" sebagai gantinya, atau
OPENCLAW_CODEX_APP_SERVER_MODE=guardian untuk pengujian lokal sekali pakai.
Config lebih disarankan untuk deployment yang dapat diulang karena menjaga
perilaku Plugin dalam file yang sama-sama ditinjau seperti sisa penyiapan
harness Codex.
Plugin Codex native
Dukungan Plugin Codex native menggunakan kemampuan app dan Plugin milik
app-server Codex sendiri dalam thread Codex yang sama dengan turn harness
OpenClaw. OpenClaw tidak menerjemahkan Plugin Codex menjadi alat dinamis
OpenClaw sintetis codex_plugin_*.
codexPlugins hanya memengaruhi sesi yang memilih harness Codex native. Ini
tidak berpengaruh pada run harness bawaan, run penyedia OpenAI normal, binding
percakapan ACP, atau harness lain.
Config migrasi minimal:
{ plugins: { entries: { codex: { enabled: true, config: { codexPlugins: { enabled: true, allow_destructive_actions: true, plugins: { "google-calendar": { enabled: true, marketplaceName: "openai-curated", pluginName: "google-calendar", }, }, }, }, }, }, },}Config app thread dihitung ketika OpenClaw membuat sesi harness Codex atau
mengganti binding thread Codex yang basi. Ini tidak dihitung ulang pada setiap
turn. Setelah mengubah codexPlugins, gunakan /new, /reset, atau mulai
ulang gateway agar sesi harness Codex mendatang dimulai dengan set app yang
diperbarui.
Untuk kelayakan migrasi, inventaris app, kebijakan tindakan destruktif, elisitasi, dan diagnostik Plugin native, lihat Plugin Codex native.
Akses app dan Plugin di sisi OpenAI dikendalikan oleh akun Codex yang masuk dan, untuk workspace Business dan Enterprise/Edu, kontrol app workspace. Lihat Menggunakan Codex dengan paket ChatGPT Anda untuk ikhtisar kontrol akun dan workspace OpenAI.
Penggunaan Komputer
Penggunaan Komputer dibahas dalam panduan penyiapannya sendiri: Penggunaan Komputer Codex.
Versi singkatnya: OpenClaw tidak mem-vendor app kontrol desktop atau
mengeksekusi tindakan desktop itu sendiri. OpenClaw menyiapkan app-server Codex,
memverifikasi bahwa server MCP computer-use tersedia, lalu membiarkan Codex
memiliki panggilan alat MCP native selama turn mode Codex.
Batas runtime
Harness Codex hanya mengubah eksekutor agen tertanam level rendah.
- Alat dinamis OpenClaw didukung. Codex meminta OpenClaw mengeksekusi alat tersebut, sehingga OpenClaw tetap berada dalam jalur eksekusi.
- Shell, patch, MCP, dan alat app native milik Codex dimiliki oleh Codex. OpenClaw dapat mengamati atau memblokir event native tertentu melalui relay yang didukung, tetapi tidak menulis ulang argumen alat native.
- Codex memiliki Compaction native. OpenClaw menyimpan cermin transkrip untuk
riwayat channel, pencarian,
/new,/reset, dan peralihan model atau harness di masa depan, tetapi tidak mengganti Compaction Codex dengan peringkas OpenClaw atau context-engine. - Pembuatan media, pemahaman media, TTS, persetujuan, dan output alat pesan terus melalui pengaturan penyedia/model OpenClaw yang sesuai.
tool_result_persistberlaku pada hasil alat transkrip milik OpenClaw, bukan record hasil alat native Codex.
Untuk layer hook, permukaan V1 yang didukung, penanganan izin native, pengarahan antrean, mekanisme unggah feedback Codex, dan detail Compaction, lihat Runtime harness Codex.
Pemecahan masalah
Codex tidak muncul sebagai penyedia /model normal: itu diharapkan untuk
config baru. Pilih model openai/gpt-*, aktifkan
plugins.entries.codex.enabled, dan periksa apakah plugins.allow mengecualikan
codex.
OpenClaw menggunakan harness bawaan alih-alih Codex: pastikan ref model
adalah openai/gpt-* pada penyedia OpenAI resmi dan Plugin Codex terinstal
serta aktif. Jika Anda membutuhkan bukti ketat saat pengujian, setel
agentRuntime.id: "codex" pada penyedia atau model. Runtime Codex yang dipaksa
akan gagal alih-alih fallback ke OpenClaw.
Runtime OpenAI Codex fallback ke jalur API-key: kumpulkan kutipan gateway yang disunting yang menunjukkan model, runtime, penyedia terpilih, dan kegagalan. Minta kolaborator terdampak menjalankan perintah read-only ini pada host OpenClaw mereka:
( pattern='openai/gpt-5\.[45]|openai[-]codex|agentRuntime(\.id)?|harnessRuntime|Runtime: OpenAI Codex|legacy OpenAI Codex prefix|resolveSelectedOpenAIRuntimeProvider|candidateProvider[": ]+openai|status[": ]+401|Incorrect API key|No API key|api-key path|API-key path|OAuth' if ls /tmp/openclaw/openclaw-*.log >/dev/null 2>&1; then grep -E -i -n "$pattern" /tmp/openclaw/openclaw-*.log 2>/dev/null || true else journalctl --user -u openclaw-gateway --since today --no-pager 2>/dev/null \ | grep -E -i "$pattern" || true fi) | sed -E \ -e 's/(Authorization: Bearer )[A-Za-z0-9._~+\/-]+/\1[REDACTED]/Ig' \ -e 's/(Bearer )[A-Za-z0-9._~+\/-]+/\1[REDACTED]/Ig' \ -e 's/(api[_ -]?key[=: ]+)[^ ,}"]+/\1[REDACTED]/Ig' \ -e 's/(OPENAI_API_KEY[=: ]+)[^ ,}"]+/\1[REDACTED]/Ig' \ -e 's/sk-[A-Za-z0-9_-]{12,}/sk-[REDACTED]/g' \ -e 's/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}/[EMAIL-REDACTED]/g' \ | tail -200Kutipan yang berguna biasanya menyertakan openai/gpt-5.5 atau
openai/gpt-5.4, Runtime: OpenAI Codex, agentRuntime.id atau
harnessRuntime, candidateProvider: "openai", dan hasil 401,
Incorrect API key, atau No API key. Run yang sudah diperbaiki seharusnya
menunjukkan jalur OAuth OpenAI alih-alih kegagalan API-key OpenAI biasa.
Config ref model Codex legacy masih ada: jalankan openclaw doctor --fix.
Doctor menulis ulang ref model legacy ke openai/*, menghapus pin runtime sesi
yang basi dan pin runtime seluruh agen, serta mempertahankan override profil
auth yang ada.
App-server ditolak: gunakan app-server Codex 0.125.0 atau lebih baru.
Prerelease versi sama atau versi dengan sufiks build seperti 0.125.0-alpha.2
atau 0.125.0+custom ditolak karena OpenClaw menguji lantai protokol stabil
0.125.0.
/codex status tidak dapat terhubung: periksa bahwa Plugin codex bawaan
aktif, bahwa plugins.allow menyertakannya ketika allowlist dikonfigurasi, dan
bahwa appServer.command, url, authToken, atau header kustom apa pun valid.
Discovery model lambat: turunkan
plugins.entries.codex.config.discovery.timeoutMs atau nonaktifkan discovery.
Lihat Referensi harness Codex.
Transport WebSocket langsung gagal: periksa appServer.url, authToken,
header, dan bahwa app-server jarak jauh menggunakan versi protokol app-server
Codex yang sama.
Alat shell native atau patch diblokir dengan Native hook relay unavailable:
thread Codex masih mencoba menggunakan id relay hook native yang tidak lagi
terdaftar di OpenClaw. Ini adalah masalah transport hook Codex native, bukan
kegagalan backend ACP, penyedia, GitHub, atau perintah shell. Mulai sesi baru di
chat yang terdampak dengan /new atau /reset, lalu coba lagi perintah yang
tidak berbahaya. Jika berhasil sekali tetapi panggilan alat native berikutnya
gagal lagi, perlakukan /new hanya sebagai solusi sementara: salin prompt ke
sesi baru setelah memulai ulang app-server Codex atau OpenClaw Gateway agar
thread lama dibuang dan pendaftaran hook native dibuat ulang.
Model non-Codex menggunakan harness bawaan: itu sesuai harapan kecuali
kebijakan runtime penyedia atau model merutekannya ke harness lain. Ref penyedia
non-OpenAI biasa tetap berada di jalur penyedia normalnya dalam mode auto.
Computer Use terinstal tetapi alat tidak berjalan: periksa
/codex computer-use status dari sesi baru. Jika alat melaporkan
Native hook relay unavailable, gunakan pemulihan relay hook native di atas.
Lihat Codex Computer Use.