Mode Tujuan Codex OpenAI: Panduan Mengelola Tugas AI Jangka Panjang

icon MarsBit
Bagikan
AI summary iconRingkasan

Catatan editor: Artikel ini berasal dari Dominik Kundel, anggota tim hubungan pengembang OpenAI, yang merangkum pengalaman penggunaan fitur Codex 'goal mode //goal'. Artikel ini tidak membahas trik prompt biasa, melainkan perubahan peran alat pemrograman AI: Codex tidak lagi hanya menjadi asisten kode yang merespons instruksi satu kali, tetapi mulai berperan sebagai Agent eksekusi yang dapat terus maju mengikuti tujuan yang jelas.

Dalam mode /goal, yang paling penting bukanlah menulis permintaan sepanjang dan seinci mungkin, tetapi menetapkan standar keluar yang jelas dan dapat diverifikasi untuk Codex. Misalnya: "waktu deploy berkurang 30%," "cakupan pengujian mencapai 100% parity," atau "LCP turun di bawah 2,5 detik." Indikator-indikator ini memungkinkan Codex untuk menilai apakah tugas telah selesai, sekaligus mencegahnya melakukan percobaan tanpa batas dalam tujuan yang kabur. Sambil itu, pengguna juga perlu menyediakan arahan, alat, dan lingkungan nyata yang cukup agar Codex dapat mengukur kemajuan dan memverifikasi hasil, bukan hanya menyelesaikan solusi yang tampaknya layak dalam lingkungan lokal atau hipotetis.

Artikel terutama menyoroti bahwa tugas visual paling mudah membuat Codex terjebak dalam detail. Alih-alih meminta "reproduksi pixel-perfek 100%", lebih baik memecah tujuan visual menjadi daftar fungsional, spesifikasi sistem desain, dan indikator yang dapat dievaluasi. Untuk tugas jangka panjang yang berlangsung selama beberapa jam bahkan beberapa hari, juga diperlukan pelacakan berkelanjutan melalui commit, draft PR, dokumen kemajuan, pembaruan Slack, atau side chat untuk menghindari hasil akhir berupa serangkaian perubahan yang tidak dapat dilacak.

Nilai tambah artikel ini terletak pada definisi ulang /goal sebagai "mekanisme manajemen tugas jangka panjang." Ketika AI dapat menjalankan tugas secara berkelanjutan selama puluhan bahkan ratusan jam, kemampuan inti pengembang pun berubah: bukan hanya membuat AI menghasilkan kode, tetapi juga menentukan tujuan untuknya, membangun sistem pengukuran, mengonfigurasi lingkungan eksekusi, serta melakukan tinjauan dan evaluasi akhir. Dengan kata lain, pemrograman berbasis AI sedang berpindah dari "menulis prompt" menuju "mengelola seorang pelaksana teknis yang bekerja terus-menerus."

Berikut adalah teks aslinya:

Kami meluncurkan Mode Tujuan (goal mode, atau /goal) untuk membantu Anda membuat Codex terus bergerak menuju hasil spesifik. Setelah Anda menetapkan tujuan, Codex akan terus bekerja hingga tujuan tercapai—terlepas dari apakah ini memerlukan beberapa jam atau beberapa hari. Sudah ada yang membuat Codex bekerja terus-menerus selama lebih dari 120 jam untuk tujuan yang sama.

Agen

Pola target sangat kuat. Untuk memaksimalkan fungsinya, ada 7 hal yang perlu diperhatikan saat menggunakan /goal.

Tetapkan standar yang jelas dan dapat diverifikasi

Ketika Anda memasukkan prompt saat mengaktifkan mode target, prompt tersebut berfungsi sebagai prompt awal, dan lebih penting lagi, ia akan menjadi kriteria keluar untuk target ini. Codex akan memeriksa setiap putaran kerja: apakah target ini telah selesai.

Oleh karena itu, petunjuk target Anda sebaiknya tidak terlalu panjang, tetapi fokus pada satu standar yang jelas: dalam kondisi apa, target ini dianggap telah tercapai.

Dalam banyak kasus, target yang baik sebaiknya mencakup indikator numerik yang jelas untuk membantu model menilai apakah target telah tercapai. Misalnya:

Mengurangi waktu pembangunan dan penyebaran sebesar 30%.

Pindahkan fitur ini dari TypeScript ke Rust dan capai konsistensi pengujian 100%.

Optimalkan kerangka kerja aplikasi agar Largest Contentful Paint (LCP), indikator kecepatan pemuatan konten utama halaman, di lingkungan produksi berada di bawah 2,5 detik.

Petunjuk ini tidak selalu harus mencantumkan angka, tetapi biasanya angka akan mempermudah langkah-langkah berikutnya.

Jika Anda masih belum yakin bagaimana mendefinisikan tujuan, atau ingin terlebih dahulu berbrainstorming proyek ini bersama Codex, Anda tidak perlu memulai percakapan dengan mode tujuan.

Codex dapat menetapkan tujuannya sendiri. Anda dapat memulai percakapan secara normal, lalu saat Anda siap untuk meminta Codex mulai menjalankan tugas, biarkan Codex menetapkan tujuan berdasarkan diskusi sebelumnya.

Anda juga dapat mengedit target kapan saja: klik tombol edit di aplikasi Codex, atau gunakan kembali /goal di CLI.

Berikan panduan sebanyak mungkin

Petunjuk seperti "mengurangi waktu pembangunan dan penyebaran sebesar 30%" terdengar keren dan mungkin membantu Codex menemukan solusi kreatif. Namun, jika Anda sudah memiliki gambaran kasar tentang kemungkinan penyebab masalahnya, petunjuk semacam ini juga bisa membuat Codex tersesat.

Jadi, sebisa mungkin, lebih baik beri tahu Codex dari mana harus memulai pencarian, alat apa yang bisa digunakan untuk mencapai tujuan, atau berikan petunjuk lain untuk menghindari arah yang salah.

Misalnya, rekan saya @reach_vb melakukan hal ini dalam sebuah eksperimen: ia memberi tahu Codex bahwa dapat menggunakan browser Chrome untuk masuk ke Google Colab, serta menjelaskan beberapa batasan yang dapat diterima, seperti membiarkan Codex menghasilkan dataset sendiri saat melatih model.

Agen

Demikian pula, jika Anda ingin memperpendek waktu pembangunan dan sudah mengetahui di mana sebagian besar waktu terbuang, lebih baik dalam prompt Anda terlebih dahulu arahkan Codex ke area tersebut.

Cara lainnya adalah Anda dapat meminta Codex untuk melakukan penelitian awal dalam mode perencanaan (plan mode) dan membuat file rencana yang mencatat kemungkinan solusi, lalu mengacu pada file rencana tersebut sebagai tujuan Anda.

Buat kemajuan dapat diukur

Jika tujuan Anda ambisius, atau Codex memiliki banyak cara untuk secara bertahap mendekati tujuan tersebut, maka sangat penting untuk memberikan Codex alat untuk mengukur kemajuan.

Untuk beberapa tugas, hal ini mungkin secara alami berlaku. Misalnya, mengoptimalkan waktu build atau meningkatkan cakupan pengujian, karena Codex biasanya sudah dapat menggunakan alat terkait, atau secara alami akan membuat alat-alat tersebut.

Namun, untuk tujuan lain, sebaiknya kamu berdiskusi terlebih dahulu dengan Codex: alat apa saja yang membantu menilai kemajuan? Atau berikan beberapa petunjuk agar Codex tahu bagaimana cara memastikan apakah ia sedang mendekati tujuan. Misalnya, buat alat perbandingan perbedaan visual antara dua tangkapan layar, atau buat seperangkat evaluasi khusus untuk agen yang sedang kamu debug.

Saya pernah meminta Codex untuk mereplikasi beberapa komponen berdasarkan sebuah video, dan pada saat itu Codex membuat alat sendiri untuk membandingkan tangkapan layar dan memeriksa perbedaan. Kemudian, ia terus mengembangkan alat ini, menambahkan berbagai mode perbandingan perbedaan.

Agen

Berdasarkan tugasnya, Anda juga perlu mempertimbangkan apakah ada standar tambahan yang perlu diukur atau diperiksa. Jika tidak, Codex mungkin menganggap tugas telah selesai, padahal menurut Anda masih belum lengkap.

Misalnya, Codex mungkin memotong gambar referensi desain dan menyematkannya langsung ke halaman demi "reproduksi piksel demi piksel"; atau sebaliknya mengurangi cakupan pengujian agar tingkat keberhasilan pengujian mencapai 100%. Ini bukan cara yang benar-benar Anda inginkan untuk menyelesaikannya.

Buat lingkungan yang nyata

Jika Anda menginginkan Codex benar-benar membuat kemajuan efektif menuju tujuannya, ia perlu berjalan di lingkungan yang cukup nyata.

Dalam praktiknya, ini berarti: jika Anda ingin mengoptimalkan waktu deploy atau masalah latensi, Codex harus dapat mengakses lingkungan deploy dan pengujian, dan lingkungan tersebut harus semirip mungkin dengan lingkungan produksi. Artinya, gunakan stack teknologi yang sama, switch konfigurasi yang sama, serta database yang serupa.

Sebagai contoh, kami pernah mengoptimalkan waktu build dan deployment di developers.openai.com. Pada saat itu, kami sudah menggunakan deployment preview, sehingga Codex dapat memanfaatkan lingkungan preview tersebut untuk deployment dan melihat log terkait. Namun, masalahnya adalah, deployment preview kami menonaktifkan beberapa jalur build dibandingkan dengan lingkungan produksi penuh.

Oleh karena itu, Codex akhirnya harus melakukan deploy manual, mendeploy kode ke lingkungan yang lebih mendekati konfigurasi produksi untuk benar-benar memeriksa masalahnya.

Demikian pula, Anda juga dapat meminta Codex menggunakan computer use (kemampuan model untuk mengoperasikan antarmuka aplikasi nyata) untuk menguji aplikasi nyata. Untuk mengoptimalkan beberapa masalah kinerja di iOS, @dimillian bahkan menggunakan perangkat fisik untuk mendapatkan lingkungan pengujian yang paling akurat.

Agen

Tetapkan target visual dengan hati-hati

Memberikan target visual kepada Codex, misalnya "reproduksi UI ini secara pixel-perfek 100% berdasarkan gambar ini," memang menarik. Namun, tergantung pada pengaturannya, ini juga bisa menimbulkan masalah.

Jika Anda tidak memberikan panduan dan batasan yang tepat, Codex mungkin akan semakin terjebak dalam beberapa detail, sehingga mengabaikan tujuan keseluruhan. Misalnya, jika gambar referensi mencakup beberapa elemen grafis, dan Anda mengharapkan Codex menghasilkan elemen-elemen tersebut—baik ikon SVG maupun gambar—Codex mungkin akan menghabiskan banyak energi untuk "bagaimana meniru bahan-bahan ini secara akurat," daripada secara benar memecah seluruh masalah.

Selain itu, Codex memerlukan alat untuk melakukan perbandingan visual dengan benar. Ini berarti lebih banyak input gambar, konsumsi token keseluruhan yang lebih tinggi, tetapi tidak selalu memberikan cara sederhana bagi Codex untuk mengenali peluang peningkatan yang benar-benar bernilai.

Jadi, gambar biasanya lebih cocok sebagai konteks target, bukan satu-satunya standar penyelesaian. Anda harus mencari cara lain agar Codex dapat menilai apakah target telah tercapai, misalnya daftar fitur, spesifikasi implementasi, atau kesesuaian dengan sistem desain.

Lacak kemajuan

Jika Codex akhirnya berjalan di latar belakang selama beberapa jam bahkan beberapa hari, bahkan di mesin lain, Anda mudah lupa sejauh mana ia telah maju dan pekerjaan apa yang sudah dilakukan.

Berdasarkan tujuan yang berbeda, saya menemukan beberapa cara berikut sangat membantu:

· Biarkan Codex mengirimkan kode pada titik kunci dan mendorongnya ke PR draf. Ini sangat berguna terutama ketika Anda membuat situs web dengan deploy pratinjau.

· Buat sebuah deliverable untuk manajemen yang diperbarui oleh Codex. Ini bisa berupa file HTML yang dapat Anda buka terus-menerus di browser dalam aplikasi; atau halaman yang di-deploy melalui Sites untuk dilihat oleh tim; bisa berupa grafik kemajuan yang telah dirender, atau hanya berupa file Markdown biasa.

Instruksikan Codex untuk secara aktif mempublikasikan pembaruan kemajuan. Anda juga bisa menuliskannya sebagai tujuan: agar Codex mengirimkan pembaruan ke saluran Slack, atau tempat lain yang Anda inginkan untuk mencatat kemajuan, ketika mencapai kemajuan penting.

Gunakan jendela obrolan lain untuk menanyakan status. Jika Anda hanya ingin mengetahui status terkini dengan cepat, jalankan /side untuk memulai obrolan sampingan baru dan ajukan pertanyaan di sana. Karena obrolan ini bercabang dari thread saat ini, ia memiliki seluruh konteks hingga saat ini, tetapi memiliki siklus hidup yang singkat.

Metode alternatif lain di aplikasi Codex adalah: membuka obrolan baru biasa, biarkan Codex membaca thread target lain, dan menjawab pertanyaan Anda. Cara ini akan sangat kuat jika Anda meminta Codex untuk mengatur tugas otomatis yang memeriksa kemajuan secara berkala.

Bersihkan dan konfirmasi hasil akhir

Hebat, tujuan akhirnya tercapai! Sekarang apakah kita bisa langsung menyerahkan hasilnya ke tim, lalu selesai?

Biasanya, terutama dalam tugas optimasi, saya menemukan bahwa membantu Codex untuk meninjau dan memeriksa pekerjaannya sendiri sangat bermanfaat. Anda dapat menjalankan tinjauan kode lokal terlebih dahulu dengan /review, tetapi juga berguna agar Codex merefleksikan lebih dalam: jalur apa saja yang telah dicobanya untuk mencapai tujuan tersebut? Upaya mana yang berhasil? Dan mana yang gagal? Kemudian bersihkan kode berdasarkan hal tersebut.

Karena Codex akan terus bekerja hingga mencapai tujuan, ia mungkin telah mencoba beberapa metode yang tidak efektif atau bahkan sama sekali tidak berfungsi, dan perubahan sisa tersebut mungkin masih tersisa dalam kode akhir.

Tetapkan tujuan untuk tugas berikutnya juga

Fungsi utama Codex adalah alat yang sangat kuat yang dapat membantu Anda menyelesaikan beberapa tantangan teknik paling bermakna. Namun, hanya ketika Anda menyediakan lingkungan dan instruksi yang tepat, ia dapat mencapai tujuan dengan lebih efisien.

Apa yang pernah kamu lakukan dengan /goal?

Penafian: Informasi pada halaman ini mungkin telah diperoleh dari pihak ketiga dan tidak mencerminkan pandangan atau opini KuCoin. Konten ini disediakan hanya untuk tujuan informasi umum, tanpa representasi atau jaminan apa pun, dan tidak dapat ditafsirkan sebagai saran keuangan atau investasi. KuCoin tidak bertanggung jawab terhadap segala kesalahan atau kelalaian, atau hasil apa pun yang keluar dari penggunaan informasi ini. Berinvestasi di aset digital dapat berisiko. Harap mengevaluasi risiko produk dan toleransi risiko Anda secara cermat berdasarkan situasi keuangan Anda sendiri. Untuk informasi lebih lanjut, silakan lihat Ketentuan Penggunaan dan Pengungkapan Risiko.