Yayına aldığım yapay zeka ajanı 23 birim testi (unit test) geçti, ancak canlıya geçtikten bir saat sonra hayali bir ürün özelliği uydurdu ve gerçek fiyatın üçte biri kadar düşük bir fiyat verdi. Kullanıcı bunu fark edip uyardığında bot ısrar etti, konuşma sona erdi ve bir müşterimi kaybettim. Bu hata, bir dizi deterministik birim testin bir ajanın güvenilirliğini garanti edemeyeceğini kanıtladı.

Birim testlerin yapay zeka ajanları için neden yetersiz kaldığı

Birim testler geleneksel kodlar için işe yarar çünkü aynı girdi her zaman aynı çıktıyı verir. "2 + 2 = 4" ifadesi, basit bir eşitlik kontrolüyle doğrulayabileceğiniz bir garantidir. Ancak, LLM tabanlı bir ajan; istem (prompt), çevreleyen bağlam ve çağırdığı harici araçların durumuna göre çıktısını değiştirir. Tam dize eşitliğini kontrol eden bir test; halüsinasyonları, ton değişimlerini veya koruma bariyeri (guardrail) ihlallerini gözden kaçırır. Bir müşteriye mal olan bu sessiz hata, sadece izole edilmiş fonksiyonları değil, tüm etkileşimi değerlendirmeniz gerektiğini gösteriyor.

Herhangi bir özellik kodundan önce bir değerlendirme düzeneği (evaluation harness) oluşturmak

Geliştirme sırasını tersine çevirdim: Önce dört katmanlı bir değerlendirme düzeneği tasarladım, ardından ajanı yazdım. Bu düzenek, tek bir geçişte 131 testi çalıştırıyor, çalıştırma başına yaklaşık üç sent maliyet çıkarıyor ve yaklaşık on bir dakikada tamamlanıyor. Her testi, onu işleyebilecek en küçük modele atıyor, daha büyük ve daha pahalı modelleri ise gerçekten değer kattıkları anlar için saklıyorum.

Katman 1 – Araç işlevselliği

İlk savunma hattı, ajanın araçlarını doğru şekilde çağırıp çağıramadığını kontrol eder. Testler; başarılı aramaları, kasıtlı olarak hatalı yapılandırılmış sorguları ve simüle edilmiş API hatalarını kapsar. Araç kullanımı büyük ölçüde deterministik olduğu için —ya istek doğru şekilde oluşturulur ya da API bir hata döndürür— basit Python iddiaları (assertions) yeterli olur. Burada hatalı bir isteğin yakalanması, sonraki aşamalardaki karmaşayı önler.

Katman 2 – Talimat takibi

Ardından düzenek, ajanın koruma bariyerlerine (guardrails) uyup uymadığını doğrular. Daha küçük bir LLM, ajanın yanıtını uyumluluk açısından tarayan bir değerlendirici olarak görev yapar: Karakterde kalma, yasaklı konulardan kaçınma ve gerekli JSON şemasını üretme. Bu katman, birim testlerin kaçırdığı anlamsal kaymaları (semantic drift), örneğin istenmeyen bir kişiliğe bürünme veya dahili istemlerin (internal prompts) sızdırılması gibi durumları yakalar.

Katman 3 – Hedef odaklı davranış

Üçüncü katman en kritik olanıdır. Ajanın amacını gerçekten gerçekleştirip gerçekleştirmediğini sorgular. Bir potansiyel müşteri toplama (lead-generation) botu için bu, doğru nitelendirme sorularını sorduğunu ve uygun olduğunda bir insana yönlendirme yaptığını teyit etmek anlamına gelir. Burada, maliyetleri şişirmeden genel akışı değerlendirebildiği için akıl yürütme odaklı (reasoning-oriented) bir model kullanıyorum. Bot, ilk iki katmanı geçse bile hedefine ulaşamazsa, yeniden tasarım için işaretlenir.

Katman 4 – Performans

Son olarak düzenek, gecikme süresini (latency) ve token üretim hızını kaydeder. Yavaş yanıtlar, özellikle gerçek zamanlı sohbetlerde kullanıcı deneyimini zedeler. Bu metrikleri işlevsel doğrulukla birlikte takip ederek, ajanın hem doğru hem de hızlı yanıt verdiğinden emin oluyorum.

Maliyet tasarrufu sağlayan seçimler

Çalıştırma başına 0,03 $ tutarı bir pazarlama taktiği değildir; test karmaşıklığının model boyutuyla eşleştirilmesinden kaynaklanır. Deterministik araç kontrolleri en ucuz çalışma ortamında (runtime) çalışır, talimat uyumluluğu hafif bir model kullanır ve yalnızca hedef odaklı değerlendirmeler daha yetenekli ancak daha pahalı bir modeli devreye sokar. Bu kademeli yaklaşım, toplam gideri her kod değişikliğinde tüm seti çalıştırabilecek kadar düşük tutar.

Takas: hız ve güvenlik arasındaki denge

Bir değerlendirme düzeneği getirmek başlangıçta bir sürtünme yarattı. Geliştirme döngüleri uzadı ve lansman takvimi saptı.

Sırada ne var?

  • Model tabanlı değerlendiriciler: LLM'ler geliştikçe, Katman 2'deki değerlendirici daha incelikli hale gelebilir; bu da politika ihlallerini yakalamaya devam ederken yanlış pozitifleri (false positives) azaltabilir.

Özet

Eğer üretim ortamı (production) için yapay zeka ajanları geliştiriyorsanız, katmanlı bir değerlendirme düzeneği bir seçenek değil, temel bir gerekliliktir. Kapsamlı test maliyetini en baştan üstlenerek —çalıştırma başına 0,03 $, set başına on bir dakika— birim testlerin basitçe tespit edemeyeceği sessiz hatalara karşı kendinizi korursunuz.