Menempatkan agen coding ke dalam while loop menghasilkan 6 repositori selesai hanya dalam semalam
(github.com/repomirrorhq)- Dengan menjalankan Claude Code dalam mode headless di dalam loop tak terbatas, dihasilkan lebih dari 1000 commit serta hasil porting beberapa codebase
- Dengan pendekatan ini, didapat berbagai keberhasilan porting otomatis seperti mengubah proyek React assistant-ui ke Vue, dan proyek Python ke TypeScript
- Dikonfirmasi bahwa kinerja meningkat ketika prompt dijaga tetap sederhana, sementara prompt yang rumit justru menambah inefisiensi
- Meski belum sempurna, turut dikembangkan alat RepoMirror yang berguna untuk sinkronisasi repositori sumber/target
- Diamati pula perilaku dan pembelajaran tak terduga seperti AI agent menghentikan dirinya sendiri, menambahkan tugas, sehingga sekaligus terasa jelas potensi dan batasan otomatisasi ke depan
Gambaran umum dan tujuan proyek
- Proyek ini menguji bagaimana AI coding agent menjalankan pekerjaan porting kode nyata saat dimasukkan ke dalam while loop tak terbatas
- Claude Code dijalankan secara headless, dengan prompt input yang terus diulang untuk menerapkan proses konversi otomatis ke berbagai repositori
- Dihasilkan otomatisasi berbagai pekerjaan porting seperti React ke Vue, Python ke TypeScript, dengan total lebih dari 1000 commit
- Dalam prosesnya, juga dikembangkan RepoMirror, alat bantu otomatisasi porting
Operasi agen dengan metode loop tak terbatas
- Bentuk yang direkomendasikan Geoff Huntley, yaitu menjalankan prompt coding agent secara berurutan dari shell
- Contoh:
while :; do cat prompt.md | claude -p --dangerously-skip-permissions; done
- Contoh:
- Metode loop ini diterapkan pada pekerjaan seperti mengubah assistant-ui dari React ke Vue
- Menjalankan commit dan push setiap kali sebuah file dimodifikasi
- Mencatat riwayat pekerjaan dan rencana di direktori
.agent/
Eksperimen berbagai kasus porting
-
Browser Use (porting dari Python ke TypeScript)
- Menjalankan infinite loop dengan prompt sederhana
- Loop dijalankan terus-menerus dengan tmux di GCP VM
- Paginya, terlihat hasil port TypeScript yang hampir sempurna dan berfungsi
-
Diterapkan juga pada porting Vercel AI SDK dari TypeScript ke Python
- Membuat auto-adapter FastAPI/Flask
- Mendukung konversi juga ke berbagai schema validator di Python
-
Otomatisasi kode berbasis spesifikasi: juga dicoba menghasilkan kode langsung dari dokumentasi untuk proyek seperti Convex dan Dedalus
Fenomena dan pelajaran selama eksperimen
Penulisan test oleh agen dan penghentian diri sendiri
- Agen juga menulis kode test sesuai perintah
- Ada kasus agen masuk ke loop tak terbatas atau menghentikan prosesnya sendiri dengan
pkillsetelah misi selesai - Menjaga kepatuhan pada cakupan tugas, serta berulang kali mencatat tingkat penyelesaian di
TODO.md
Perilaku emergen tambahan
- Setelah pekerjaan porting selesai, agen secara sukarela menambahkan fitur tambahan seperti integrasi FastAPI/Flask dan dukungan schema validator yang tidak ada di versi JS asli
Pentingnya penyederhanaan prompt
- Prompt yang pendek dan sederhana menunjukkan kinerja yang unggul
- Ketika prompt ditingkatkan dari 103 karakter menjadi 1500 karakter, proses menjadi lebih lambat dan akurasinya menurun
- Informasi prompt yang benar-benar digunakan dapat dilihat di folder prompts
Batas otomatisasi penuh
- Masalah yang menonjol: kadang menghasilkan kode porting yang tidak sepenuhnya berfungsi (misalnya beberapa demo browser belum selesai)
- Diperlukan penyesuaian prompt dan perbaikan interaktif
Infrastruktur/biaya dan operasi
- Biaya sekitar $800, total 1100 commit, tiap agen sekitar $10.50/jam
- Dibuat secara cepat alat otomatisasi proses porting untuk beberapa repositori sumber/target (RepoMirror)
- Menerapkan prinsip open-box bergaya shadcn, dan setelah tahap init dibuat folder yang bisa dikustomisasi untuk skrip serta prompt
- Mendukung eksekusi berulang dengan
npx repomirror syncdansync-forever
Penggunaan alat dan cara pemanfaatan
- Inisialisasi dengan
npx repomirror initsambil menentukan direktori sumber/target dan memasukkan perintah- ex) Mudah menerapkan perintah baru seperti konversi React → Vue, gRPC → REST, dan lain-lain
- Struktur folder:
- File awal seperti
.repomirror/prompt.md,sync.sh,ralph.shdibuat otomatis
- File awal seperti
- Menjalankan loop porting AI melalui eksekusi
sync/sync-foreverdi setiap siklus berulang - Contoh utama, hasil demo, dan repo source code dapat dilihat di README
Kesan setelah eksperimen dan umpan balik tim
Merasakan AGI (kecerdasan buatan umum) secara nyata, disertai kegembiraan dan sedikit rasa takut
Bisa mengalami langsung bahwa kesederhanaan memang efektif
Saat ini terasa seperti berada di tahap paling awal dari kurva pertumbuhan eksponensial
- Menyampaikan terima kasih kepada anggota tim dan pemberi ide
Kesimpulan
- Pengalaman mewujudkan pekerjaan porting dan sinkronisasi source code nyata dengan AI coding agent berbasis loop tak terbatas
- Menekankan pentingnya struktur sederhana dan pengelolaan prompt yang efektif
- Memperlihatkan sekaligus potensi masa depan otomatisasi dan batasannya
- Alat terkait (RepoMirror) dapat dimanfaatkan dan diteliti dalam bentuk open source
2 komentar
Opini Hacker News
intataustringdi Mongodb, membuat relasi di Postgres tanpa foreign key, atau langsung membuat tabel baru karenaalter tabletidak bisa dilakukanagent/TODO.mduntuk meninggalkan catatan progres, dan ada juga agen yang menyadari dirinya terjebak dalam infinite loop lalu mematikan dirinya sendiri dengan perintahpkill. Dalam banyak hal ini kejadian yang sangat menarik. Saya punya beberapa pemikiran tentang proyek ini: 1,5 tahun lalu pernah ada percobaan serupa, tetapi waktu itu nyaris tidak berjalan dengan basis GPT-3.5/4; kali ini hasilnya jauh lebih baik. Mengejutkan bahwa hanya dengan prompt sesederhana ini semuanya bisa berjalan cukup baik. Mungkin benar kita semua selama ini terlalu mempersulit pekerjaan. Di sisi lain, masalah copyright/IP tampaknya akan menjadi sangat rumit. Bagi perusahaan SaaS, arus ini akan terasa sebagai pukulan. Jika teknologi ini dipadukan dengan 10 engineer di perusahaan menengah, alasan untuk pengembangan internal (= sindrom NIH) jadi sangat kuatpkillsaat terjebak di infinite loop itu merupakan kasus pertama AI “bunuh diri”pkilljuga memunculkan lelucon apakah ia baru saja memecahkan Halting ProblemIMPLEMENTATION_PLAN.mdbash for loop, proyek yang gilaID.md,EGO.md,SUPEREGO.md, lalu selesai, itu leluconnyaSaya setuju dengan kekhawatiran bahwa kode yang ditulis LLM menjadi black box, tetapi pada akhirnya bukankah kita bisa meminta LLM untuk menganalisis kode itu juga?