Dilde Özyinelemeli Öz-İyileştirme: ~280 Dilde Kod Zekâsını İnceden İnceye Cilalamak
> ~280 dil için kod zekâsı desteği sunuyoruz. Hiçbir insan bunu elle denetleyemez. Bu yüzden bir dilde özyinelemeli öz-iyileştirme döngüsü kurduk — nokta kontrolü, hakem olarak LLM, tek bir şeyi düzelt, yeniden doğrula — ve çıkarım sadece yeşil değil gerçekten doğru olana kadar bunu izole ajanlardan oluşan bir filoyla çalıştırıyoruz.
Bu yazıdaki sayılar, yayınlandığı tarihteki (Mayıs 2026) sistemi yansıtır. Güncel rakamlar için ekip sayfamıza bakın.
Maguyva, yaklaşık 280 dilde kaynak koddan sembolleri, referansları ve bir bağımlılık grafiğini çıkarır. Her dil özel bir tree-sitter handler’ıdır — sorgular, sezgisel yöntemler, uç durumlar — ve her handler kendine özgü bir şekilde ince bir hata yapabilir. Okuma olarak yayınlanan bir metot çağrısı. Yanlış çevreleyen kapsama atfedilen bir fonksiyon. Sadece orada olmayan bir ilişki.
Bunu elle denetleyemezsiniz. Hiçbir ekip 280 gramer genelinde çıkarım çıktısını okuyup kötü kenarları (edge) tespit edemez. Bu yüzden ilginç soru “çıkarımımız doğru mu” değildir — “her döngüde bir insan olmadan, bu genişlikte, yanlış olduğunu nasıl anlarsınız“dır. Bizim yanıtımız dilde özyinelemeli öz-iyileştirmedir: dil ajanları tarafından yürütülen bir kalite döngüsü, hakem görevi gören bir LLM ve sürekli yeniden öğrendiğimiz tek bir kural: yeşil, doğru ile aynı şey değildir.
Yeşil, doğru değildir
Her dilin bir fixture takımı vardır ve bir yayın kapısı bunu beş boyutta puanlar — doğruluk, yapısal bütünlük, eksiksizlik, kalite ve performans. Bir dil yalnızca fixture’larında kesinlik (precision) ≥ 0.95, duyarlılık (recall) ≥ 0.99 ve F1 ≥ 0.97 olduğunda, istatistiksel güven için en az 20 beklenen kenarla birlikte YEŞİL olur. Bunun altında SARI veya KIRMIZI olur ve yayınlanmaz.
Bu kapı gereklidir ama yeterli değildir. Fixture’lar, bizim yazdığımız fixture’lara karşı doğrulanır. Zaten düşündüğümüz durumları kodlarlar. Bir handler kendi fixture’larında kusursuz olabilir ve yine de yalnızca gerçek kodda ortaya çıkan bir deseni bozabilir — bir makro deyimi, generic sınırlı bir metot, kimsenin fixture yazmadığı bir dil özelliği. YEŞİL, fixture’ların geçtiği anlamına gelir. Gerçek bir deponun temiz bir şekilde çıkarıldığı anlamına gelmez. Bu yüzden döngünün fixture’ları geride bırakıp vahşi doğaya bakması gerekir.
İç döngü: nokta kontrolü, hakemlik, düzeltme, kanıtlama
Çekirdek döngü, bir seferde bir dil çalıştırır:
┌──────────────────────────────────────────────────────────┐
│ │
▼ │
1. corpus run ── clone real-world repos, extract relationships │
│ │
▼ │
2. spot-check 100 edges (seed 42, then seed 123 to cross-check) │
│ │
▼ │
3. LLM judge classifies every sampled edge: │
CORRECT · FALSE_POSITIVE · TYPE_ERROR · │
SCOPE_ERROR · METADATA_ERROR │
│ │
▼ │
4. fix ONE thing — handler .py, .scm query, or config │
│ │
▼ │
5. re-validate — F1 + re-classify + manifest diff (no regressions)│
│ │
better? ──no──► revert, try a different fix ────────────────────┤
│ yes │
▼ │
6. promote the fix into fixtures (a permanent regression guard) ──┘
Bunun debelenmek yerine işe yaramasını sağlayan birkaç şey var.
Hakem bir API çağrısı değil, ajandır. “Hakem olarak LLM” dediğimizde, dil ajanının kendisinin örneklenen her kenarı gerçek kaynağa karşı okuduğunu ve sabit beş kategorili bir rubrikle sınıflandırdığını kastediyoruz: bu kenar doğru mu, yanlış pozitif mi, yanlış türle doğru ilişki mi, yanlış kapsama mı bağlı, yoksa yanlış meta veri mi taşıyor? Bu rubrik oyunun tamamıdır — “%23 hata oranı”, bunların gerçek kusurlar mı yoksa hakemin yanlış saymasından mı kaynaklandığını bilene kadar anlamsızdır.
Tek bir şeyi düzelt, sonra kanıtla. Her yineleme tam olarak bir düzenlenebilir varlığı değiştirir, ardından sabit bir test düzeneğine karşı yeniden çalışır ve değişikliği yalnızca F1 iyileşirse ve yeniden sınıflandırma daha iyi görünürse tutar. Öyle değilse, geri alınır. Spekülatif düzenlemelerden oluşan bir grup yok, “daha iyi olmalı” yok. Bir değişiklik yerini hak eder ya da gider. Ve bir düzeltme kalıcı olduğunda, fixture takımına terfi ettirilir — böylece düzelttiği hata bir daha asla sessizce geri gelemez. Bu terfi adımı, döngüyü sadece tekrarlayıcı değil özyinelemeli yapan şeydir: her geçiş, bir sonraki geçişin karşı doğrulama yaptığı kehanet mekanizmasını (oracle) güçlendirir.
Sürekli yeniden öğrendiğimiz ders: metrikler fazla raporlar
İşte tuzak, ve biz doğrudan içine düştük. İkincil derlem metrikleri — çıkarılan bir hedefin ne sıklıkla çözülebilir bir sembolü olmadığı, kaç sembolün “öksüz” göründüğü ve benzerleri — sorunları büyük ölçüde fazla raporlar. Bunlar çoğunlukla hata değil, paradigma eserleridir.
En temiz örnek: llvm bir keresinde %73’lük bir “sembolsüz kaynak” oranı gösterdi ve felaket olarak damgalandı. Derinlemesine inceledik. Gerçek doğruluk %98,5’ti. “Eksik semboller” neredeyse tamamı meşru dış referanslardı — standart kütüphaneye, çerçevelere, depo dışında yaşayan koda yapılan çağrılar. Metrik, handler’daki bir kusuru değil, dilin bir özelliğini ölçüyordu. Zig, COBOL ve Odin gibi diller %65-70 “öksüz” oranı gösterir ve tamamen doğrudur; COBOL’da hiç gerçek hata yoktu.
Eğer bu sayıların işi yönlendirmesine izin verseydik, haftaları zaten doğru olan handler’ları “düzeltmekle” harcar ve sessiz, gerçek hataları olan dilleri görmezden gelirdik. Sonuç açık: toplu metrikler en iyi ihtimalle kaba bir triyaj sinyalidir. Gerçek kalite sinyali, kenar sınıflandırmasıyla yapılan nokta kontrolüdür — gerçek depolardaki gerçek kenarlara bakmak ve onları tek tek yargılamak. Sezgiden çok veri, ama ancak hangi verinin gerçeği söylediğini bildiğinizde.
Dış döngü: bir maraton değil, bir filo
Bir seferde bir dil, 280 dilin tamamında sonsuza kadar sürerdi, bu yüzden iç döngü, birçoğunu paralel çalıştıran bir dış döngüye sarılır.
pick a wave of near-GREEN / high-error languages
│
▼
fan out 10–15 agents, each ISOLATED in its own git worktree,
each grinding ONE language, committing to its own branch
│
▼
orchestrator integrates serially: file-scoped apply, then
`manifest diff` — any cross-language regression blocks the batch
│
▼
gated push (reviewed and confirmed) ──► rotate to the next wave
Her ajan, birbirlerinin ayağına basmamaları için tek kullanımlık bir worktree’de çalışır. Orkestratör, düzeltmelerini birer birer, her biri tam manifest regresyon kontrolünün arkasında entegre eder: kendi dilinde yardımcı olan ama sessizce üç diğerini bozan bir değişiklik uygulanmaz. Entegrasyon, herhangi bir şey gönderilmeden önce kapılıdır ve onaylanır — regresyon kapısı neyin güvenli olduğuna karar verir, neyin yayınlanacağına hâlâ bir insan karar verir. Ardından havuz bir sonraki dil kümesine döner ve her şey yeniden çalışır.
Hâlâ kusurlu olan
Hakem yanılabilir ve yanılmanın bir yönü vardır: çok az bağlamla çalışan bir ajan fazla raporlar. Bir grupta, sekiz dil %5-20 hata ile işaretlendi; incelemede yalnızca biri gerçek bir dile özgü hataydı — geri kalanı dilin kendi anlambilimini kaçırmaktan kaynaklanan hakem hatalarıydı (bir kaynak satırının meşru şekilde birden fazla kenar yayınlaması, atama olarak modellenen parametre bağlamaları, tanımlayıcı başına referans veren diller). Bu yüzden iki tohumla örnekliyor ve çapraz kontrol yapıyoruz ve bu yüzden hakem ile fixture’lar arasındaki bir anlaşmazlık, kesinleşmiş bir hüküm değil en ilginç sinyal olarak ele alınır — bazen yanlış olan şey fixture’ın kendisidir.
Hedef konusunda da dürüstüz. Amaç, tam anlamıyla sıfır gerçek hatadır — ama “sıfır”, dil dil inceden inceye cilaladığımız bir yöndür, işaretlenip geçilen bir kutu değil. Her zaman başka bir deyimle başka bir depo vardır.
İddia Edilmiş Değil, Kazanılmış
Maguyva’nın bir ajan için yaptığı her şey — bir sembol bulmak, bir bağımlılığı izlemek, alıntılanan kodla bir soruyu yanıtlamak — altındaki çıkarımın doğru olmasına dayanır. 280 dil genelinde, “doğru” iddia edilemez; gerçek koda karşı sürekli kazanılması gerekir. Döngü, bunu kazanma şeklimizdir: kendi metriklerine şüpheyle yaklaşan, her değişikliği kanıtlayan ve her düzeltmeyi bir sonraki regresyona karşı bir koruma haline getiren otonom bir nokta-kontrolü-ve-düzeltme döngüsü. Göz alıcı değil. “Dilinizi destekliyoruz” deyip bunu gerçekten kastetmemizi sağlayan iştir. Yeşil kolaydır. Doğru kazanılır.
İlgili okumalar
Maguyva yapım günlüğünden daha fazlası
Kod Aramasını voyage-4-large'a Neden Yükselttik_
Kod gömmelerimizi voyage-4-large'a taşıdık — şu anda herkese açık RTEB kod getirim liderlik tablosunun zirvesinde. Dürüst versiyon: yaptığımız ödünleşim, gerçekte neyi indekslediğimiz ve neden premium gömmelere ödeme yaptığımız.
Çok Modlu Füzyon Arama: Her Sorgu için Doğru Getiriciyi Seçmek_
'parseConfig nerede tanımlanmış' gibi bir sorgu, 'kimlik doğrulama nasıl çalışıyor' sorgusundan farklı bir arama ister. Maguyva niyeti sınıflandırır, dört getirim modalitesini buna göre ağırlıklandırır ve sonuçları ağırlıklı Reciprocal Rank Fusion ile birleştirir.
Ajan Gözlemlenebilirliği: Hook'lar, Alloy ve Grafana_
Claude Code ve Codex'i OpenTelemetry ve Alloy ile tek bir Grafana yığınına bağladık, ardından ajan davranış sorunlarını kaynağında bulup düzeltmek için izleri (trace) ve günlükleri kullandık.