Jev’i kod incelemede iki iş için nasıl kullanıyoruz
Jev, sorulara metinle değil sayıyla cevap veren bir karar modeli. İki işte kullanıyoruz; ölçümlerimizin verdiği kural: karşılaştırır, hüküm vermez.
Özet. Karar modeli (decision model), metin yazmayan ve tipli sorulara sayıyla cevap veren bir yapay zekâ modelidir. diffox ultra, TypeSafe’in Jev modelini incelemenin dördüncü aşamasında, hangi bulguların yazılacağını seçerken kullanır. Nerede işe yarayıp nerede yaramadığını Eylül 2026’da ölçtük; bu yazıda ölçtüklerimizi ve uygulamada çıkardığımız dersleri anlatıyoruz.
- İki görev. Seçimden önce her aday bulgu için on soruya cevap verir; seçimden sonra aynı kök nedene giden bulguları bulur ve tek bulguya indirir.
- Karşılaştırmada iyi. İki bulgunun aynı hatayı anlatıp anlatmadığını sorduk: işaretlediği 47 çiftin 46’sı gerçekten aynı hataydı.
- Hüküm vermede iyi değil. “Bu bulgu gerçek mi?” sorusunda, bulguyu yazan modelin kendi güven puanından daha iyi ayırt edemedi.
- Kural. Karar modelinden hüküm değil seçim isteyin: “bu ikisi aynı mı”, “hangisi”, “hangi seviye”.
Karar modeli nasıl cevap verir?
İlk üç yazıda diffox’un sonuçlarını, fiyatını ve bir incelemenin dört aşamasını anlattık. Bu yazının konusu, o aşamalardan birinde çalışan ama tek bir cümle bile yazmayan bir model.
Bir dil modeline soru sorduğunuzda cevap olarak bir metin alırsınız. Karar modeline ise bir durum ve tipli sorular verirsiniz; o da her soruya tek bir sayıyla cevap verir: bir evet olasılığı, seçenekler arasında bir dağılım ya da sıralı bir seviye. Bir istekteki bütün soruları birlikte cevaplar. TypeSafe’in Jev’i böyle bir modeldir; TypeSafe buna “System One” modeli diyor.

Cevap metin olmadığı için iki şey kolaylaşır: bir eşikle karar vermek ve cevabı başka işaretlerle birlikte hesaba katmak. Bir şey de zorlaşır: model yalnız sorduğunuz soruya cevap verir, sorunun yanlış sorulduğunu söylemez. Bu yüzden hangi soruların sorulmaya değer olduğunu ölçerek bulduk.
Jev diffox ultra’da ne yapıyor?
Bir inceleme dört aşamadan geçer: bağlam, uzman incelemesi, kanıt kontrolleri, seçim ve yayın. Jev yalnız diffox ultra’da ve yalnız dördüncü aşamada çalışır. Kanıt kontrolleri yine düz koddur; ana ürün diffox karar modeli kullanmaz.

Birinci görev seçimden önce gelir. diffox ultra’da değişikliği iki ayrı model okur. Bu iki incelemeden gelen her aday bulgu için karar modeline iki tur soru sorulur. On cevap, bulgunun kendi işaretleriyle birlikte seçimin puanına girer ve puanı eşiği geçen bulgu yazılır. Karar modeli bir bulguyu tek başına ne yazdırır ne sildirir; cevapları puanın girdilerinden biridir.
İkinci görev seçimden sonra gelir. Yazılacak bulgular ikişer ikişer karar modeline sorulur: “bu ikisi aynı kök nedeni mi anlatıyor?” Cevap 0,5 ya da üstündeyse sonraki bulgu yazılmaz, puanı yüksek olan kalır. Boşalan yeri, orada bekleyen bir aday aynı sınavı geçerse alır. Kanıt kontrollerindeki Second Witness, aynı yere yapılan aynı itirazı birleştirir; karar modeli ise farklı satırlarda duran ama aynı hataya giden bulguları bulur.
Karar modeli cevap vermezse inceleme durmaz: seçim onun cevapları olmadan yapılır, tekrar elemesi atlanır ve bu durum incelemenin kaydına geçer.
Karar modeline ne soruyoruz?
Birinci görevin soruları bulgunun doğru olup olmadığını sormaz; bulgunun ne tür bir iddia taşıdığını ve neye dayandığını sorar. Karar modeli her aday bulgu için dört şey alır: pull request’in başlığı, bulguyu yazan ajan ve ajanın tanımı, bulgunun dosyasındaki değişiklik (en çok 15.000 karakter) ve bulgunun metni.
| Soru | Neye bakar | Cevap |
|---|---|---|
| Ana yolda mı? | Hata sıradan, geçerli girdilerde mi oluyor, yoksa ancak başka bir şey bozulunca, kötü niyetli girdide ya da alışılmadık bir ayarda mı? | evet olasılığı |
| Önlem önerisi mi? | Bulgu yanlış bir sonuç mu bildiriyor, yoksa bir önlem mi öneriyor: bir doğrulama, bir savunma kontrolü, farklı bir hata türü? | evet olasılığı |
| Etkisi görünür mü? | Düzeltilmezse kullanıcı ya da çağıran bir fark görür mü? Ölü kod, kullanılmayan bir import ya da eskimiş bir belge fark yaratmaz. | evet olasılığı |
| Görünmeyene mi dayanıyor? | İddia burada gösterilmeyen bir koda, çağırana ya da ayara mı yaslanıyor? | evet olasılığı |
| Bu değişiklik mi yol açtı? | Sorun bu diff’in eklediği ya da değiştirdiği satırlardan mı geliyor, yoksa önceden var mıydı? | evet olasılığı |
| Yorum yazılır mı? | Deneyimli bir gözden geçiren bu noktaya yorum bırakır mı? Ölçek, hiç değinmemekten merge’i durdurmaya kadar uzanır. | 1–5 arası seviye |
| Kardeş kodla kıyas mı? | Bulgu, aynı değişiklikte aynı işi farklı yapan ve doğru biçimi gösteren bir kardeş koda mı dayanıyor? | evet olasılığı |
| Küçük bir düzeltme yeter mi? | Tek bir adı, değeri, operatörü ya da koşulu değiştirmek kodu düzeltir mi? | evet olasılığı |
| Temkinli mi? | İddia “olabilir, belki” mi diyor, yoksa neyin yanlış gittiğini kesin mi söylüyor? | evet olasılığı |
| Kasıtlı mı? | Pull request’in başlığına ve diff’in şekline bakınca, itiraz edilen davranış bu değişikliğin amacı mı: bilerek kaldırılan bir şey, yeni bir sınır? | evet olasılığı |
On sorunun dokuzu evet/hayır sorusudur ve cevabı bir evet olasılığıdır; kalan biri, gözden geçiren sorusu, 1–5 arası bir seviye ister. On cevap, bulgunun kendi işaretleriyle birlikte seçimin puanına girer: ciddiyeti, türü, kanıt kontrollerinin sonucu ve aynı yere başka bulguların da işaret edip etmediği. Hangi bulguların yazılacağına bu puan karar verir. Her ajana ayrıca kendi konusuna özgü bir iki soru sorulur, ama puana yalnız bu on cevap girer.
Bu soruların ortak yanı, cevabın modelin önünde durması. “Bu hata ana yolda mı” sorusunun cevabı bulgunun senaryosunda yazar; “temkinli mi” sorusununki cümlenin kendisindedir. Karar modelinden bulguyu yeniden yargılamasını istemiyoruz; önündeki metni okuyup bir kutuya koymasını istiyoruz.
Karar modeli nerede işe yarıyor?
Karar modelinin nerede işe yaradığını Eylül 2026’da ölçtük. Elimizde, dört farklı inceleme düzeninin açık kaynak projelerdeki pull request’lerde bulduğu bulgular vardı; her biri, insanların önceden işaretlediği hatalarla eşleştirilmişti. En net sonuç, iki bulgunun aynı hatayı anlatıp anlatmadığı sorusunda çıktı. Bu, aynı hataya ikinci bir yorum yazılmasını önleyen soru.

374 bulgu çifti için “aynı kök neden mi?” diye sorduk; bunların 58’i gerçekten aynı hatayı anlatıyordu. Eşik 0,5’te karar modeli 47 çifti işaretledi ve 46’sı doğruydu. Ayırma puanı 0,99 çıktı; yalnız “aynı dosyada mı” diye bakan bir kuralınki 0,73. Ayırma puanı şu olasılıktır: rastgele seçilen ve aynı hatayı anlatan bir çiftin, rastgele seçilen ve farklı hataları anlatan bir çiftin önüne konması. 0,5 yazı tura demektir, 1 kusursuz.
Aynı tür soru başka bir işte de işe yaradı: bir bulgunun ciddiyetini dört seviyeden birine yerleştirmek. İnsanların verdiği ciddiyetle tam eşleşme, motorun kendi kararında %49,5 iken karar modelinin düzeltmesiyle %56,8 oldu (222 bulgu). Bunu ölçtük, ama bugün iki üründe de açık değil.
Nerede işe yaramıyor?
Aynı model, “bu bulgu gerçek mi?” sorusunda zayıf kaldı. 656 bulgunun 315’i bilinen bir hatayla eşleşiyordu. Karar modelinin ayırma puanı 0,64 çıktı, bulguyu yazan modelin kendi güven puanı ise 0,65. Yani zaten elimizde olan bir işaretten daha iyi değildi.

Soruyu daraltmak da sonucu değiştirmedi: on iki dar soru ve onları birleştiren öğrenilmiş bir model, ayırma puanını ancak 0,67’ye taşıdı.
Fark sorunun kendisinden geliyor. İki metni karşılaştırırken gereken her şey modelin önündedir. Bir kodun gerçekten öyle davranıp davranmadığı ise orada yazmaz; bunu bilmek için kodu okuyup bir senaryo kurmak gerekir. diffox’ta bunu uzman ajanlar yapar ve iddia, dosyadan bir alıntıyla kanıtlanır.
Hangi iş hangi araca?
Bir incelemede dört tür araç çalışır ve her biri başka bir işte iyidir.
| Araç | Ne üretir | Aynı girdiye aynı cevap | diffox’taki işi |
|---|---|---|---|
| Düz kod | kesin bir evet ya da hayır | her zaman | kanıt kontrolleri, kural tabanlı dedektörler |
| Karar modeli | bir olasılık, bir seçim ya da bir seviye | neredeyse: yeniden sorduğumuzda en çok 0,07 oynadı | diffox ultra’da on soru ve tekrar elemesi |
| Dil modeli (LLM) | metin | hayır | uzman ajanlar; başlık ve düzeltme önerisi |
| Öğrenilmiş seçici | bir puan | her zaman | hangi bulguların yazılacağı |
İş bölümü bu tablodan çıkıyor. Kesin bir kuralla cevaplanabilen soru koda gider. Eldeki iki şeyi karşılaştırmak ya da birkaç seçenekten birini seçmek karar modeline. Kodu okuyup bir senaryo kurmak ve bunu bir okura anlatmak dil modeline. Bütün bu işaretleri tek bir “yazılsın mı” kararına çevirmek de öğrenilmiş seçiciye.
Karar modeli kullanırken yedi ders
Karar modelini ürüne alırken kendi deneylerimizden öğrendiklerimiz:
- Hüküm değil seçim isteyin. “Bu ikisi aynı mı”, “hangi seviye”, “hangisi” sorularının cevabı modelin önündeki metindedir; “bu doğru mu” sorusununki değildir.
- Aynı durumu paylaşan soruları tek istekte gönderin. Soru eklemek cevabı neredeyse hiç geciktirmez. Bir aşamamız bunu yapmıyordu: her bulgu için ayrı bir istek atıyor ve her seferinde aynı diff’i yeniden gönderiyordu. Tek isteğe geçince gönderilen durum %55 küçüldü.
- Sürümü sabitleyin. Eşikler bir sürümün olasılıklarına göre ölçülür. diffox ultra “en son sürüm” takma adıyla değil, sabit bir sürümle çalışır; sürüm değişirse eşik yeniden ölçülür.
- Eklemeden önce elinizdekiyle kıyaslayın. Yeni bir işaret, elinizdekilerin üstüne kattığı kadar değerlidir. “Gerçek mi” sorumuz, bulgunun kendi güven puanının üstüne bir şey katmadı.
- Cevabı kapı olarak değil, girdi olarak kullanın. diffox ultra’da karar modelinin cevapları bir bulguyu tek başına silmez ya da yazdırmaz; seçimin puanına girer. Sildiği tek şey, aynı hataya yazılan ikinci yorumdur.
- Eşiği okuru düşünerek seçin. Tekrar elemesinde eşik 0,5: işaretlenen 47 çiftin 46’sı doğru. Eşik 0,9 olsaydı hiç hata olmazdı, ama tekrarların ancak %36’sı bulunurdu.
- Cevap gelmezse inceleme onsuz sürsün. Ve bunu kayda geçirsin: eksik bir aşama, sessizce atlanmış bir aşamadan iyidir.
Sıkça sorulan sorular
Karar modeli (decision model) nedir?
Metin yazmayan bir yapay zekâ modelidir. Ona bir durum ve tipli sorular verirsiniz; o da her soruya bir sayıyla cevap verir: bir evet olasılığı, seçenekler arasında bir dağılım ya da sıralı bir seviye. Bir istekteki bütün soruları birlikte cevaplar. TypeSafe’in Jev’i böyle bir modeldir; diffox ultra onu bir incelemenin seçim aşamasında kullanır.
Karar modeli ile LLM-as-a-judge arasındaki fark ne?
LLM-as-a-judge’da bir dil modeli bir çıktıyı okur ve kararını metin olarak, çoğu zaman gerekçesiyle birlikte yazar. Karar modeli metin yazmaz: her soruya bir evet olasılığı, bir seçim ya da bir seviye döndürür ve bir istekteki bütün soruları birlikte cevaplar. Bu yüzden cevabını bir eşikle karşılaştırmak ve başka işaretlerle birlikte hesaba katmak kolaydır; diffox ultra da onu böyle kullanır.
diffox da karar modeli kullanıyor mu?
Hayır. Karar modeli yalnız diffox ultra’da çalışır. diffox’ta hangi bulguların yazılacağına bulgunun kendi işaretleriyle karar verilir; aynı yere yapılan aynı itirazlar düz kodla birleştirilir.
Karar modeli kodumu görüyor mu?
Her aday bulgu için bulgunun metnini, bulgunun dosyasındaki değişikliği (en çok 15.000 karakter), pull request’in başlığını ve bulguyu yazan ajanın tanımını görür. Bu veri, modeli sunan TypeSafe’e doğrudan ya da OpenRouter üzerinden gider; hangi hizmetlerin kullanıldığı gizlilik sayfamızda yazar.
Karar modeli bir bulguyu silebilir mi?
Tek başına silemez. Cevapları seçimin puanına girer ve hangi bulguların yazılacağına puan karar verir. Sildiği tek şey, aynı kök nedene giden ikinci bulgudur; puanı yüksek olan yazılır.
Neden bulgunun gerçek olup olmadığını karar modeline sormuyorsunuz?
Ölçtük: bu soruda, bulguyu yazan modelin kendi güven puanından daha iyi ayırt edemedi. Bir kodun gerçekten öyle davranıp davranmadığını bilmek için kodu okuyup bir senaryo kurmak gerekir; diffox’ta bunu uzman ajanlar yapar ve iddia, dosyadan bir alıntıyla kanıtlanır.
Aynı soruya her seferinde aynı cevabı verir mi?
Neredeyse. Aynı soruları yeniden sorduğumuzda cevaplar en çok 0,07 oynadı. Eşikleri bu yüzden bir sürümün olasılıklarına göre ölçüyor ve sürümü sabitliyoruz.