· kaynak dev.to (home feed)
SWE-Gate benchmark'ı, testleri geçen agent yamalarının %34'ünün kod inceleme kurallarına takıldığını ortaya koyuyor
SWE-Gate, kodlama agent'larını iki kapıdan geçiriyor: fonksiyonel testler ve gerçek pull request'lerden çıkarılan inceleme kısıtlamaları. Deneylerde, testleri geçen 644 yamadan 221'i inceleme kapısını geçemedi.
Agent kodu için ikinci bir kapı
Yeni yayımlanan bir benchmark olan SWE-Gate, testlerin geçilmesinin kodlama agent'larını değerlendirmek için yanlış bir bitiş çizgisi olduğunu savunuyor. dev.to'da yayımlanan bir yazıya göre benchmark iki sonucu ayrı ayrı ölçüyor: bir yamanın bir deponun fonksiyonel testlerini geçip geçmediği ve bir merge işlemini başka türlü engelleyecek inceleme kurallarını karşılayıp karşılamadığı. Deneylerinde 644 agent üretimi yama fonksiyonel kapıyı geçti ve bunların 221'i — kabaca %34'ü — inceleme kapısında başarısız oldu.
Asıl mesele agent'ların zayıf olması değil; standart değerlendirmenin bir başarısızlık modunu gizlemesi. SWE-bench soyundan gelen benchmark'lar bir agent'ı, mevcut test paketini geçen bir yama ile GitHub issue'larını çözmesi üzerinden puanlar. Ancak üretim kodu insan incelemesinden de sağ çıkmalıdır; orada uygulanan kısıtlamalar — stil ve biçimlendirme kuralları, mimari konvansiyonlar, güvenlik sınırları, performans beklentileri, sürdürülebilirlik normları — test paketlerinde kodlanmaz. Bunlar inceleme rehberlerinde, ekip alışkanlıklarında ve kıdemli mühendilerin kararlılığında yaşar; bu yüzden testlere göre optimize edilmiş agent'lar bunlara dair hiçbir sinyal almaz.
Benchmark nasıl inşa edildi
SWE-Gate, 75 Python deposundan derlenen 303 depo düzeyinde onarım görevinden oluşuyor. Her görev; orijinal issue'nun kabul kriterlerini yansıtan bir fonksiyonel test paketi, gerçek pull request yorumlarından türetilmiş ayrı bir kısıtlama paketi, testleri geçerken kuralları çiğneyen uyumsuz bir yama ve iki kapıyı da geçen bir altın yama ile birlikte geliyor.
Kısıtlamalar, merge edilmiş pull request'lerdeki inceleme yorumlarından çıkarıldı. Yazarlar yalnızca sohbet niteliğinde olmayan, değişiklik talep eden yorumları ayıkledi; ardından uygulanabilir talepleri — fonksiyon imzalarına type hint eklenmesi ya da elle yazılmış regex'in mevcut bir validation helper ile değiştirilmesi gibi — fonksiyonel paket geçtikten sonra çalışan testlere dönüştürdü.
Bu sıralama bilinçli. Bir agent'ın puanı iki değerden oluşur: fonksiyonel doğruluk ve kısıtlama uyumu; ikincisi yalnızca ilki başarılı olduktan sonra ölçülür. Bu, "agent sorunu çözemedi" ile "agent, hiçbir incelemecinin kabul etmeyeceği bir şekilde çözdü" durumlarını birbirinden ayırır — farklı müdahaleler gerektiren farklı başarısızlık modlarıdır bunlar.
Deneyler ne gösterdi
Değerlendirme, dört LLM backend'i — GPT-4, Claude ve iki açık kaynak model — depo bağlamı, issue açıklaması ve yeniden deneme döngüsünde test geri bildirimi sağlayan ortak bir agent iskeleti içinde çalıştırdı.
Kaydedilen denemelerden 359 yama (%35,8) fonksiyonel testlerde başarısız oldu; genellikle mantık hataları, issue'nun eksik anlaşılması ya da halüsinasyon API'ler nedeniyle. 221 deneme daha (%22,0) testleri geçti ama inceleme kısıtlamalarını çiğnedi. Yalnızca 423 deneme (%42,2) iki kapıyı da geçti. 221 kısıtlama başarısızlığı, yalnızca test temelli bir hattın asla yakalayamayacağı türden: otomatik CI'den rahatça geçer, sonra bir incelemeciden geri döner.
Uç durumlar değil, sıradan ihlaller
SWE-Gate'in izlediği kısıtlama ihlalleri göz alıcı değil. Eksik type annotation'lar bunların %18'ini, paylaşımlı bir helper olması gereken kopyala-yapıştır mantığı %15'ini, yanlış soyutlama katmanına yerleştirilmiş iş mantığı %12'sini, hardcode edilmiş magic değerler %11'ini ve eksik docstring'ler %9'unu oluşturuyor. Bunlar kod incelemesindeki sıradan sürtünme noktalarıdır, nadir uç durumlar değil — ve tam da bu yüzden bunları yok sayan bir benchmark agent performansını olduğundan iyi gösterir.
Agent geri bildirim döngüsünün yeniden düzenlenmesi
Bulgular, agent'ların orkestre edilme biçiminin değişmesini destekliyor. Alışılan tek döngü — yama üret, testleri çalıştır, yeniden dene — iç içe bir hale dönüşüyor: fonksiyonel paket geçene kadar test çıktısıyla yeniden deneyin, ardından inceleme kapısı geçilene kadar kısıtlama geri bildirimiyle yeniden deneyin.
İkinci döngüyü beslemek daha zordur. Fonksiyonel geri bildirim somuttur; beklenen ve gerçek değerleriyle bir assertion uyuşmazlığıdır. Kısıtlama geri bildirimi ise yorumlayıcıdır; agent'ın bir deponun neden, diyelim ki, controller kodundan database çağrısını yasakladığını anlamasını gerektirir. Yazı, agent'ların bağlam olarak depo rehberlerine, çıplak hata mesajları yerine bir ihlalin neden önemli olduğuna dair açıklamalara ve tercih edilen kalıbın örneklerine ihtiyaç duyduğunu öne sürüyor. Bu, fonksiyonel geri bildirimden daha ağır bir bağlam yüküdür ve doğru anda doğru rehberleri getirmeye bağlıdır.
Çok aşamalı değerlendirme ayrıca izlenecek daha fazla durum demektir: hangi yamalar hangi kapıyı geçti, agent daha önce hangi kısıtlamaları çiğnedi ve mevcut yamaya hangi kurallar uygulanıyor. Yazarlar bunu, fonksiyonel başarısızlık, kısıtlama başarısızlığı ve tamamlanma için ayrı durumlara sahip bir state machine olarak modelliyor.
Neden önemli
SWE-Gate, uygulayıcıların zaten şüphelendiği şeye bir sayı koyuyor: testleri geçmek, kod ship'lemekle aynı şey değil. Deneylerindeki testleri geçen yamaların üçte biri incelemeden sağ çıkamazdı; bu, yalnızca test geçişine dayanan benchmark puanlarının agent çıktısının gerçekte ne kadarının merge edilebilir olduğunu abarttığı anlamına geliyor. Kodlama agent'ı geliştiren ya da kullanan ekipler için pratik adımlar şunlar: iki kapıyı ayrı ayrı değerlendirmek, inceleme standartlarını test edilebilir kısıtlamalar olarak kodlamak ve kısıtlama geri bildirimini agent döngülerinde sonradan akla gelen bir şey değil birinci sınıf bir sinyal olarak ele almak.
- #ai
- #code-review
- #benchmarks
- #coding-agents
- #llm
İlgili yazılar
- SWE-Bench ProMax: en iyi model büyük çok dilli refactoring görevlerinin yalnızca yüzde 41,2'sini çözebiliyor
- arXiv ön baskısı LLM benimsenmesini viral yayılım olarak modelleyip bağımlılığa doğru kritik eşikler öne sürüyor
- Anthropic, kodlama agent'ları için 200K context üzerinde extended thinking sunan Claude Sonnet 4.5'i yayınladı