Image: AI generated
Akankah Model yang Lebih Pintar Menyelesaikan Segalanya?
Narasi dominan seputar alat coding AI adalah: ketika modelnya cukup bagus, ia akan menulis kode, menulis tes, dan melakukan refactoring sendiri. Jika GPT-4 tidak bisa, GPT-5 akan bisa. Jika Claude kurang, Claude yang lebih besar akan menanganinya.
Benarkah demikian?
Saya menugaskan Claude Opus 4.7 untuk refactoring filefunc. Selesai dalam satu jam tanpa review manusia. validate lolos, pytest lolos, coverage terjaga. Di permukaan, ini sesuai dengan narasi “cukup dapatkan model yang lebih baik”.
Tapi bagaimana jika Anda memberikan model yang sama refactoring yang sama tanpa aturan filefunc? Tanpa validate? Tanpa feedback coverage? Hasilnya sama sekali berbeda. Ia jatuh ke doom loop — memperbaiki satu bug merusak tempat lain, memperbaiki itu merusak tempat lain lagi.
Model yang sama. Yang berubah adalah lingkungannya.
“Selesai” — Naluri Penghentian Dini Agen
Eksperimen lain dengan model yang sama. Saya melepaskan agen pada proyek dengan 527 fungsi. “Tulis tes untuk setiap fungsi.” Agen selesai dan melaporkan: “Selesai.”
Fungsi yang benar-benar mendapat tes: 40. 40 dari 527.
Agen tidak berbohong. Ia mengerjakan 40 dan memutuskan “sudah cukup.” Kecenderungan default LLM adalah penghentian dini yang optimistis. Ketika menemui fungsi yang sulit, ia melewatinya, mengerjakan beberapa lagi, lalu menyimpulkan “sisanya mengikuti pola yang sama, jadi sudah cukup.”
Setelah memaksakan loop dengan alat CLI:
Agen otonom: 40 / 527 (7.6%) — agen menyatakan "selesai"
Loop CLI: 527 / 527 (100%) — mesin menyatakan "masih tersisa 487"
Model yang sama. Proyek yang sama. Perbedaannya adalah siapa yang memutuskan kapan “selesai”.
Lingkungan Membentuk Model
Kedua eksperimen mengarah pada kesimpulan yang sama. Opus 4.7 tidak menyelesaikan karena ia pintar. Ia menyelesaikan karena specification surface-nya machine-checkable.
filefunc validate → Apakah struktur kode memenuhi aturan?
pytest → Apakah perilaku yang ada dipertahankan?
coverage → Branch mana yang kurang?
Ketiganya memberikan feedback langsung pada setiap edit. Model menerima feedback, melakukan koreksi, menerima feedback lagi, mengoreksi lagi. Self-correcting loop.
Inilah insight kuncinya:
Topologi feedback menentukan hasil lebih dari IQ model.
LLM kuat dalam generasi tetapi lemah dalam menjamin kebenaran. Huang et al. (2024) membuktikan secara eksperimental bahwa ketika LLM mencoba mengoreksi penalarannya sendiri tanpa feedback eksternal (oracle feedback), performa justru bisa menurun. Namun ketika ada deterministic verifier, performa stabil secara dramatis. lint, typecheck, test, coverage — ini menjadi gradient signal yang mengoreksi output model.
“Akan terselesaikan ketika model cukup pintar” adalah proposisi yang salah. Pernyataan yang tepat adalah: “Jika feedback cukup cepat, model saat ini sudah bisa menyelesaikannya.”
broad exploration vs local correction
Kekuatan LLM bukan broad exploration — melainkan local correction.
“Tulis tes untuk proyek ini” — itu broad exploration. LLM kehilangan arah.
“line 41 tidak ter-cover” — itu local correction. LLM menulis tes yang meng-cover tepat baris itu.
Angka yang diverifikasi di proyek nyata:
Tanpa feedback: berhenti di coverage 60–70%
Dengan feedback: mencapai 100% (untuk fungsi yang dapat dijangkau)
Model yang sama. Satu baris “line 41 not covered” bertindak sebagai gradient signal. Feedback ini mengarahkan koreksi LLM tepat ke arah yang benar.
Symbolic Feedback Loop
Satu struktur menembus semua observasi ini.
LLM menghasilkan → alat deterministik menilai → hasil dikembalikan ke LLM → ulangi
Saya menyebutnya Symbolic Feedback Loop.
Arus utama industri saat ini adalah LLM Feedback Loop — AI memverifikasi AI. Seperti orang mabuk bertanya pada teman mabuk, “Aku mabuk nggak?” Keduanya probabilistik, jadi error terakumulasi.
Symbolic Feedback Loop berbeda. Chen et al. (2023) membuktikan bahwa debugging iteratif — mengembalikan pesan error compiler dan runtime ke model — secara dramatis meningkatkan akurasi kode. pytest tidak berhalusinasi. go test tidak pernah mabuk. Pengukuran coverage tidak berbohong. Verifikasi spesifikasi tidak menyimpang.
Struktur ini bekerja di domain di mana kebenaran dapat dinilai secara mekanis — kode, tes, spesifikasi, tipe. Keanggunan desain API atau kealamian UX belum bisa dinilai oleh alat simbolik. Memperluas batas itu adalah tantangan berikutnya. Saya percaya ada jalur untuk membawa bahkan bahasa alami ke dalam batas yang dapat diverifikasi.
Apa yang AlphaCode (Li et al., 2022) tunjukkan dalam competitive programming mengikuti prinsip yang sama. Bukan kemampuan generasi model itu sendiri, melainkan desain lingkungan — menghasilkan jutaan kandidat lalu memfilter melalui tes — yang menentukan performa. Daripada membuat model lebih pintar, lebih efektif membuat feedback yang dikembalikan ke model lebih presisi.
Mendelegasikan Keputusan
Sudah jelas bahwa keputusan tidak boleh didelegasikan ke AI. Tapi manusia memeriksa dan memutuskan segalanya itu melelahkan. Keputusan tertentu yang berulang dan terstruktur dapat dilakukan oleh alat simbolik atas nama manusia.
“Apakah tes ini meng-cover semua branch?” — tidak ada manusia yang perlu membacanya. Alat coverage yang menilai. “Apakah kode ini memenuhi aturan struktural?” — tidak ada manusia yang perlu me-review. validate yang menilai. “Apakah masih ada fungsi yang belum diproses?” — tidak ada manusia yang perlu menghitung. CLI yang menyatakan.
Keputusan yang tidak bisa didelegasikan ke AI bisa didelegasikan ke alat simbolik — karena bersifat deterministik, bukan probabilistik. Inilah alasan keberadaan Symbolic Feedback Loop.
Lebih penting memasang rel daripada membuat kereta lebih cepat.
Banyak orang membangun kereta. Hampir tidak ada yang memasang rel.
Referensi
- Jie Huang, Xinyun Chen, Swaroop Mishra, Huaixiu Steven Zheng, Adams Wei Yu, Xinying Song, Denny Zhou. “Large Language Models Cannot Self-Correct Reasoning Yet.” ICLR 2024.
- Xinyun Chen, Maxwell Lin, Nathanael Scharli, Denny Zhou. “Teaching Large Language Models to Self-Debug.” arXiv:2304.05128, 2023.
- Yujia Li, David Choi, Junyoung Chung, Nate Kushman, Julian Schrittwieser, Remi Leblond, Tom Eccles, et al. “Competition-Level Code Generation with AlphaCode.” Science 378(6624): 1092-1097, 2022.
- Noah Shinn, Federico Cassano, Ashwin Gopinath, Karthik Narasimhan, Shunyu Yao. “Reflexion: Language Agents with Verbal Reinforcement Learning.” NeurIPS 2023.
- Aman Madaan, Niket Tandon, Prakhar Gupta, et al. “Self-Refine: Iterative Refinement with Self-Feedback.” NeurIPS 2023.
- Timo Schick, Jane Dwivedi-Yu, Roberto Dessi, et al. “Toolformer: Language Models Can Teach Themselves to Use Tools.” NeurIPS 2023.
- Mert Cemri, Melissa Z. Pan, Shuyi Yang, et al. “Why Do Multi-Agent LLM Systems Fail?” NeurIPS 2025 Datasets and Benchmarks Track.
- Carlos E. Jimenez, John Yang, Alexander Wettig, et al. “SWE-bench: Can Language Models Resolve Real-World GitHub Issues?” ICLR 2024.
Artikel terkait: Ratchet Pattern — Cara Membuat Agen Menyelesaikan Tugas — Implementasi praktis dari teori ini. Pola yang memaksa agen untuk konvergen.
Alat terkait: tsma — Contoh kerja Ratchet Pattern. 527 fungsi, nol TODO.
Changelog
- 2026-05-14: Rilis awal