Topologi Feedback Lebih Penting dari IQ Model

Apakah Semua Akan Terselesaikan Ketika Model Semakin Pintar?

Narasi dominan dalam alat pemrograman AI adalah sebagai berikut: ketika model sudah cukup bagus, ia akan menulis kode, menulis tes, dan melakukan refactoring sendiri. Yang tidak berhasil di GPT-4 akan berhasil di GPT-5. Yang tidak bisa dilakukan Claude akan bisa dilakukan Claude yang lebih besar.

Benarkah demikian?

Saya meminta Claude Opus 4.7 untuk merefaktor filefunc. Selesai dalam satu jam tanpa review manusia. Lolos validate, lolos pytest, coverage terjaga. Dilihat dari hasilnya saja, ini sesuai dengan narasi “yang penting modelnya bagus”.

Tapi bagaimana jika model yang sama diminta refactoring yang sama tanpa aturan filefunc? Tanpa validate? Tanpa feedback coverage? Hasilnya sama sekali berbeda. Masuk ke doom loop. Memperbaiki satu bug lalu merusak bagian lain, memperbaiki itu lalu merusak bagian yang lain lagi.

Model yang sama. Yang berubah adalah lingkungannya.


“Sudah Selesai” — Insting Penghentian Dini Agen

Saya melakukan eksperimen lain dengan model yang sama. Menerjunkan agen otonom ke proyek dengan 527 fungsi. “Tuliskan tes untuk semua fungsi.” Agen menyelesaikan pekerjaan dan melaporkan: “Sudah selesai.”

Fungsi yang benar-benar mendapat tes: 40. Empat puluh dari 527.

Agen tidak berbohong. Setelah mengerjakan 40 fungsi, ia menilai “sudah cukup”. Kecenderungan bawaan LLM adalah penghentian dini yang optimistis. Ketika menemui fungsi yang sulit, ia melewatinya; setelah beberapa fungsi lagi, menyimpulkan bahwa “sisanya pola yang mirip, jadi sudah cukup”.

Setelah memaksa loop melalui 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 menentukan kapan “selesai”.


Lingkungan Membentuk Model

Kedua eksperimen menunjuk pada kesimpulan yang sama. Opus 4.7 berhasil menyelesaikan bukan karena ia pintar. Ia berhasil karena specification surface-nya machine-checkable.

filefunc validate  → Apakah kode memenuhi aturan struktur?
pytest             → Apakah perilaku yang ada terjaga?
coverage           → Branch mana yang terlewat?

Ketiganya memberikan feedback langsung pada setiap perubahan. Model menerima feedback, memperbaiki, menerima lagi, memperbaiki lagi. self-correcting loop.

Intinya ada di sini:

Topologi feedback menentukan hasil lebih dari IQ model.

LLM kuat dalam kemampuan generasi tetapi lemah dalam menjamin correctness. Namun dengan adanya deterministic verifier, performanya stabil secara drastis. lint, typecheck, test, coverage — semua ini menjadi gradient signal yang mengoreksi output model.

“Akan terselesaikan ketika model cukup pintar” adalah tesis yang salah. Yang benar adalah: “Ketika feedback cukup cepat, bisa diselesaikan dengan model yang ada sekarang”.


broad exploration vs local correction

Kekuatan LLM bukan broad exploration melainkan local correction.

“Tuliskan tes untuk proyek ini” — ini broad exploration. LLM kehilangan arah.

“Baris 41 belum ter-cover” — ini local correction. LLM menulis tes yang tepat untuk meng-cover baris tersebut.

Angka terverifikasi dari 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” berperan sebagai gradient signal. Feedback ini mengarahkan perbaikan LLM ke arah yang tepat.


Symbolic Feedback Loop

Ada satu struktur yang menembus seluruh observasi ini.

LLM menghasilkan → alat deterministik menilai → hasil dikembalikan ke LLM → ulangi

Saya menyebut ini Symbolic Feedback Loop.

Arus utama industri saat ini adalah LLM Feedback Loop. AI memverifikasi AI. Seperti orang mabuk bertanya kepada teman mabuknya: “Aku mabuk nggak?” Keduanya probabilistik, sehingga kesalahan menumpuk.

Symbolic Feedback Loop berbeda. pytest tidak berhalusinasi. go test tidak mabuk. Pengukuran coverage tidak berbohong. Verifikasi spesifikasi tidak menyimpang.

Struktur ini bekerja di ranah di mana correctness 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 jalan untuk membawa bahkan bahasa alami ke dalam batas yang dapat diverifikasi.

Membuat model lebih pintar kurang efektif dibandingkan membuat feedback yang dikembalikan kepadanya lebih akurat.


Pendelegasian Keputusan

Fakta bahwa keputusan tidak boleh didelegasikan ke AI sudah jelas. Namun, manusia memeriksa dan memutuskan segala sesuatu adalah pekerjaan berat. Beberapa keputusan yang repetitif dan terstruktur dapat dilakukan oleh alat simbolik atas nama manusia.

“Apakah tes ini meng-cover semua branch?” — tidak perlu dibaca manusia. Alat coverage yang menilai. “Apakah kode ini memenuhi aturan struktur?” — tidak perlu di-review manusia. validate yang menilai. “Apakah masih ada fungsi yang belum diproses?” — tidak perlu dihitung manusia. CLI yang menyatakan.

Keputusan yang tidak bisa didelegasikan ke AI bisa didelegasikan ke alat simbolik. Karena ini deterministik, bukan probabilistik. Inilah alasan keberadaan Symbolic Feedback Loop.

Membuat kereta lebih cepat kurang penting dibanding memasang relnya.

Banyak orang sedang membuat kereta. Yang memasang rel masih sangat sedikit.