Ringkasan Utama
Verification loop adalah pengecekan apa pun yang cepat dan deterministik, entah test, tipe, lint, build, atau sebuah probe runtime, yang dijalankan agen untuk menilai kerjanya sendiri dan beriterasi hingga lolos. Ia adalah perbedaan antara agen yang menebak dirinya selesai dan agen yang bisa membuktikannya, dan ia adalah kebiasaan paling berdaya ungkit dalam agentic coding.
Tanyakan pada pengguna Claude Code berpengalaman apa yang membuat sebuah agen efektif dan Anda jarang mendengar soal modelnya. Anda mendengar soal loop-nya: beri agen cara menjalankan hasil kerjanya, melihat hasilnya, dan mengoreksi. Boris Cherny, yang membangun Claude Code, menggambarkan siklus umpan balik ini sebagai alasan tool itu bekerja sama sekali.
Inilah verification loop, dan ia lebih merupakan skill yang Anda desain ke dalam proyek daripada sebuah fitur. Agen dengan loop yang ketat menggilas menuju jawaban yang benar; agen tanpa loop menghasilkan sesuatu yang tampak benar lalu berhenti. Tulisan ini menjelaskan apa itu loop, cara membangunnya, dan cara menjaganya tetap jujur.
Apa itu verification loop
Verification loop adalah siklus bertindak-mengamati-mengoreksi yang diterapkan pada kode. Agen membuat sebuah perubahan, menjalankan pengecekan yang mengembalikan lolos atau gagal yang jelas, membaca hasilnya, lalu menyesuaikan. Ia mengulang hingga pengecekan lolos atau ia kehabisan ide dan meminta bantuan.
Pengecekan itulah intinya. Tanpa satu pun, agen menulis dalam kegelapan dan harus mengklaim kemenangan berdasarkan firasat; dengan satu, ia punya kebenaran dasar untuk didorong. Loop terbaik berbagi tiga sifat:
- Mereka cepat, sehingga agen bisa menjalankannya berkali-kali tanpa membakar menit atau token pada tiap putaran.
- Mereka deterministik, sehingga kode yang sama memberi vonis yang sama dan agen tidak mengejar sinyal yang flaky.
- Mereka bermakna, sehingga lolosnya pengecekan benar-benar berkorelasi dengan kerja yang benar, bukan sekadar dengan pengecekan yang bisa dipuaskan.
Membangun loop-nya
Anda membangun verification loop dengan memberi agen satu perintah yang mengembalikan hasil tak ambigu. Tujuannya adalah meringkas semua yang Anda pedulikan, yaitu test, tipe, lint, dan build, menjadi satu sinyal lolos-atau-gagal yang bisa dipanggil agen setelah setiap perubahan.
Sebuah skrip pendek melakukan tugasnya dan sekaligus menjadi dokumentasi tentang apa arti selesai di repo Anda:
#!/usr/bin/env bash
# scripts/verify.sh - the agent's single source of truth
set -euo pipefail
npm run lint
npx tsc --noEmit
npm test
npm run build
echo "VERIFY OK"Ekspos loop-nya sebagai satu perintah, sesuatu seperti sebuah verify script atau target make verify, dan taruh di CLAUDE.md Anda. Ketika agen punya satu cara jelas untuk memeriksa dirinya, ia memakainya terus-menerus alih-alih mengarang pengecekan dadakan yang menyimpang dari standar Anda yang sebenarnya.
Jenis-jenis sinyal verifikasi
Sebuah loop hanya sebaik sinyalnya, dan pekerjaan berbeda butuh sinyal berbeda. Raih yang terkuat yang diizinkan tugasnya.
- Test otomatis, sinyal terkaya, membuktikan perilaku alih-alih sekadar sintaks ketika suite-nya bagus.
- Pengecekan tipe, yang menangkap sekelas kesalahan antarmuka pada saat agen memperkenalkannya.
- Linter dan formatter, sinyal murah yang menangkap kode mati, variabel tak terpakai, dan pola tak aman.
- Sebuah build produksi, yang memunculkan kesalahan integrasi dan konfigurasi yang terlewat test unit.
- Probe runtime dan screenshot, sehingga sebuah UI atau endpoint dicek terhadap apa yang benar-benar dilakukannya, bukan apa yang diklaim kodenya.
Mengapa loop itu bekerja
Loop bekerja karena ia mengganti penilaian agen tentang apakah ia selesai dengan sebuah fakta eksternal. Sebuah language model adalah generator yang kuat dan pengkritik diri yang lemah, dan sebuah test yang gagal melakukan kritik itu untuknya, mengubah tugas terbuka menjadi pencarian dengan tujuan yang jelas.
Ia juga berlipat ganda. Tulisan Addy Osmani tentang mengorkestrasi agen menyampaikan poin yang sama: seorang agen yang bisa memverifikasi keluarannya sendiri bisa dipercaya dengan run yang lebih panjang dan lebih otonom, karena tiap langkah dicek sebelum langkah berikutnya membangun di atasnya.
Sinyal yang lemah mengajarkan pelajaran yang salah. Jika suite Anda tipis atau flaky, agen mengoptimalkan pengecekannya alih-alih tujuannya, dan dengan percaya diri menyatakan kode yang rusak sebagai selesai. Agen dengan verification loop yang buruk lebih berbahaya daripada yang tanpa loop, karena ia datang dengan tanda centang hijau.
Mendesain loop yang baik
Perlakukan loop sebagai bagian dari basis kode Anda, bukan renungan belakangan. Sedikit investasi di sini membayar balik pada setiap run agen yang akan pernah Anda lakukan.
- Buat ia cukup cepat untuk dijalankan pada setiap perubahan, dan pisahkan pengecekan end-to-end yang lambat ke dalam sebuah putaran terpisah yang sesekali.
- Buat ia deterministik dengan membuang test yang flaky dan mematok apa pun yang bergantung pada waktu, jaringan, atau urutan.
- Buat kegagalan mudah dibaca, dengan keluaran yang menyebut kasus yang gagal dan menunjuk ke berkas dan barisnya.
- Jadikan ia satu-satunya titik masuk, sehingga agen, CI Anda, dan rekan-rekan Anda menilai kerja dengan cara yang sama.
Model terus membaik, tetapi verification loop adalah bagian yang Anda kendalikan, dan itulah yang mengubah kemampuan mentah menjadi kerja yang andal. Beri agen Anda cara yang cepat, jujur, dan bermakna untuk memeriksa dirinya, dan ia berhenti menebak lalu mulai menuju konvergen. Kuasai satu kebiasaan ini dan sebagian besar nasihat agentic coding lainnya menjadi mudah diikuti.

