Persyaratan kompatibilitas gateway
Gateway Codex harus mempertahankan perilaku Responses API yang dijelaskan di sini: endpoint, streaming, kelanjutan percakapan, pemanggilan alat, autentikasi, perutean, dan kesalahan yang informatif.
Permintaan dan endpoint
Konfigurasikan penyedia gateway dengan wire_api = "responses". Untuk URL dasar seperti
https://gateway.example.com/v1, gateway harus menerima
POST /v1/responses dan mempertahankan field permintaan serta respons yang digunakan klien.
Endpoint Chat Completions atau Anthropic Messages yang berfungsi tidak membuktikan
kompatibilitas Responses.
Endpoint pemeriksaan kesehatan dan daftar model merupakan sarana operasional opsional. Endpoint tersebut tidak menguji percakapan Codex atau membuktikan dukungan alat.
Streaming
Teruskan server-sent events (SSE) secara inkremental alih-alih menyangga seluruh
jawaban. Pertahankan jenis peristiwa dan payload, termasuk peristiwa penutup
response.completed yang menandakan keberhasilan. Teruskan peristiwa kesalahan dan kegagalan agar klien dapat
membedakan respons yang gagal dari koneksi yang terhenti.
Verifikasi seluruh aliran melalui penyeimbang beban dan reverse proxy serta gateway. Balasan teks tanpa aliran yang selesai tidaklah cukup.
Kelanjutan percakapan
Pertahankan input percakapan yang dikirim ulang pada giliran lanjutan. Gateway harus menerima pesan, pemanggilan alat, dan hasil alat sebelumnya yang diperlukan untuk giliran berikutnya.
Jika Anda mengaktifkan WebSocket atau transport inkremental, verifikasi juga perilaku
previous_response_id. Jalur HTTP Responses tanpa status dapat menggunakan
input yang dikirim ulang tanpa memerlukan mekanisme kelanjutan tersebut.
Alat
Pertahankan item pemanggilan fungsi dan item function_call_output yang sesuai,
termasuk pengidentifikasi yang menghubungkan pemanggilan dengan hasilnya. Seluruh siklus harus
berfungsi: Codex menerima pemanggilan, menjalankan alat, mengirimkan hasilnya, dan menerima
jawaban akhir.
Permintaan teks yang berhasil tidak memverifikasi siklus ini. Uji model dan fitur klien yang benar-benar akan Anda aktifkan. Gateway yang menerima suatu field permintaan tidak membuktikan bahwa model upstream-nya mengimplementasikan kemampuan yang sesuai.
Autentikasi dan header
Dukung mekanisme autentikasi klien yang dipilih untuk penerapan:
env_key atau token bearer berbasis perintah, atau env_http_headers untuk kredensial
yang dikirim dalam header kustom. Gunakan variabel lingkungan untuk nilai header rahasia;
jangan menuliskannya secara langsung dalam konfigurasi. Lihat
referensi penyedia kustom
untuk kontrak konfigurasi dan helper kredensial.
Autentikasi pengembang secara terpisah dari identitas penyedia upstream gateway. Simpan kunci administrator dan kredensial upstream di gateway. Pertahankan header yang diandalkan oleh perutean dan atribusi Anda, serta uji kedaluwarsa, perpanjangan, dan pencabutan kredensial.
Perutean dan metadata model
Setiap nama model yang digunakan oleh Codex harus dirutekan ke model upstream yang dituju. Verifikasi rutenya dalam catatan gateway alih-alih mengandalkan deskripsi model tentang dirinya sendiri.
Gunakan nama yang dikenali oleh versi Codex yang diterapkan, atau
sediakan katalog yang sesuai untuk alias kustom.
Tinjau juga ketersediaan model dan metadata migrasi: setiap model pengganti harus
dirutekan melalui gateway. Untuk alias milik organisasi tanpa migrasi,
atur upgrade pada entri katalognya ke null. Metadata katalog menentukan perilaku klien;
metadata tidak menambahkan kemampuan pada model
atau membuat rute gateway. Verifikasi batas konteks, opsi penalaran, dan alat
terhadap model serta penyedia upstream yang sebenarnya. Koneksi gateway generik
tidak secara otomatis menerima penyesuaian metadata yang dibuat oleh integrasi
penyedia bawaan Codex.
Nama model yang dikenali
Gunakan nama model persis seperti yang dikenali oleh versi Codex yang diterapkan sebagai alias
gateway dan model Codex. Pastikan penyedia upstream mendukung model tersebut
dan organisasi Anda menyetujuinya.
Periksa codex --version dan pilih tag rust-v<version> yang sesuai dalam katalog model Codex.
Untuk build kustom, gunakan commit sumbernya; untuk penerapan desktop, cocokkan dengan
versi CLI yang disertakan. Periksa nilai slug pada entri untuk menemukan nama yang
dikenali versi tersebut. Jika gateway mengubah kemampuan model, sediakan
metadata katalog yang mencerminkan perbedaan tersebut meskipun namanya dikenali.
Kesalahan
Pertahankan pembedaan yang berguna antara kesalahan autentikasi klien, rute model
yang tidak dikenal, batas laju, dan kegagalan upstream. Jangan menyatukan semua kegagalan menjadi
respons 500 generik. Kembalikan informasi yang cukup untuk mendiagnosis lapisan yang gagal
tanpa mengekspos token, kredensial penyedia, atau konten permintaan yang sensitif.
Batas data dan alat
Lalu lintas model mengikuti jalur ini:
Codex client -> LLM gateway -> model providerKlien mengautentikasi ke gateway menggunakan kredensial pengembang. Gateway menggunakan kredensial penyedia upstream-nya untuk mengakses model. Prompt, kutipan sumber, argumen alat, dan hasil alat yang disertakan dalam permintaan model dapat melewati gateway. Atur kontrol pencatatan log, retensi, penyamaran data, akses, dan ekspor sesuai dengan kondisi tersebut.
Gateway model tidak merutekan setiap koneksi yang dibuat oleh Codex. Perintah lokal dijalankan di lingkungan eksekusi klien. MCP server, layanan plugin, interaksi browser dan aplikasi, serta layanan lain yang diaktifkan dapat memiliki jalur jaringan dan kredensial terpisah. Konfigurasi penyedia model tidak memberikan izin tersebut atau menggantikan kontrol jaringannya. Lihat Persetujuan dan keamanan agen dan MCP untuk batas-batas tersebut.
Daftar periksa kelayakan
Catat bukti untuk setiap kombinasi klien, gateway, dan model yang diterapkan:
- Field permintaan dan respons Responses.
- Pengiriman SSE inkremental dan penyelesaian akhir yang berhasil.
- Giliran lanjutan dengan input yang dikirim ulang.
previous_response_idketika transport yang dipilih menggunakannya.- Pemanggilan fungsi, hasil yang sesuai, dan jawaban akhir.
- Perutean model yang benar dan metadata yang sesuai.
- Atribusi per pengguna, perpanjangan, dan pencabutan.
- Kesalahan autentikasi, perutean, batas laju, dan upstream yang informatif.
- Diagnostik dengan data sensitif yang disamarkan dan kebijakan pencatatan log yang dimaksud.
Gunakan prosedur pengujian peluncuran untuk mengumpulkan bukti ini sebelum mendistribusikan konfigurasi.