Langsung ke konten utama
OpenAI

Cara OpenAI menggunakan Codex

Pengantar

Codex digunakan setiap hari di berbagai tim teknis di OpenAI seperti Keamanan, Rekayasa Produk, Frontend, API, Infrastruktur, dan Rekayasa Kinerja. Tim menggunakannya untuk mempercepat berbagai tugas rekayasa, mulai dari memahami sistem yang kompleks dan merefaktor basis kode besar hingga merilis fitur baru dan menyelesaikan insiden dengan tenggat waktu yang ketat.

Berdasarkan wawancara dengan para teknisi OpenAI dan data penggunaan internal, kami telah menyusun contoh penggunaan dan praktik terbaik yang menyoroti bagaimana Codex membantu tim kami bekerja lebih cepat, meningkatkan kualitas pekerjaan, dan mengelola kompleksitas dalam skala besar.


Kasus penggunaan 1: Pemahaman kode

Codex membantu tim kami untuk dengan cepat memahami bagian basis kode yang belum dikenal saat orientasi, debugging, atau menyelidiki insiden.

Mereka sering menggunakan Codex untuk menemukan logika inti suatu fitur, memetakan hubungan antara layanan atau modul, dan melacak aliran data dalam suatu sistem. Codex juga membantu menampilkan pola arsitektur atau bagian dokumentasi yang hilang, yang jika tidak, akan memerlukan upaya manual yang signifikan untuk dibuat.

Selama respons insiden, Codex membantu para teknisi dengan cepat memahami area baru dengan menampilkan interaksi antar komponen atau melacak bagaimana status kegagalan menyebar di seluruh sistem.

Anekdot dari tim kami

“Ketika saya memperbaiki bug, saya menggunakan 
 Mode Tanya untuk melihat di mana lagi di basis kode masalah yang sama mungkin muncul”
Teknisi Kinerja, Sistem Pengambilan Data
Cobalah menggunakan Codex untuk memahami kode dengan prompt contoh berikut:
  • Di mana logika autentikasi diimplementasikan dalam repositori ini?

  • Rangkum bagaimana alur permintaan melalui layanan ini dari titik masuk hingga respons.

  • Modul mana saja yang berinteraksi dengan [masukkan nama modul] dan bagaimana kegagalan tersebut ditangani?

Contoh penggunaan 2: Refaktorisasi dan migrasi

Codex umumnya digunakan untuk membuat perubahan yang mencakup beberapa file atau paket. Misalnya, ketika teknisi sedang memperbarui API, mengubah cara suatu pola diimplementasikan, atau bermigrasi ke dependency baru, Codex memudahkan penerapan perubahan secara konsisten.

Hal ini sangat berguna terutama ketika pembaruan yang sama perlu dilakukan di puluhan file, atau ketika pembaruan tersebut memerlukan pemahaman tentang struktur dan dependensi yang tidak mudah ditangkap dengan regex atau fitur cari dan ganti.

Mereka juga menggunakannya untuk pembersihan kode dengan memecah modul yang terlalu besar, mengganti pola lama dengan pola modern, atau menyiapkan kode agar lebih mudah diuji.

Anekdot dari tim kami

“Codex mengganti setiap getUserById( ) lama dengan pola layanan baru kami dan membuka PR. Hanya dalam hitungan menit, Codex menyelesaikan pekerjaan yang seharusnya memakan waktu berjam-jam.”
Teknisi Backend, ChatGPT Web
Cobalah menggunakan Codex untuk refaktorisasi dan migrasi dengan prompt contoh berikut:
  • Pisahkan file ini menjadi modul-modul terpisah berdasarkan tanggung jawab dan buat pengujian untuk masing-masing modul.

  • Ubah semua akses basis data berbasis callback menjadi asinkron/await.

Contoh penggunaan 3: Optimisasi Kinerja

Codex digunakan untuk mengidentifikasi dan mengatasi hambatan kinerja.

Selama upaya penyetelan atau peningkatan keandalan, para teknisi memberikan prompt kepada Codex untuk menganalisis jalur kode yang lambat atau intensif memori, seperti loop yang tidak efisien, operasi redundan, atau kueri yang mahal, serta menyarankan alternatif yang dioptimalkan, yang sering kali menghasilkan peningkatan yang berarti dalam efisiensi dan keandalan.

Codex juga digunakan untuk mendukung kesehatan kode dengan mengidentifikasi pola yang berisiko atau usang yang masih aktif digunakan. Tim kami mengandalkannya untuk membantu mengurangi utang teknis jangka panjang dan secara proaktif mencegah regresi.

Anekdot dari tim kami

“Saya menggunakan Codex untuk memindai panggilan DB berulang yang mahal. Codex sangat bagus dalam menandai jalur-jalur yang paling sering digunakan dan menyusun kueri batch yang nantinya dapat saya sesuaikan.”
Teknisi Infrastruktur, Keandalan API
Cobalah menggunakan Codex untuk optimasi kinerja dengan prompt contoh berikut:
  • Optimalkan siklus ini untuk efisiensi memori dan jelaskan mengapa versi Anda lebih cepat.

  • Temukan operasi mahal yang berulang dalam pengelola permintaan ini dan sarankan peluang caching.

  • Sarankan cara yang lebih cepat untuk melakukan kueri DB secara batch dalam fungsi ini.

Contoh penggunaan 4: Meningkatkan cakupan pengujian

Codex membantu teknisi menulis pengujian lebih cepat — terutama di area yang cakupannya masih kurang atau sama sekali tidak ada.

Saat mengerjakan perbaikan bug atau refaktor, para teknisi sering meminta Codex untuk menyarankan pengujian yang mencakup kasus batas atau jalur kegagalan yang mungkin terjadi. Untuk kode baru, Codex dapat menghasilkan pengujian unit atau integrasi berdasarkan tanda tangan 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 pengujian awal.

Anekdot dari tim kami

“Saya mengarahkan Codex ke modul dengan cakupan rendah semalaman, dan bangun pagi dengan PR pengujian unit yang siap dijalankan.”
Teknisi Frontend, ChatGPT Desktop
Cobalah menggunakan Codex untuk optimasi kinerja dengan prompt contoh berikut:
  • Tuliskan pengujian unit untuk fungsi ini, termasuk kasus tepi dan jalur kegagalan.

  • Buatlah pengujian berbasis properti untuk utilitas pengurutan ini.

  • Perluas file pengujian ini untuk mencakup skenario yang belum tercakup terkait masukan null dan status tidak valid.

Contoh penggunaan 5: Meningkatkan kecepatan pengembangan

Codex membantu tim bergerak lebih cepat dengan mempercepat awal dan akhir siklus pengembangan.

Saat memulai fitur baru, para teknisi menggunakannya untuk membangun kerangka kerja boilerplate — menghasilkan folder, modul, dan stub API untuk mendapatkan kode yang dapat dijalankan dengan cepat tanpa harus menghubungkan setiap bagiannya secara manual.

Saat proyek mendekati rilis, Codex membantu memenuhi tenggat waktu yang ketat dengan menangani tugas-tugas yang lebih kecil namun penting seperti melakukan triase bug, mengisi celah implementasi di tahap akhir, serta membuat skrip peluncuran, hook telemetri, atau file konfigurasi.

Codex juga digunakan untuk mengubah masukan produk menjadi kode awal. Teknisi sering menempelkan permintaan pengguna atau spesifikasi, lalu meminta Codex membuat draf awal yang nantinya dapat mereka kerjakan kembali dan sempurnakan.

“Saya mengikuti rapat sepanjang hari dan tetap berhasil menggabungkan 4 PR karena Codex bekerja di latar belakang.”
Teknisi Produk, ChatGPT Enterprise
Cobalah menggunakan Codex untuk meningkatkan kecepatan pengembangan dengan prompt contoh berikut:
  • Buat rute API baru untuk POST /events dengan validasi dasar dan pencatatan.

  • Buat hook telemetri untuk melacak keberhasilan/kegagalan alur onboarding baru, menggunakan templat ini [sisipkan contoh kode telemetri Anda].

  • Buat implementasi stub berdasarkan spesifikasi ini: [masukkan spesifikasi atau masukan produk].

Contoh penggunaan 6: Tetap dalam alur

Codex membantu para teknisi kami tetap produktif saat jadwal mereka terfragmentasi dan penuh gangguan.
Codex digunakan untuk mencatat pekerjaan yang belum selesai, mengubah catatan menjadi prototipe yang berfungsi, atau memisahkan tugas-tugas eksploratif yang dapat ditinjau kembali nanti. Hal ini memudahkan untuk menjeda dan melanjutkan pekerjaan tanpa kehilangan konteks, terutama saat mereka sedang bertugas atau harus menghadiri banyak rapat.

“Jika saya melihat perbaikan cepat (drive-by fix), saya langsung menjalankan tugas Codex alih-alih berpindah branch, lalu meninjau PR-nya saat saya memiliki waktu luang.”
Teknisi Backend, ChatGPT API
Cobalah menggunakan Codex agar tetap dalam alur kerja dengan prompt contoh berikut:

Contoh penggunaan 7: Eksplorasi dan pengembangan ide

Codex juga berguna untuk pekerjaan terbuka seperti menemukan solusi alternatif atau memvalidasi keputusan desain. Anda dapat memberikan prompt untuk berbagai cara menyelesaikan masalah, menjelajahi pola yang tidak dikenal, atau menguji asumsi. Ini membantu menampilkan kompromi, memperluas opsi desain, dan mempertajam pilihan implementasi.

Codex juga digunakan untuk mengidentifikasi bug terkait. Dengan adanya masalah yang diketahui atau metode yang sudah tidak digunakan lagi, Codex dapat mengidentifikasi pola serupa di bagian lain dalam kode, sehingga lebih mudah untuk mendeteksi regresi atau menyelesaikan pekerjaan pembersihan.

“Codex membantu saya mengatasi masalah cold-start — saya menempelkan spesifikasi dan dokumentasi, lalu Codex membuat kerangka kode atau menunjukkan hal yang saya lupakan.”
Teknisi Produk, ChatGPT Desktop
Cobalah menggunakan Codex untuk eksplorasi dan ideasi dengan prompt contoh berikut:
  • Bagaimana cara kerjanya jika sistem ini didorong oleh kejadian, bukan request/response?

  • Temukan semua modul yang membangun string SQL secara manual alih-alih menggunakan pembangun kueri.

  • Tulis ulang ini dengan gaya yang lebih fungsional, hindari mutasi dan efek samping.


Praktik terbaik

Codex bekerja paling baik ketika diberi struktur, konteks, dan ruang untuk melakukan iterasi. Berikut adalah beberapa kebiasaan yang sedang dikembangkan oleh tim OpenAI untuk mendapatkan manfaat yang konsisten darinya dalam pekerjaan sehari-hari.

Mulai dengan Mode Bertanya

Untuk perubahan besar, mulailah dengan memberi prompt kepada Codex untuk membuat rencana implementasi menggunakan mode Ask, yang kemudian menjadi input untuk prompt lanjutan saat Anda beralih ke Code Mode. Alur dua langkah ini membuat Codex tetap terarah dan membantu menghindari kesalahan dalam outputnya. Codex bekerja paling baik dengan tugas yang terdefinisi dengan baik, yang memerlukan sekitar satu jam bagi Anda atau rekan tim untuk menyelesaikannya atau beberapa ratus baris kode untuk diimplementasikan. Seiring dengan peningkatan model, perkirakan cakupan tugas yang dapat ditanganinya juga akan meningkat.

Tingkatkan lingkungan pengembangan Codex secara iteratif

Menetapkan skrip startup, variabel lingkungan, dan akses internet secara signifikan mengurangi tingkat kesalahan Codex. Saat Anda menjalankan tugas, cari error build yang dapat diperbaiki dalam konfigurasi lingkungan Codex. Hal ini mungkin memerlukan beberapa iterasi, tetapi memberikan peningkatan efisiensi yang signifikan dalam jangka panjang.

Susun prompt Anda seolah-olah Anda sedang menulis Github Issue

Codex merespons dengan lebih baik saat prompt mencerminkan cara Anda menjelaskan suatu perubahan dalam PR atau masalah. Hal ini berarti menyertakan jalur file, nama komponen, diff, dan cuplikan dokumen jika relevan. Memberikan prompt dengan pola seperti “Implementasikan ini dengan cara yang sama seperti yang dilakukan di [modul X]” akan meningkatkan hasil.

Gunakan antrean tugas Codex sebagai backlog ringan

Jalankan tugas untuk menangkap ide-ide tangensial, pekerjaan parsial, atau perbaikan insidental. Tidak ada tekanan untuk menghasilkan PR lengkap sekaligus. Codex bekerja dengan baik sebagai area persiapan yang dapat Anda kunjungi kembali saat Anda kembali fokus.

Gunakan AGENTS.md untuk menyediakan konteks yang persisten

Pertahankan file AGENTS.md untuk membantu Codex beroperasi lebih efektif di repositori Anda di berbagai prompt. File-file ini biasanya mencakup konvensi penamaan, logika bisnis, keunikan yang sudah diketahui, atau dependensi yang tidak dapat disimpulkan Codex hanya dari kodenya. Pelajari lebih lanjut tentang cara menyusun file AGENTS.md Anda di dokumen.

Manfaatkan “Best of N” untuk meningkatkan output

Fitur Best-of-N memungkinkan Anda menghasilkan beberapa respons secara bersamaan untuk satu tugas untuk mengeksplorasi beberapa solusi dengan cepat dan memilih yang terbaik. Untuk tugas yang lebih rumit, Anda dapat meninjau beberapa iterasi dan menggabungkan bagian-bagian dari respons yang berbeda untuk mendapatkan hasil yang lebih baik.


Melihat ke depan

Codex masih dalam pratinjau riset, tetapi sudah memberikan dampak nyata pada cara kami membangun, membantu kami bergerak lebih cepat, menulis kode yang lebih baik, dan menangani pekerjaan yang sebelumnya mungkin tidak akan pernah diprioritaskan.

Kami antusias menyambut potensi yang ada di depan — seiring dengan semakin baiknya model kami dan semakin terintegrasinya Codex ke dalam alur kerja kami, kami berharap dapat membuka lebih banyak cara canggih untuk mengembangkan perangkat lunak dengannya. Kami akan terus membagikan apa yang kami pelajari di sepanjang jalan.

Tertarik untuk menghadirkan AI ke bisnis Anda?

Pelajari bagaimana kami membantu perusahaan membangun strategi AI yang dapat diskalakan dan bertanggung jawab.