Cara OpenAI menggunakan Codex
Codex digunakan setiap hari di berbagai tim teknis di OpenAI seperti Security, Product Engineering, Frontend, API, Infrastructure, dan Performance Engineering. Tim-tim menggunakannya untuk mempercepat berbagai tugas engineering, mulai dari memahami sistem yang kompleks dan memfaktorkan ulang codebase besar hingga merilis fitur baru dan menangani insiden di bawah tenggat yang ketat.
Berdasarkan wawancara dengan engineer OpenAI dan data penggunaan internal, kami telah menyusun use case dan praktik terbaik yang menyoroti bagaimana Codex membantu tim kami bergerak lebih cepat, meningkatkan kualitas kerja, dan mengelola kompleksitas dalam skala besar.
Codex membantu tim kami cepat memahami bagian codebase yang belum familier saat onboarding, debugging, atau menyelidiki insiden.
Mereka sering menggunakan Codex untuk menemukan logika inti suatu fitur, memetakan hubungan antar layanan atau modul, dan melacak alur data melalui sebuah sistem. Codex juga membantu menampilkan pola arsitektur atau bagian dokumentasi yang hilang yang jika tidak akan memerlukan banyak upaya manual untuk dibuat.
Selama respons insiden, Codex membantu engineer cepat memahami area baru dengan menampilkan interaksi antar komponen atau menelusuri bagaimana status kegagalan merambat antar sistem.
Cerita dari tim kami
“Saat saya memperbaiki bug, saya memakai Ask mode untuk melihat di mana lagi masalah yang sama mungkin muncul di codebase”
Di repo ini, logika autentikasi diimplementasikan di mana?
Ringkas bagaimana request mengalir melalui layanan ini dari entrypoint hingga respons.
Modul mana yang berinteraksi dengan [insert module name] dan bagaimana kegagalan ditangani?
Codex umum digunakan untuk membuat perubahan yang mencakup banyak file atau package. Misalnya, saat engineer memperbarui API, mengubah cara sebuah pola diimplementasikan, atau bermigrasi ke dependency baru, Codex memudahkan penerapan perubahan secara konsisten.
Codex sangat berguna terutama ketika pembaruan yang sama perlu dilakukan di puluhan file, atau ketika pembaruan itu memerlukan pemahaman struktur dan dependency yang tidak mudah ditangkap dengan regex atau find-and-replace.
Mereka juga menggunakannya untuk cleanup kode dengan memecah modul yang terlalu besar, mengganti pola lama dengan yang modern, atau menyiapkan kode agar lebih mudah diuji.
Cerita dari tim kami
“Codex mengganti setiap getUserById( ) lawas dengan pola layanan baru kami dan membuka PR-nya. Dalam hitungan menit, ia melakukan apa yang biasanya butuh berjam-jam.”
Bagi file ini menjadi modul terpisah berdasarkan tanggung jawab dan buat test untuk masing-masing.
Ubah semua akses database berbasis callback menjadi async/await.
Codex digunakan untuk mengidentifikasi dan mengatasi bottleneck performa.
Selama tuning atau upaya keandalan, engineer memberi prompt ke Codex untuk menganalisis jalur kode yang lambat atau intensif memori, seperti loop yang tidak efisien, operasi redundan, atau query mahal, lalu menyarankan alternatif yang dioptimalkan, yang sering menghasilkan peningkatan berarti dalam efisiensi dan keandalan.
Codex juga digunakan untuk mendukung kesehatan kode dengan mengidentifikasi pola berisiko atau usang yang masih aktif digunakan. Tim kami mengandalkannya untuk membantu mengurangi utang teknis jangka panjang dan secara proaktif mencegah regresi.
Cerita dari tim kami
“Saya menggunakan Codex untuk memindai panggilan DB mahal yang berulang. Codex sangat bagus dalam menandai hot path dan menyusun query batch yang nanti bisa saya tuning.”
Optimalkan loop ini agar lebih efisien dalam penggunaan memori dan jelaskan mengapa versi Anda lebih cepat.
Temukan operasi mahal yang berulang dalam request handler ini dan sarankan peluang caching.
Sarankan cara yang lebih cepat untuk melakukan batch query DB dalam fungsi ini.
Codex membantu engineer menulis test lebih cepat — terutama di area yang cakupannya tipis atau sama sekali belum ada.
Saat mengerjakan perbaikan bug atau refactor, engineer sering meminta Codex menyarankan test yang mencakup edge case atau jalur kegagalan yang mungkin terjadi. Untuk kode baru, Codex dapat membuat unit test atau integration test berdasarkan signature fungsi dan logika di sekitarnya.
Codex sangat membantu untuk mengidentifikasi kondisi batas seperti input kosong, panjang maksimum, atau status yang tidak biasa tetapi valid, yang sering terlewat dalam test awal.
Cerita dari tim kami
“Saya mengarahkan Codex ke modul dengan cakupan rendah semalaman, lalu bangun dengan PR unit test yang siap dijalankan.”
Tulis unit test untuk fungsi ini, termasuk edge case dan jalur kegagalan.
Buat test berbasis properti untuk utilitas pengurutan ini.
Perluas file test ini agar mencakup skenario yang belum ada terkait input null dan status tidak valid.
Codex membantu tim bergerak lebih cepat dengan mempercepat awal maupun akhir siklus pengembangan.
Saat memulai fitur baru, engineer menggunakannya untuk membuat scaffold boilerplate — menghasilkan folder, modul, dan stub API agar kode yang bisa dijalankan cepat tersedia tanpa harus merangkai tiap bagian secara manual.
Saat proyek mendekati rilis, Codex membantu memenuhi tenggat ketat dengan menangani tugas yang lebih kecil tetapi penting seperti triage bug, mengisi celah implementasi tahap akhir, dan membuat script rollout, hook telemetry, atau file config.
Codex juga digunakan untuk mengubah umpan balik produk menjadi kode awal. Engineer sering menempelkan permintaan pengguna atau spec lalu meminta Codex membuat draf kasar yang bisa mereka buka lagi dan sempurnakan nanti.
“Saya rapat seharian dan tetap merge 4 PR karena Codex bekerja di latar belakang.”
Buat scaffold route API baru untuk POST /events dengan validasi dasar dan logging.
Buat hook telemetry untuk melacak keberhasilan/kegagalan alur onboarding baru, menggunakan template ini [insert example of your telemetry code].
Buat implementasi stub berdasarkan spec ini: [insert spec or product feedback].
Codex membantu engineer kami tetap produktif ketika jadwal mereka terpecah-pecah dan penuh gangguan.
Codex digunakan untuk menangkap pekerjaan yang belum selesai, mengubah catatan menjadi prototipe yang berfungsi, atau memisahkan tugas eksploratif yang bisa ditinjau lagi nanti. Ini memudahkan untuk berhenti dan melanjutkan kerja tanpa kehilangan konteks, terutama saat mereka sedang on-call atau punya banyak rapat.
“Kalau saya melihat drive-by fix, saya jalankan task Codex alih-alih pindah branch dan meninjau PR-nya saat saya senggang.”
Codex juga berguna untuk pekerjaan terbuka seperti mencari solusi alternatif atau memvalidasi keputusan desain. Anda bisa memberi prompt untuk berbagai cara menyelesaikan masalah, mengeksplorasi pola yang belum familier, atau menguji asumsi. Ini membantu menampilkan tradeoff, memperluas opsi desain, dan mempertajam pilihan implementasi.
Codex juga digunakan untuk mengidentifikasi bug terkait. Dengan isu yang sudah diketahui atau metode yang sudah usang, Codex dapat mengidentifikasi pola serupa di bagian lain kode, sehingga lebih mudah menangkap regresi atau menuntaskan pekerjaan cleanup.
“Codex membantu saya mengatasi masalah cold-start — saya menempelkan spec dan docs lalu ia membuat scaffold kode atau menunjukkan apa yang saya lewatkan.”
Bagaimana ini akan bekerja jika sistemnya berbasis event, bukan request/response?
Temukan semua modul yang membangun string SQL secara manual alih-alih menggunakan query builder kami.
Tulis ulang ini dengan gaya yang lebih fungsional, hindari mutasi dan efek samping.
Codex bekerja paling baik ketika diberi struktur, konteks, dan ruang untuk beriterasi. Berikut beberapa kebiasaan yang sedang dikembangkan tim OpenAI untuk mendapatkan nilai yang konsisten darinya dalam pekerjaan sehari-hari.
Untuk perubahan besar, mulailah dengan meminta Codex rencana implementasi menggunakan Ask mode, yang kemudian menjadi input untuk prompt lanjutan saat Anda beralih ke Code Mode. Alur dua langkah ini menjaga Codex tetap terarah dan membantu menghindari kesalahan dalam output-nya. Codex bekerja paling baik untuk tugas dengan cakupan jelas yang akan memakan waktu sekitar satu jam bagi Anda atau rekan tim untuk menyelesaikannya, atau beberapa ratus baris kode untuk diimplementasikan. Seiring model makin baik, perkirakan ukuran tugas yang bisa ditanganinya akan meningkat.
Menetapkan startup script, environment variable, dan akses internet secara signifikan mengurangi tingkat kesalahan Codex. Saat Anda menjalankan task, perhatikan build error yang bisa diperbaiki dalam konfigurasi environment Codex. Ini mungkin membutuhkan beberapa iterasi, tetapi memberi peningkatan efisiensi yang signifikan dalam jangka panjang.
Codex merespons lebih baik saat prompt mencerminkan cara Anda menjelaskan perubahan dalam PR atau issue. Artinya, sertakan file path, nama komponen, diff, dan cuplikan docs bila relevan. Memberi prompt dengan pola seperti “Implementasikan ini dengan cara yang sama seperti di [module X]” meningkatkan hasil.
Jalankan task untuk menangkap ide sampingan, pekerjaan parsial, atau perbaikan insidental. Tidak ada tekanan untuk menghasilkan PR lengkap dalam sekali jalan. Codex bekerja baik sebagai area staging yang bisa Anda kunjungi lagi saat fokus Anda kembali.
Pertahankan file AGENTS.md untuk membantu Codex bekerja lebih efektif di repo Anda lintas prompt. File-file ini biasanya mencakup konvensi penamaan, logika bisnis, keunikan yang sudah diketahui, atau dependency yang tidak bisa disimpulkan Codex hanya dari kode. Pelajari lebih lanjut tentang menyusun file AGENTS.md Anda di docs.
Fitur Best-of-N memungkinkan Anda secara bersamaan menghasilkan beberapa respons untuk satu task agar cepat mengeksplorasi banyak solusi dan memilih yang terbaik. Untuk task yang lebih rumit, Anda dapat meninjau beberapa iterasi dan menggabungkan bagian dari respons yang berbeda untuk mendapatkan hasil yang lebih kuat.
Codex masih dalam research preview, tetapi sekarang sudah memberi dampak nyata pada cara kami membangun, membantu kami bergerak lebih cepat, menulis kode yang lebih baik, dan mengerjakan hal-hal yang kalau tidak mungkin tidak pernah diprioritaskan.
Kami antusias dengan potensi ke depan — seiring model kami makin baik dan Codex menjadi lebih terintegrasi dalam alur kerja kami, kami menantikan terbukanya cara yang bahkan lebih kuat untuk mengembangkan software dengannya. Kami akan terus membagikan apa yang kami pelajari sepanjang perjalanan.


