Catatan editor: Artikel ini datang dari Dominik Kundel, ahli hubungan pengembang OpenAI, yang merangkum pengalaman penggunaan fungsi Codex 'goal mode //goal'. Artikel ini membahas bukan sekadar teknik prompt biasa, tetapi perubahan peran alat pemrograman AI: Codex tidak lagi hanya menjadi asisten kod yang merespons arahan satu langkah, tetapi mulai menjadi Agen pelaksana yang dapat terus maju mengikuti tujuan yang jelas.
Dalam mod /goal, yang paling penting bukanlah menulis keperluan sepanjang dan sehalus mungkin, tetapi menetapkan standard keluar yang jelas dan boleh diverifikasi untuk Codex. Contohnya: “masa pelaksanaan berkurang 30%”, “cakupan ujian mencapai 100% parity”, “LCP diturunkan di bawah 2.5 saat”. Indikator-indikator ini membolehkan Codex menentukan sama ada tugas telah selesai, serta mengelakkan ia daripada mencuba-cuba tanpa henti dalam matlamat yang kabur. Sambil itu, pengguna perlu menyediakan arahan, alat, dan persekitaran sebenar yang mencukupi, supaya Codex dapat mengukur kemajuan dan mengesahkan hasil, bukan sekadar menyelesaikan satu cadangan yang kelihatan munasabah dalam persekitaran tempatan atau hipotetik.
Artikel ini secara khusus memperingatkan bahawa tugas visual paling mudah membuat Codex terperangkap dalam perincian. Alih-alih meminta "peniruan 100% pada tahap piksel", lebih baik pecahkan objektif visual menjadi senarai fungsi, spesifikasi sistem reka bentuk, dan indikator yang boleh dinilai. Untuk tugas jangka panjang yang berterusan selama berjam-jam atau berhari-hari, perlu juga dipantau secara berterusan melalui cara-cara seperti commit, draft PR, dokumen kemajuan, pembaruan Slack, atau side chat, untuk mengelakkan hasil akhir yang hanya berupa sekumpulan perubahan yang tidak boleh dilacak.
Nilai tambah artikel ini ialah ia mentakrif semula /goal sebagai sebuah "mekanisme pengurusan tugas jangka panjang". Apabila AI mampu melaksanakan tugas secara berterusan selama puluhan bahkan ratusan jam, kemampuan utama pembangun turut berubah: bukan sahaja membolehkan AI menghasilkan kod, tetapi menentukan matlamatnya, membina sistem pengukuran, mengkonfigurasi persekitaran pelaksanaan, serta melakukan semakan dan peninjauan akhir. Dengan kata lain, pengaturan kod oleh AI sedang berpindah dari "menulis petunjuk" kepada "mengurus seorang pelaksana kejuruteraan yang bekerja secara berterusan".
Berikut ialah teks asal:
Kami telah melancarkan mod sasaran (goal mode, atau /goal) untuk membantu anda memastikan Codex terus bergerak ke arah hasil tertentu. Apabila anda menetapkan satu sasaran, Codex akan terus bekerja sehingga sasaran tersebut dicapai—tanpa mengira sama ada ia memerlukan beberapa jam atau beberapa hari. Sudah ada pengguna yang meminta Codex bekerja secara berterusan selama lebih daripada 120 jam untuk sasaran yang sama.

Modus sasaran sangat kuat. Untuk memaksimakan keberkesanannya, ada 7 perkara yang perlu diperhatikan semasa menggunakan /goal.
Tetapkan standard yang jelas dan boleh disahkan
Apabila anda memasukkan petunjuk semasa mengaktifkan mod sasaran, petunjuk tersebut boleh berfungsi sebagai petunjuk awal, tetapi lebih penting lagi, ia akan menjadi piawaian keluar untuk sasaran tersebut. Codex akan memeriksa setiap putaran kerja: adakah sasaran ini telah selesai.
Oleh itu, petunjuk sasaran anda tidak seharusnya ditulis terlalu panjang, tetapi harus berfokus pada satu standard yang jelas: dalam keadaan apa, sasaran ini dianggap telah dicapai.
Dalam kebanyakan kes, sasaran yang baik sebaiknya mengandungi ukuran nombor yang jelas untuk model menilai sama ada ia telah selesai. Contohnya:
Mengurangkan masa pembinaan dan penghantaran sebanyak 30%.
Pindahkan fungsi ini dari TypeScript ke Rust dan capai konsistensi ujian 100%.
Optimalkan kerangka kerja aplikasi untuk memastikan Largest Contentful Paint (LCP), ukuran kelajuan pemuatan kandungan utama laman web, berada di bawah 2.5 saat dalam persekitaran pengeluaran.
Petunjuk ini tidak selalu perlu mengandungi nombor, tetapi biasanya nombor akan memudahkan langkah seterusnya.
Jika anda masih tidak pasti bagaimana untuk mentakrifkan matlamat, atau ingin berbincang idea projek ini bersama Codex terlebih dahulu, anda tidak perlu memulakan perbualan dengan mod matlamat.
Codex boleh menetapkan matlamat sendiri. Anda boleh mula perbincangan secara biasa, dan apabila anda bersedia untuk membenarkan Codex bermula, arahkan Codex untuk menetapkan matlamat berdasarkan perbincangan sebelumnya.
Anda juga boleh mengedit sasaran kapan saja: klik butang sunting dalam aplikasi Codex, atau gunakan semula /goal di CLI.
Sediakan panduan sebanyak mungkin
Petunjuk seperti "mengurangkan masa pembinaan dan penghantaran sebanyak 30%" kedengaran menarik dan mungkin membantu Codex menemui beberapa penyelesaian kreatif. Tetapi jika anda sudah mempunyai gambaran kasar tentang di mana masalah mungkin berlaku, petunjuk ini juga boleh membawa Codex ke jalan yang salah.
Oleh itu, sebaiknya beritahu Codex di mana harus memulakan penyiasatan, alat apa yang boleh digunakan untuk mencapai matlamat, atau berikan petunjuk lain, untuk mengelakkan ia tersesat ke arah yang salah.
Sebagai contoh, rakan sekerja saya @reach_vb melakukan ini dalam satu eksperimen: beliau memberitahu Codex bahawa ia boleh menggunakan pelayar Chrome untuk masuk ke Google Colab, serta menyatakan beberapa had yang diterima, seperti membenarkan Codex menghasilkan set data sendiri semasa melatih model.

Sama seperti itu, jika anda ingin memperpendek masa pembinaan dan telah mengetahui bahawa sebahagian besar masa dihabiskan di mana, lebih baik arahkan Codex ke kawasan tersebut terlebih dahulu dalam petikan.
Cara lain ialah anda boleh meminta Codex untuk melakukan penyelidikan awal dalam mod perancangan (plan mode) dan membiarkannya mencipta fail perancangan yang merekodkan pelbagai cadangan. Selepas itu, anda boleh merujuk fail perancangan ini kepada sasaran anda.
Buat kemajuan boleh diukur
Jika matlamat anda sangat ambisius, atau Codex mempunyai banyak cara untuk secara berperingkat mendekati matlamat tersebut, maka sangat penting untuk memberikan alat kepada Codex untuk mengukur kemajuan.
Bagi beberapa tugas, perkara ini mungkin secara semula jadi berlaku. Contohnya, mengoptimumkan masa pembinaan dan meningkatkan cakupan ujian, kerana Codex biasanya sudah boleh menggunakan alat yang berkaitan, atau akan secara semula jadi mencipta alat-alat tersebut.
Namun, untuk tujuan lain, anda sebaiknya berbincang dengan Codex terlebih dahulu: alat apa yang membantu menilai kemajuan? Atau berikan beberapa petunjuk agar ia tahu bagaimana mengesahkan sama ada ia sedang bergerak mendekati tujuan. Sebagai contoh, buat alat perbandingan perbezaan visual antara dua tangkapan skrin, atau sediakan set penilaian khusus untuk agen yang sedang anda debug.
Saya pernah meminta Codex untuk meniru beberapa komponen berdasarkan satu video, dan pada masa itu, Codex menciptakan alat sendiri untuk membandingkan tangkapan skrin dan mengesan perbezaan. Kemudian, ia terus mengembangkan alat ini dengan menambahkan pelbagai mod perbandingan perbezaan.

Berdasarkan tugas yang berbeza, anda juga perlu mempertimbangkan sama ada terdapat sebarang piawaian tambahan yang perlu diukur atau diperiksa. Jika tidak, Codex mungkin menganggap tugas telah selesai, tetapi menurut pandangan anda, ia masih belum lengkap.
Sebagai contoh, Codex mungkin memotong gambar rujukan reka bentuk dan menyematkannya secara langsung ke halaman untuk mereplikasi UI pada peringkat piksel, atau mengurangkan lingkup pengujian demi mencapai kadar lulus pengujian 100%. Ini bukan cara yang sebenarnya anda inginkan untuk menyelesaikannya.
Cipta satu persekitaran yang sebenar
Jika anda ingin Codex membuat kemajuan yang berkesan menuju sasaran, ia perlu beroperasi dalam persekitaran yang cukup nyata.
Dalam amalan, ini bermaksud: jika anda ingin mengoptimumkan masa penghantaran atau masalah letrapan, Codex perlu dapat mengakses persekitaran penghantaran dan pengujian, dan persekitaran ini perlu meniru persekitaran pengeluaran sebaik mungkin. Iaitu, menggunakan tatanan teknologi yang sama, suis konfigurasi yang sama, dan pangkalan data yang serupa.
Sebagai contoh, kami sebelum ini mengoptimumkan masa pembinaan dan pelaksanaan developers.openai.com. Pada masa itu, kami sudah menggunakan pratonton pelaksanaan, jadi Codex boleh memanfaatkan persekitaran pratonton tersebut untuk pelaksanaan dan melihat log yang berkaitan. Tetapi masalahnya ialah, pelaksanaan pratonton kami mematikan beberapa laluan pembinaan berbanding persekitaran pengeluaran penuh.
Oleh itu, Codex akhirnya terpaksa menjalankan penghantaran manual, menghantar kod ke persekitaran yang lebih hampir dengan konfigurasi pengeluaran untuk memeriksa punca masalah tersebut.
Secara serupa, anda juga boleh membolehkan Codex menggunakan computer use (keupayaan model untuk mengendalikan antaramuka aplikasi sebenar) untuk menguji aplikasi sebenar. Untuk mengoptimumkan beberapa masalah prestasi di iOS, @dimillian bahkan menggunakan peranti fizikal untuk mendapatkan persekitaran ujian yang paling tepat.

Tetapkan sasaran visual dengan berhati-hati
Memberikan Codex satu sasaran visual, seperti "mengembalikan UI ini dengan tepat 100% mengikut gambar ini", memang menarik. Tetapi, bergantung kepada tetapan tertentu, ia juga boleh membawa masalah.
Jika anda tidak memberikan panduan dan batasan yang sesuai, Codex mungkin akan semakin terperangkap dalam beberapa butiran kecil, sehingga mengabaikan matlamat keseluruhan. Sebagai contoh, jika gambar rujukan mengandungi elemen grafik dan anda mengharapkan Codex menghasilkan elemen-elemen tersebut—sama ada ikon SVG atau gambar—ia mungkin akan menghabiskan banyak usaha pada “bagaimana meniru bahan-bahan ini dengan tepat” berbanding memecahkan masalah secara betul.
Selain itu, Codex memerlukan alat untuk melakukan perbandingan visual dengan betul. Ini bermaksud lebih banyak input gambar, penggunaan token keseluruhan yang lebih tinggi, tetapi tidak semestinya memberikan cara yang mudah kepada Codex untuk mengenal pasti peluang peningkatan yang benar-benar berharga.
Oleh itu, gambar biasanya lebih sesuai digunakan sebagai konteks sasaran, bukan sebagai satu-satunya ukuran keberhasilan. Anda harus mencari cara lain untuk membolehkan Codex menilai sama ada sasaran telah dicapai, seperti senarai fungsi, spesifikasi pelaksanaan, atau kesesuaian dengan sistem reka bentuk.
Lacak kemajuan
Jika Codex berfungsi di latar belakang selama berjam-jam atau bahkan berhari-hari, bahkan di mesin lain, anda mudah lupa sejauh mana ia telah maju dan apa kerja yang telah dilakukan.
Berdasarkan sasaran yang berbeza, saya mendapati beberapa kaedah berikut sangat membantu:
· Biarkan Codex menghantar kod pada titik penting dan menghantar ke PR draf. Ini sangat berguna apabila anda membuat laman web, terutamanya jika terdapat pelaburan pratonton.
· Muat kemas Codex dengan satu hasil kerja yang ditujukan kepada pengurusan. Ia boleh menjadi fail HTML yang boleh anda buka terus di dalam pelayar dalam aplikasi; atau satu laman yang dideploy melalui Sites untuk pasukan lihat; boleh juga berupa gambar progres yang telah dirender, atau hanya fail Markdown biasa.
Arahkan Codex untuk secara aktif mempublikasikan pembaruan kemajuan. Anda juga boleh memasukkan ini sebagai sasaran: memastikan Codex menghantar pembaruan ke saluran Slack, atau tempat lain yang anda ingin rekodkan kemajuan, apabila mencapai kemajuan penting.
Gunakan tetingkap sembang lain untuk menanyakan status. Jika anda hanya ingin mengetahui status semasa dengan cepat, jalankan /side untuk memulakan sembang sisi, dan tanyakan di sana. Ia akan bercabang daripada thread semasa, jadi memiliki seluruh konteks hingga kini, tetapi hayatnya singkat.
Cara alternatif lain dalam aplikasi Codex ialah: buka perbualan baru biasa, biarkan Codex membaca thread sasaran lain, dan menjawab soalan anda. Cara ini menjadi lebih kuat jika anda meminta Codex untuk menetapkan tugas automatik untuk memeriksa kemajuan secara berkala.
Bersihkan dan sahkan hasil akhir
Hebat, sasaran akhirnya dicapai! Sekarang bolehkah kita teruskan hasilnya kepada pasukan dan berhenti bekerja?
Biasanya, terutama dalam tugas pengoptimuman, saya mendapati bahawa meminta Codex untuk meninjau dan mengulas semula kerja yang telah dilakukan sangat membantu. Anda boleh menjalankan semakan kod tempatan terlebih dahulu dengan /review, tetapi juga berguna agar Codex merefleksikan secara lebih mendalam: jalan mana yang telah dicuba untuk mencapai matlamat tersebut? Percubaan mana yang berjaya? Dan mana yang gagal? Kemudian, bersihkan kod berdasarkan penemuan tersebut.
Kerana Codex akan terus berfungsi sehingga mencapai sasaran, ia mungkin telah mencuba beberapa kaedah yang tidak berkesan atau sama sekali tidak berkesan, dan perubahan sisa ini mungkin masih tinggal dalam kod akhir.
Tetapkan satu matlamat untuk tugas seterusnya
Fungsi utama Codex adalah alat yang sangat kuat yang dapat membantu anda menyelesaikan beberapa cabaran kejuruteraan yang paling bermakna. Namun, ia hanya akan mencapai sasaran dengan lebih cekap apabila anda menyediakan persekitaran dan arahan yang betul.
Apakah yang pernah anda lakukan dengan /goal?
