Ralph nedir?
Geoffrey Huntley, Temmuz 2025’teki yazısında tekniği tek satırla anlatıyor: while :; do cat PROMPT.md | claude-code ; done. Yani bir istem dosyasını ajana ver, ajan bitirince aynısını yeniden ver, sonsuza kadar. Adı, Simpsonlar’daki saf ama inatçı çocuk Ralph Wiggum’dan geliyor.
Bu kadar basit bir şeyin işe yaraması, etrafındaki düzenden geliyor:
- Şartname dosyaları. Ne istediğini önce ajanla konuşarak yazıyorsun. Her konu ayrı bir dosyada.
- Yapılacaklar listesi. Ajan önceliklendirilmiş bir liste tutuyor ve her turda listeden sadece en önemli tek işi alıyor.
- Geri basınç (backpressure). Testler, tip kontrolü ve derleyici kötü sonucu reddediyor. Ajan hata görünce bir sonraki turda düzeltiyor.
- Kısa bir talimat dosyası. Projeyi nasıl derleyip çalıştıracağını anlatan, ajanın kendi öğrendikçe güncellediği birkaç satır.
Neden işe yarıyor?
Bir modelin bağlam penceresi dolu oldukça performansı düşüyor. Örneğin NoLiMa çalışmasında test edilen 13 modelin 11’i, 32 bin token’da kısa metindeki başarısının yarısının altına indi. Videoda bu, pencerenin ilk kısmı için “akıllı bölge”, doluya yakın kısmı için “aptal bölge” diye anlatılıyor. Kesin sınırlar modelden modele değişiyor.
Ralph her işi yeni bir oturumda başlatıyor. Ajanın önceki turdan hatırladığı hiçbir şey yok. Bilmesi gereken her şey dosyalarda ve git geçmişinde. Böylece her iş, pencerenin en temiz hâliyle yapılıyor. Döngü de ajanın kontrolünde değil. Ajan “bitti” dese bile döngü devam ediyor, durdurmak senin işin.
Pencereyi “aptal bölge”ye düşürmeden çalışmanın başka tekniklerini bağlam mühendisliği yazısında anlattık.
Ne zaman bozuluyor?
Huntley bunu açıkça yazıyor. Ajan bazen işin yerine boş bir taslak koyuyor, bazen kodda arama yapıp bulamayınca aynı şeyi ikinci kez yazıyor. Bazen sabah kalktığında bozuk bir depo buluyorsun. Sonuçlar her seferinde farklı. Huntley tekniği sıfırdan başlayan projeler için öneriyor, var olan bir kod tabanında kullanmayacağını söylüyor.
İki pratik risk daha var. Döngünün durmadan çalışması için ajanın izin sormaması gerekiyor. Bu yüzden onu kapalı bir ortamda çalıştırmak şart. Bir de fatura: Her tur token harcıyor.
Anthropic’in eklentisi neyi farklı yapıyor?
Anthropic, Kasım 2025’te Claude Code için bir Ralph eklentisi yayımladı. Ocak 2026’da hukuki bir uyarı üzerine adı ralph-loop oldu. /ralph-loop "görev" --max-iterations 20 --completion-promise "BİTTİ" gibi çalışıyor. Claude çıkmak istediğinde bir Stop hook bunu engelliyor ve aynı istemi geri veriyor.
Videonun eleştirisi şu: Döngü aynı oturumun içinde dönüyor. Bağlam sıfırlanmıyor, birikiyor ve dolunca özetleniyor (compaction). Özet, modelin neyi önemli sandığına göre yapılıyor ve kritik bir ayrıntı kaybolabiliyor. Bir de durma kararı yine modelde: Belirlediğin kelimeyi yazınca döngü bitiyor. README de bu kelimenin birebir eşleşmeyle arandığını, asıl güvencenin tur sınırı olduğunu söylüyor.
Yani eklenti “aynı istemi tekrar ver” kısmını alıyor, “her turda temiz başla” kısmını almıyor. Kısa ve net bir görev için bu yeterli olabilir. Saatlerce sürecek bir iş için dışarıdaki basit bash döngüsü hâlâ daha sağlam.
Ajanları sonsuz döngüde, testleri hakem yaparak çalıştırmanın büyük ölçekli bir örneğini 16 Claude’un C derleyicisi yazdığı deneyde anlattık.
Sonra ne oldu?
- Huntley 17 Ocak’taki “everything is a ralph loop” yazısında fikri genelleştirdi: Tek süreç, tek depo, her turda tek iş. Çoklu ajan düzenlerinin şimdilik gereksiz bir karmaşa olduğunu savunuyor.
- Eklenti Mart’ta, döngü durumunu onu başlatan oturuma bağlayan bir düzeltme aldı. Önceden aynı projede açılan başka bir Claude oturumu da döngüye takılabiliyordu.
- Claude Code 11 Mayıs’taki 2.1.139 sürümüyle yerleşik
/goalkomutunu ekledi. Bir bitiş koşulu yazıyorsun, Claude koşul sağlanana kadar tur tur çalışıyor. Farkı, koşulun işi yapan model değil, her turdan sonra ayrı bir model tarafından kontrol edilmesi. Ama döngü yine aynı oturumda dönüyor. Ajanın durma kararını ondan alıp dışarıya koymanın diğer yollarını ajanı raylarda tutmak yazımızda bulabilirsin.
Düşün
- Ajanın bir sonraki turda bilmesi gereken her şey bugün nerede duruyor: sohbette mi, dosyada mı?
- Projende ajanın kötü bir değişikliğini otomatik reddedecek test ya da kontrol var mı?
Videoyu izle
Kaynaklar (8, İngilizce)
- Better Stack: I Can't Believe Anthropic Messed Up The Ralph Wiggum (video) (yeni sekmede açılır)
- Geoffrey Huntley: Ralph Wiggum as a "software engineer" (yeni sekmede açılır)
- Geoffrey Huntley: everything is a ralph loop (yeni sekmede açılır)
- GitHub: anthropics/claude-plugins-official, ralph-loop plugin (yeni sekmede açılır)
- GitHub: anthropics/claude-code, ralph-wiggum plugin (original) (yeni sekmede açılır)
- arXiv: NoLiMa, Long-Context Evaluation Beyond Literal Matching (yeni sekmede açılır)
- Claude Code Docs: Keep Claude working toward a goal (/goal) (yeni sekmede açılır)
- Claude Code CHANGELOG (yeni sekmede açılır)
Kendi cümlelerimizle yazılmış bir özettir, çeviri değildir. Tüm kaynaklar yukarıda.