Agen coding AI seperti Jules bisa membangun, melakukan pemfaktoran ulang, dan membuat kode secara otomatis sementara Anda fokus pada hal lainnya. Kenyamanan dan kemudahan penggunaan ini memang mengasyikkan, tetapi terkadang juga bisa berarti bug halus, kasus tepi yang terlewat, dan asumsi yang belum teruji. Itulah mengapa kami memperkenalkan kemampuan baru di Jules yang meninjau dan mengkritik kode sebelum Anda melihatnya.
Perannya sederhana tetapi kuat: saat Jules membangun, fungsi kritikus menantangnya. Setiap perubahan yang diusulkan akan melalui adversarial review sebelum difinalisasi. Bayangkan fitur kritikus sebagai peninjau pembanding Jules, yang sangat memahami prinsip kualitas kode dan tidak ragu untuk menunjukkannya ketika Anda menciptakan kembali roda yang berisiko.
Kritikus terintegrasi langsung ke dalam proses pembuatan kode, yang disebut critic-augmented generation. Untuk versi pertama, ini adalah proses sekali pakai yang mengevaluasi output final dalam sekali jalan. Pencapaian di masa depan akan bertujuan untuk menjadikannya agen multilangkah yang sebenarnya, yang mampu menggunakan panggilan alat atau pemicu setelah subtugas atau sebelum perencanaan, tetapi untuk saat ini ia meninjau pembuatan lengkap secara bersamaan. Hal ini akan mengacu pada penelitian multilangkah, ketika kritikus memvalidasi output menggunakan alat eksternal (seperti penerjemah kode atau mesin telusur) dan belajar dari hasil tersebut.
Kritikus tidak memperbaiki kode, ia menandainya, lalu menyerahkannya kembali ke Jules untuk diperbaiki. Sebagai contoh:
Karena ini terjadi setelah pembuatan patch dan sebelum pengiriman (mungkin beberapa kali jika masih ditandai), Jules bisa merencanakan ulang secara real time. Tujuan kami adalah lebih sedikit PR bermasalah, cakupan pengujian yang lebih baik, dan keamanan yang lebih kuat.
Linter mengikuti aturan tetap yang dangkal; pengujian memvalidasi pernyataan tertentu. Kritikus mampu memahami intent dan konteks di balik kode. Ia lebih dekat dengan metode evaluasi bebas referensi, menilai kebenaran dan ketangguhan, tanpa memerlukan implementasi standar emas.
Ia juga mengambil petunjuk dari penelitian tentang LLM-as-a-judge, di sini model mengevaluasi kualitas dan kebenaran hasil kerja model lain. Penilaian otomatis semacam ini sangat berguna ketika terintegrasi secara erat dengan pembuatan, mengubah tinjauan menjadi loop masukan langsung.
1: Anda memberikan prompt kepada Jules untuk memulai tugas.
2: Fitur kritikus meninjau patch kandidat dan deskripsinya dalam sekali jalan, membuat penilaian secara keseluruhan.
3: Jules merespons masukan sebelum menyelesaikannya, setelah itu kritikus bisa meninjau lagi patch yang telah diupdate dan terus menandai apa pun yang dianggap perlu hingga tidak ada lagi masalah yang tersisa.
4: Anda menerima kode yang telah ditinjau secara internal.
Hal ini mengacu dari reinforcement learning (RL) aktor-kritikus, dengan seorang “aktor” menghasilkan dan “kritikus” mengevaluasi. Dalam RL, loop ini akan mengupdate aktor dan kritikus berdasarkan sinyal pembelajaran. Dalam pengaturan LLM-as-critic, polanya serupa: mengusulkan, lalu mengevaluasi. Namun, alih-alih mengupdate parameter pembelajaran, masukan yang diberikan memengaruhi status saat ini dan langkah berikutnya. Prinsip yang sama juga mendasari penelitian tentang LLM-as-a-judge, di sini evaluasi kritikus memandu kualitas tanpa pelatihan ulang.
Dalam dunia iterasi yang cepat, kritikus memindahkan tinjauan ke awal proses dan dalam tindakan pembuatan itu sendiri. Ini berarti kode yang Anda tinjau sudah melalui pemeriksaan, penyaringan, dan uji ketahanan. Tentu saja, Anda tetap harus meninjau kode yang dihasilkan dengan cermat sebelum digunakan.
Developer hebat tidak hanya menulis kode, mereka juga mempertanyakannya. Dan sekarang, Jules pun melakukannya.