Yazılım Notları

Kalite, Test ve Operasyon

Karanlık Kodu Çalıştırın: Agent'ınızın Error Handling'i Neden Hiç Çalışmadı ve Onu Bilerek Nasıl Çalıştırırsınız?

Run the Code in the Dark: Why Your Agent's Error Handling Never Worked

Agent'ın retry, fallback ve cleanup kodu hiç tetiklenmediği için test edilmemiş koddur; gerçek hatayı SDK/API sınırında bilerek enjekte etmeden ona güvenemezsiniz.

Yükselen görüş

Agent'ın hata yönetimi kodu hiç tetiklenmediği için test edilmemiş koddur; gerçek hatayı SDK/API sınırında bilerek enjekte etmeden ona güvenemezsin.

Hata yönetiminin felaketlerin ana kaynağı olduğu 2014'ten beri kabul görüyor; Agent'lara özgü fault injection araç ve araştırmaları ise 2026'da çıkmaya başladı.

Zihinsel model

Yangın tatbikatı gibi: alarmın çaldığını görmeden yangın merdiveninin açıldığına güvenmezsin, tatbikatı da alarm gerçekten çaldıysa sayarsın.

Neden

  • Geliştirme ortamında kota dolmaz, akış kesilmez, tool ölmez; bu yüzden retry ve fallback kodu üretime kadar hiç koşmaz.
  • Mock yalnızca mock'un fırlattığı exception'ı test eder; gerçek SDK'nın retry, timeout ve streaming davranışını hiç görmez.
  • Agent hataları HTTP, stdio ve syscall katmanlarında oluşur; pod seviyesindeki kaos bu hataları doğru biçimde üretmez.

Kanıt

Dağıtık veri sistemlerinde felaket boyutundaki hataların yüzde 92'si ölümcül olmayan bir hatanın yanlış ele alınmasından çıktı.

Yuan vd., OSDI 2014

LLM API yanıtına enjekte edilen hatalarla en sağlam çok-Agent'lı sistem bile HumanEval'de yaklaşık 19 puan kaybetti.

AgentChaos, arXiv 2026

Production benzeri stres altında Agent başarısını en çok rate limiting hataları düşürdü.

ReliabilityBench, arXiv 2026

Karşı görüş

Gerçek sağlayıcıya giden fault testleri pahalı ve yavaştır; araçlar Ekim 2026'da erken aşamada. Ayrıca fault injection yalnızca altyapı hatasını ölçer, makul görünen ama yanlış çıktı için ayrıca eval gerekir.

Kavramlar

Dark codeYalnızca hata anında koşan, bu yüzden fiilen hiç test edilmemiş kod yolu.
Fault injectionKontrollü hata enjekte edip hata yönetiminin gerçekten çalıştığını doğrulamak.
Trigger verificationFault'un gerçekten ateşlendiğini ayrıca doğrulamak; ateşlenmediyse test başarısız.
Retry stormİç içe retry katmanlarının tek hatayı katlanan isteklere çevirmesi.
stop_reasonYanıtın neden bittiğini gösterir; kesilmiş yanıtı yakalamanın en ucuz yolu.

Pratikte

  • Hatayı mock yerine gerçek SDK'nın göreceği biçimde HTTP proxy ya da syscall seviyesinde üret.
  • Her fault senaryosunda enjeksiyon sayısını say; sıfırsa testi başarısız say.
  • Geçmiş incident'ları fault kataloğuna çevir ve gece CI işinde düzenli koştur.
Önce bunu okuSimple Testing Can Prevent Most Critical Failures (Yuan vd., OSDI 2014)Hata yolunun neden felaketlerin ana kaynağı olduğunu veriyle gösteren temel çalışma.