- Cursor, otonom kodlama ajanlarını haftalar boyunca paralel çalıştırarak büyük ölçekli projeleri tamamlayıp tamamlayamayacağını deneyimledi
- Başlangıçta dinamik işbirliği yapısı kullanıldı, ancak lock çakışmaları ve iş tekrarları nedeniyle darboğazlar oluştu
- Daha sonra roller Planlayıcı (Planner) ve Çalışan (Worker) olarak ayrıldı; bu da paralellik ve verimliliği büyük ölçüde artırdı
- Bu yapı ile bir web tarayıcısı sıfırdan geliştirildi; yüzlerce ajan 1 milyondan fazla satır kod yazdı
- Deney sonuçları, basit yapı ve uygun prompt tasarımının uzun vadeli otonom kodlamayı ölçeklendirmenin anahtarı olduğunu gösterdi
Tek ajanın sınırları
- Günümüzün tek kodlama ajanı, basit görevlerde verimli olsa da karmaşık projelerde yavaş kalıyor
- Birden fazla ajanı paralel çalıştırmak doğal bir ölçekleme yönü, ancak görev koordinasyonu zor
- Başlangıçta önceden planlama olmadan dinamik işbirliği yöntemi denendi
- Her ajanın diğer ajanların durumuna bakıp bir sonraki işi kendisinin belirlediği bir yapı
İşbirliğinden öğrenilenler
- Tüm ajanların eşit yetkiye sahip olduğu ve paylaşılan dosyalar üzerinden çalışmayı koordine ettiği bir yapı kuruldu
- Her ajan diğer ajanların durumunu kontrol ediyor, iş alıyor ve durumunu güncelliyordu
- Tekrarı önlemek için lock mekanizması kullanıldı
- Sorunlar
- Ajanlar lock'u uzun süre elinde tuttuğunda ya da serbest bırakmadığında, toplam hız 20 ajandan yalnızca 2–3'ü çalışıyormuş seviyesine düştü
- Lock tutulurken başarısız olma ya da lock olmadan dosya değiştirme gibi durumlar sistem kararsızlığına yol açtı
- Ardından iyimser eşzamanlılık denetimi (optimistic concurrency control) modeline geçildi
- Okuma serbest bırakıldı, yazma ise durum değişikliğinde başarısız olacak şekilde ayarlandı
- Bu yaklaşım basit ve kararlıydı, ancak hiyerarşisiz yapıda ajanlar riskten kaçınan davranışlar sergiledi
- Zor problemlerden kaçınıp yalnızca küçük düzeltmeleri tekrarladılar; ilerleme üretmeyen iş döngüleri oluştu
Planlayıcı ve çalışan yapısı
- Roller ayrılarak hiyerarşik bir pipeline yapısına geçildi
- Planlayıcılar (Planners): kod tabanını inceleyip görev üretiyor, gerekirse alt planlayıcılar oluşturuyor
- Çalışanlar (Workers): yalnızca verilen görevi yerine getiriyor ve tamamladıktan sonra değişiklikleri push ediyor
- Her döngüde bir değerlendirici ajan (judge) bir sonraki aşamaya geçilip geçilmeyeceğine karar veriyor
- Bu yapı işbirliği sorunlarının çoğunu çözdü ve büyük ölçekli proje ölçeklenebilirliği sağladı
Uzun süreli çalışma deneyleri
- Deneyin hedefi: bir web tarayıcısını sıfırdan geliştirmek
- Yaklaşık 1 hafta çalıştırıldı ve 1.000 dosyada 1 milyondan fazla satır kod yazıldı
- Yüzlerce çalışan aynı branch'e aynı anda push etti, ancak çakışmalar minimumda kaldı
- Ortaya çıkan kod GitHub'da yayımlandı
- Ek deneyler
- Solid → React geçişi: 3 haftada +266K/-193K değişiklik, merge edilebilirlik doğrulandı
- Video render iyileştirmesi: Rust sürümüyle 25 kat hız artışı, zoom·pan·motion blur özellikleri eklendi
- İlgili kodun yakında production'a alınması planlanıyor
Temel çıkarımlar
- Milyarlarca token kullanımı sonucunda sistem tamamen verimli olmasa da beklenenden daha yüksek performans gösterdi
- Model seçimi, uzun süreli otonom çalışmanın kilidi
- GPT-5.2, odağı koruma, talimat izleme ve doğru uygulamada üstün performans gösterdi
- Opus 4.5 hızlı sonlandırma eğilimi gösterdi
- GPT-5.2, planlayıcı rolünde GPT-5.1-codex'ten daha uygun bulundu
- Her rol için en uygun model ayrı ayrı seçildi
- Karmaşıklığı azaltmak performansı artırdı
- Kalite bütünleştiricisi (integrator) rolü tersine darboğaz yarattı
- Çalışanlar çakışmaları kendi başlarına çözebildi
- Basit yapı en etkili seçenek oldu
- Dağıtık sistem teorisi ya da organizasyon tasarımı modelleri yalnızca kısmen işe yaradı
- Yapı çok az olduğunda çakışma ve tekrar oluşuyor, çok fazla olduğunda ise kırılganlık artıyor
- Prompt tasarımı sistem davranışını belirleyici ölçüde etkiledi
- Uzun süreli odağı koruma, patolojik davranışları engelleme ve işbirliğini teşvik etmede kilit rol oynadı
Gelecek görevler
- Çok ajanlı koordinasyon hâlâ zor bir problem
- Planlayıcıların görev tamamlandığında bir sonraki adımı otomatik planlaması için iyileştirme gerekiyor
- Bazı ajanlar aşırı uzun süre çalıştığından periyodik yeniden başlatma gerekiyor
- Ancak temel soru, yani “Ajan sayısını artırmak otonom kodlamayı ölçeklendirebilir mi?” konusunda
- Yüzlerce ajanın haftalar boyunca işbirliği yaparak gerçek ilerleme sağlayabildiği doğrulandı
- Bu teknolojinin gelecekte Cursor'un ajan özelliklerine yansıtılması planlanıyor
1 yorum
Hacker News yorumları
Steve Yegge’nin Welcome to Gas Town yazısıyla ilgili bir şey üzerinde çalıştığım için bunu ilgiyle okudum
Kısa süre önce paylaştığım LLM tahminleri yazısında, 2029 civarında yapay zeka destekli kodlamayla tarayıcı yapmanın şaşırtıcı olmayacağını söylemiştim; Cursor’ın bu projesi de ikinci deneme sayılır
Başka bir örnek bu Reddit gönderisinde görülebilir
Deponun testlerini bizzat çalıştırdım; hata ve uyarılarla doluydu, CI da uzun zamandır başarısızdı. Bu durumda buna “başarılı bir örnek” demek ne kadar doğru emin değilim. Tam otonom kodlamadan ziyade insan merkezli yardımcı yaklaşımın daha gerçekçi olduğunu düşünüyorum
O PR’ı neden hâlâ merge etmediklerini merak ediyorum. Yapay zeka ajan sürülerinin uzun vadede karmaşık yazılımları tamamladığı bir gelecek heyecan verici, ama şu anki örnek fazla zayıf. İnsanla işbirliği yapılan noktalar daha önemli
Zorluk seviyesini kademeli artırarak deney yapmamış olmaları üzücü. React CRUD → Paint klonu → dosya yöneticisi → tarayıcı şeklinde ilerleselerdi gelişim aşamaları çok daha net görülebilirdi
Ben de benzer bir yaklaşımla tjs oluşturmuştum. Dünyanın en hızlı ve en doğru JSON Schema Validator’ı; git subtree kullanan planner/delegate deseni etkili olmuştu. Standartları ve testleri iyi tanımlanmış yazılımlarda yapay zeka ajanları çok hızlı şekilde yeniden yazım ve optimizasyon yapabiliyor
İlgili komutlar spawn-perf-agents.md içinde görülebilir
Tarayıcıyı sıfırdan yapmak çok zor ama yazıda sunulanlar detaylı analiz açısından yetersizdi. Sadece “derleniyor” düzeyindeyse bunun anlamı sınırlı. Asıl doğrulama, bir sonraki değişikliği kararlı şekilde birleştirebilip birleştiremediğinizdir
Bloga göre trilyonlarca token kullanılmış; bunu OpenAI API fiyatlarıyla hesaplarsanız on milyonlarca dolarlık bir ölçeğe denk geliyor. Bu seviyede, belki de doğrudan tarayıcı ekibine bağış yapmak daha mantıklı olurdu
Bizzat derlemeyi denedim ve 100’den fazla derleme hatası aldım. Commit’lerin çoğu CI başarısız durumdaydı; gerçekte yapılan şey de çeşitli açık kaynak kütüphanelerini bir araya getirmekti.
quickjs, wgpu, winit, egui, html parser gibi mevcut bileşenler aynen alınmıştı ama CEO bunu “özel bir JS VM” gibi anlatarak yanlış bir izlenim oluşturuyordu
Yine de yapay zekanın bu entegrasyonu otonom biçimde gerçekleştirmiş olması etkileyici
Kod çok kırılgan ve kararsız görünüyordu. Örneğin render_placeholder fonksiyonu, sadece frame buffer’ı dolduran geçici bir kod gibi duruyor.
Böyle bir kodun gerçekte ne işe yaradığını ve test başına token/zaman maliyetinin ne kadar olduğunu merak ediyorum