Membereskan Kode Spageti Buatan Agen Koding AI dan Mengurangi Biaya Token
Saya menyerahkan tugas koding kepada agen, tetapi kodenya membengkak menjadi satu juta baris dan tagihan penggunaan API datang seperti bom. Artikel ini membahas cara membereskannya.
Menyingkirkan Basis Kode yang Rusak
Kode duplikat yang dibuat secara membabi buta oleh agen dalam perulangan tak terbatas dapat dihapus dalam 30 menit. Anda hanya perlu menggunakan knip dan jscpd.
Buat knip.json di root proyek dan catat titik masuknya (entry points). Ketik npx knip di terminal untuk menemukan paket hantu yang digunakan lalu ditinggalkan oleh agen. Selanjutnya, jalankan npx jscpd ./src -t 1 untuk mengeluarkan blok fungsi duplikat yang bertambah akibat salin-tempel.
Anda dapat sekaligus membuang kode yang tidak perlu dalam monorepo berukuran 158 file. Setelah itu, buka biome.json dan aktifkan aturan noUnusedVariables untuk mencegah kode mati masuk kembali.
Membatasi Biaya Token dengan Kotak Pasir (Sandbox)
Jika Anda terus-menerus memberikan seluruh kode kepada agen, token akan menguap. Anda harus menerapkan struktur Repo-Map bergaya Aider untuk mengisolasi hanya file yang sedang dikerjakan.
Dengan memberikan opsi --map-tokens 1024, Anda dapat menekan token yang digunakan untuk memahami struktur repositori di bawah 2.000 token, bahkan dalam proyek dengan lebih dari 1.000 file.
Untuk menetapkan batasan biaya, LiteLLM Proxy adalah solusinya. Konfigurasikan litellm_config.yaml dan batasi jumlah perulangan maksimum per sesi menjadi 15 kali. Jika Anda menetapkan batas biaya sebesar $2,50, proxy akan memutus panggilan begitu agen melebihi batas.
Mengendalikan Agen dengan Pengujian Deklaratif
Tidak ada gunanya menulis prompt yang panjang dalam bahasa Melayu. Anda harus memberikan kode unit test yang gagal terlebih dahulu agar agen tidak bertindak sembarangan.
Menurut penelitian SWE-bench Verified, ketika metode penyuntikan kasus unit test terlebih dahulu digunakan, rasio regresi turun dari 6,08 persen menjadi 1,82 persen, dan tingkat penyelesaian masalah meningkat dari 24 persen menjadi 32 persen.
Buat file tes yang gagal terlebih dahulu, lalu instruksikan agen untuk menulis hanya bagian implementasi yang lolos tes ini.
Skrip verifikasi juga harus diotomatisasi. Buat file local_verifier.sh dan masukkan perintah npx tsc --noEmit, npx biome check ./src, dan npx vitest run secara berurutan. Meskipun agen ngotot mengatakan kodenya sudah selesai, jika kode keluar (exit code) dari skrip ini bukan 0, maka commit akan diblokir.
Alur Kerja Hibrida dengan Intervensi Manusia Langsung
Kode yang dibuat oleh agen dipecah menjadi unit pull request untuk ditinjau secara langsung oleh manusia.
Periksa apakah baris yang dimodifikasi melebihi 200 baris, apakah ada paket aneh yang ditambahkan ke package.json, atau apakah error ditutupi begitu saja dengan @ts-ignore. Jika Husky dan lint-staged digabungkan, duplikasi kode yang melebihi 2 persen akan langsung diblokir pada saat commit.
Saat memecah pekerjaan, gunakan 3 langkah. Model tingkat atas membagi tugas dan membuat TODO.md. Setelah itu, model yang hemat biaya mengimplementasikan setiap item. Terakhir, pengembang senior memverifikasi git diff. Dengan menggunakan struktur ini, Anda dapat menghemat biaya lebih dari 70 persen dibandingkan mengandalkan satu model frontier saja.