𝗖𝗼𝗱𝗶𝗻𝗴 𝗔𝗴𝗲𝗻𝘁𝘀 𝗪𝗿𝗶𝘁𝗲 𝗦𝘄𝗶𝗳𝘁 𝗪𝗲𝗹𝗹, 𝗕𝘂𝘁 𝗧𝗵𝗲𝘆 𝗖𝗮𝗻'𝘁 𝗙𝗶𝗻𝗶𝘀𝗵 𝗜𝘁
Gerçek Swift ve Xcode görevleri üzerinde yapay zeka kodlama ajanlarını test etmek için aylarımı harcadım. Basit demolar kullanmadım. Onlara derleme hedefleri (build targets) ve testleri olan gerçek görevler verdim.
İlk taslak genellikle iyidir. Yetenekli bir model, doğru görünen kodlar yazar. Tipler birbirine uyar. Görünümler (views) mantıklıdır. Eğer tek sorun Swift yazmak olsaydı, bu araçlar tamamlanmış olurdu.
Asıl sorun ilk taslaktan sonra ortaya çıkıyor. Bitmiş gibi görünen kod ile aslında doğru olan kod arasındaki boşluktan kaynaklanıyor.
Claude Code veya Codex gibi modern araçlar derleme hatalarını (compile errors) iyi yönetiyor. Size derleme hatası veren kodlar sunmuyorlar. Asıl başarısızlıklar, derleyicinin (compiler) göremediği hatalardır.
Bu başarısızlıklar vaktimi boşa harcıyor:
• Niyet uyuşmazlığı (Intent mismatch): Kod derleniyor ve testler geçiyor. Ancak davranış yanlış. Ajan, gerçek hedefiniz yerine geçen bir testin yeşil ışığını takip ediyor. Niyeti kontrol etme yöntemi yok.
• Eşzamanlılık yarışları (Concurrency races): Kod temiz bir şekilde derleniyor ancak veri yarışları (data races) mevcut. Bunlar yalnızca çalışma zamanında (runtime) ortaya çıkar. Ajan, başarılı bir derleme görüyor ve devam ediyor. Bunları düzeltmek genellikle yeniden tasarım gerektirir ve ajan bunu başaramıyor.
• Regresyon döngüleri (Regression loops): Ajan bir hatayı düzeltiyor ama başka birini bozuyor. İkinci hatayı düzeltirken, ilk düzeltmeyi geri alıyor. İki bozuk durum arasında gidip geldiği bir döngüye giriyor. Daha önce neyin başarısız olduğuna dair bir hafızası yok.
• Kötü mimari: Ajan, framework ile çatışan kodlar yazıyor. Uygulama yapınızı görmezden geliyor. Tek seferlik bir betik (script) için işe yarar ancak gerçek bir kod tabanında (codebase) başarısız olur.
Bunlar dil problemleri değil. Model Swift'i biliyor. Derleyicinin göremediği şeyleri kaçırıyor. Sonucun niyetinizle eşleşip eşleşmediğini veya yapının profesyonel olup olmadığını bilmiyor.
Bu durum maliyeti token'lardan dikkate (attention) kaydırıyor. Her birkaç adımda bir izlemenizi gerektiren bir ajan, işinizi kolaylaştırmış sayılmaz. Yazma işlemini denetlemeye dönüştürmüş oldu.
Modelin etrafındaki döngüyü değiştirerek sonuçlarımı iyileştiriyorum. Ajanın neleri kontrol ettiğine ve neleri hatırladığına odaklanıyorum.
Bu sizin deneyiminizle örtüşüyor mu? Apple platformlarında ajanlar çalıştırdığınızda süreç nerede aksıyor? Niyet uyuşmazlıkları mı, çalışma zamanı yarışları mı yoksa başka bir şey mi?
Kaynak: https://dev.to/jbrackin/coding-agents-are-good-at-writing-swift-theyre-bad-at-finishing-it-md3
İsteğe bağlı öğrenme topluluğu: https://t.me/GyaanSetuAi
