Temui kritikus paling tajam dan sekutu paling berharga Jules

12 AGU 2025
Kathy Korevec Director of Product Google Labs
Mehadi Hassen Research Engineer
Yiguang (Amanda) Zhang Research Engineer

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.


Critic augmented generation

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.


Apa yang dilakukan kritikus

Kritikus tidak memperbaiki kode, ia menandainya, lalu menyerahkannya kembali ke Jules untuk diperbaiki. Sebagai contoh:

  • Patch yang lulus semua tes tetapi menimbulkan error logika yang halus: “Output cocok dengan kasus yang diharapkan tetapi gagal pada input yang tidak terlihat.”

  • Perubahan yang mengompilasi tetapi secara diam-diam menghapus kolom yang diperlukan: “tanda tangan fungsi diupdate tanpa menangani semua parameter.”

  • Kode yang berfungsi tetapi menggunakan pendekatan yang tidak efisien: “Algoritme memberikan hasil yang benar tetapi dengan kompleksitas O(n²) yang tidak perlu.”

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.


Bukan sekadar linter atau pengujian biasa

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.


Begini cara kerjanya:

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.


Mengapa itu penting

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.