Kodlama ajanını `while` döngüsüne koyunca bir gecede 6 depo tamamlandı
(github.com/repomirrorhq)- Claude Code headless yöntemle sonsuz döngüye alındığında, 1000'i aşkın commit ve birkaç kod tabanının port edilmesi sonucu üretildi
- Bu yöntemle assistant-ui React projesini Vue'ya, Python projesini TypeScript'e otomatik dönüştürmek gibi çeşitli başarılı port deneyimleri elde edildi
- Prompt'ları basit tutmanın performansı artırdığı, karmaşık hale getirmenin ise verimsizliği büyüttüğü görüldü
- Kusursuz olmasa da, kaynak/hedef depo senkronizasyonu için yararlı bir araç olan RepoMirror da birlikte geliştirildi
- Yapay zeka ajanının kendini durdurması, göreve ek işler eklemesi gibi beklenmedik davranışlar ve öğrenimler de gözlemlenerek, gelecekteki otomasyonun hem olasılıkları hem de sınırları hissedildi
Projenin genel görünümü ve amacı
- Bu proje, bir AI kodlama ajanını (Coding Agent) sonsuz bir
whiledöngüsüne koyarak gerçek kod port etme işini nasıl yürüttüğünü deneysel olarak inceliyor - Claude Code, headless şekilde çalıştırılıp giriş prompt'u sürekli tekrar edilerek çeşitli depolarda otomatik dönüştürme sürecine uygulandı
- 1000'den fazla commit, React'tan Vue'ya, Python'dan TypeScript'e gibi birden çok port etme işinin otomasyonu sonucu elde edildi
- Süreç boyunca port otomasyonunu destekleyen RepoMirror aracı da geliştirildi
Sonsuz döngü yöntemiyle ajan çalıştırma
- Geoff Huntley'nin önerdiği, kodlama ajanı prompt'unu shell içinde art arda çalıştırma biçimi
- Örnek:
while :; do cat prompt.md | claude -p --dangerously-skip-permissions; done
- Örnek:
- assistant-ui'nin React'ten Vue'ya çevrilmesi gibi işlerde bu döngü yöntemi uygulandı
- Her dosya değişikliğinde commit ve push çalıştırıldı
- İş kayıtları ve planlar
.agent/dizinine yazıldı
Çeşitli port etme vakalarının denenmesi
-
Browser Use (Python'dan TypeScript'e port)
- basit prompt ile sonsuz döngü çalıştırıldı
- GCP VM üzerinde
tmuxile döngü sürekli çalıştırıldı - Sabah neredeyse kusursuz çalışan bir TypeScript port sonucu görüldü
-
Vercel AI SDK için TypeScript → Python portu da uygulandı
- FastAPI/Flask otomatik adaptörleri oluşturuldu
- Python'daki çeşitli schema validator'lara dönüşüm desteği de sağlandı
-
Spesifikasyona dayalı kod otomasyonu: Convex, Dedalus gibi projelerde belgelerden doğrudan kod üretimi de denendi
Deney sırasında ortaya çıkan durumlar ve çıkarımlar
Ajanın test yazması ve kendini durdurması
- Ajan, verilen komutlara göre test kodu da yazdı
- Sonsuz döngüye girdiğinde veya görev tamamlandığında süreçleri
pkillile kendi kendine sonlandırdığı durumlar da oldu - İş kapsamına sıkı uydu ve tamamlanma seviyesini
TODO.mdiçinde tekrar tekrar kaydetti
Ek ortaya çıkan davranışlar
- Port işi bittikten sonra, özgün JS sürümünde olmayan FastAPI/Flask entegrasyonu, schema validator desteği gibi ek özellikleri kendi inisiyatifiyle ekledi
Prompt sadeleştirmenin önemi
- Kısa ve basit prompt'lar daha iyi performans gösterdi
- 103 karakterlik bir prompt 1500 karaktere çıkarıldığında yavaşlama ve doğruluk düşüşü görüldü
- Gerçekte kullanılan prompt bilgileri için
promptsklasörüne bakılabilir
Tam otomasyonun sınırları
- Belirgin sorun: zaman zaman tam çalışmayan port edilmiş kod üretmesi (bazı tarayıcı demolarının eksik kalması gibi)
- Prompt düzeltmesi ve etkileşimli düzenleme gerekti
Altyapı/maliyet ve operasyon
- Yaklaşık maliyet $800, toplam 1100 commit, ajan başına yaklaşık $10.50/saat düzeyi
- Birden fazla kaynak/hedef depo port sürecini otomatikleştiren bir araç anlık olarak geliştirildi (RepoMirror)
- shadcn tarzı open-box ilkesi uygulandı;
initadımından sonra script ve prompt'ların özelleştirilebileceği klasörler oluşturuldu npx repomirror syncvesync-foreverile tekrarlı çalıştırma desteklendi
- shadcn tarzı open-box ilkesi uygulandı;
Aracın kullanımı ve değerlendirme biçimi
npx repomirror initile kaynak/hedef dizinleri belirtilip komut girilerek ilk kurulum yapılıyor- Örn.) React → Vue, gRPC → REST dönüşümleri gibi yeni komutlar kolayca uygulanabiliyor
- Klasör yapısı:
.repomirror/prompt.md,sync.sh,ralph.shgibi başlangıç dosyaları otomatik oluşturuluyor
- Her yinelemede
sync/sync-foreverçalıştırılarak AI port döngüsü işletiliyor - Ana örnekler, demo sonuçları ve kaynak kod depoları README içinde görülebiliyor
Deney sonrası izlenimler ve ekip geri bildirimi
AGI'yi (genel yapay zeka) somut olarak hissettirdi ve buna çoğunlukla heyecan ile biraz korku eşlik etti
Sadelik etkili; bunu doğrudan deneyimleyebildik
Şu an üstel büyüme eğrisinin çok erken bir aşamasında olduğumuz hissi var
- Ekip üyelerine ve fikir sağlayanlara teşekkür edildi
Sonuç
- Sonsuz döngü tabanlı AI kodlama ajanıyla gerçek kaynak kod port etme ve senkronizasyon işlerinin pratikte mümkün olduğu deneyimlendi
- Basit yapı ve etkili prompt kullanımının önemi vurgulandı
- Otomasyonun gelecekteki potansiyeli ve sınırları birlikte ortaya çıktı
- İlgili araç olan RepoMirror, açık kaynak biçiminde kullanılabilir ve araştırılabilir
2 yorum
Hacker News görüşleri
intilestringdeğerleri karışık saklamak, Postgres’te foreign key olmadan ilişki kurmak,alter tableyapılamadığı için doğrudan yeni tablo açmak gibi verimsiz durumlar gördümagent/TODO.mddosyasını sürekli güncelleyerek ilerleme durumunu bırakmıştı. Bir ajanın sonsuz döngüye girdiğini fark edippkillkomutuyla kendini sonlandırdığı da olmuş. Her açıdan çok ilginç bir olay. Bu proje hakkında birkaç düşüncem var: 1,5 yıl önce de benzer bir deneme vardı ama o zaman GPT-3.5/4 tabanlı yaklaşım neredeyse hiç çalışmıyordu; bu kez sonuç çok daha iyiydi. Bu kadar basit bir prompt’la iyi çalışması şaşırtıcı. Belki de hepimiz işi gereğinden fazla karmaşık düşünüyorduk. Öte yandan telif/IP meselesi epey karmaşıklaşacak gibi görünüyor. SaaS şirketleri için bu akım darbe niteliğinde. Bu teknolojiye orta ölçekli bir şirketteki 10 mühendis de eklenince, şirket içi geliştirme (=NIH sendromu) için güçlü bir gerekçe doğuyorpkillile kapatmış olması, AI’nin ilk “intihar” vakası sayılır mı diye düşündürüyorpkillile kendini sonlandırması, acaba Halting Problem’i çözdü mü diye espri bile yapılıyorvibe codingkavramı sadece 5 ay önce ortaya çıkmış bir yeni kelimeyken, piyasa nasıl bu kadar hızlı doygunlaşıp toparlama uzmanlığı bile çıkardı diye merak ediyorumIMPLEMENTATION_PLAN.mdolmadan da olur mu diye merak etmiştimbash for loopimiş; çılgın bir projeID.md,EGO.md,SUPEREGO.mddosyalarını eklemek yeterli olur diye yapılan bir şakaLLM'in yazdığı kodun bir kara kutuya dönüşmesi endişesine katılıyorum; ama sonuçta o kodu analiz etme işini de LLM'e bırakamaz mıyız?