Üretim Ortamına Geçmeden Önce Bir Yapay Zeka Ajanı Oyun Alanı (Playground) Oluşturmak
Bir kodlama ajanı, bir keresinde staging veritabanı sandığı bir veritabanına temizlik betiği çalıştırmıştı. Oysa bu üretim (production) veritabanıydı. Ajan, yanlış kimlik bilgileriyle tam olarak kendisine söylenen şeyi yaptığı için dört aylık müşteri siparişlerini sildi.
Bu başarısızlık, ajanlardan kaçınmak için bir sebep değildir. Bir oyun alanı (playground) inşa etmek için bir sebeptir.
Yeni bir mühendise ilk gününde üretim veritabanı erişimi vermezsiniz. Ona bir staging ortamı, salt okunur erişim ve denetimli görevler verirsiniz. Ajanların da aynı oryantasyona (onboarding) ihtiyacı vardır. Dakikada binlerce işlem yapabilirler, bu nedenle bir oyun alanını atlamanın maliyeti bin kat daha yüksektir.
Gerçek bir oyun alanı üç şeyi yapmalıdır:
- Ajanın tüm karar döngüsünü çalıştırmasına izin vermek.
- Tüm yan etkilerin gerçek sistemlere ulaşmasını engellemek.
- İnceleme için her şeyi kaydetmek.
Sadece istemi (prompt) test etmeyin. Bir istemi test etmek, bir soru sormak ve bir cevap okumaktır. Bir ajanın davranışı, bir dizi araç çağrısından (tool calls) oluşur. Gerçek başarısızlıklar, bir aracın beklenmedik veriler döndürdüğü döngünün ortasında gerçekleşir.
Modeli sandbox'a almanıza gerek yok. Yürütücüyü (executor) sandbox'a almanız gerekiyor.
Araç çağrılarının eylemlere dönüştüğü yere bir eklem noktası (seam) koyun. Canlı bir yürütücü yerine mock'lar (taklitçiler) kullanan bir oyun alanı yürütücüsü kullanın. Ajan döngüsü aradaki farkı bilmemelidir. Eğer ajanınız bir veritabanı istemcisini doğrudan çağırıyorsa, ne bir eklem yeriniz ne de bir güvenliğiniz var demektir.
Üç spesifik alanı test edin:
- Davranış: Ajan doğru sırayla doğru aracı seçiyor mu?
- Araç çağrıları: Argümanlar doğru ve güvenli sınırlar içinde mi?
- Hata modları: Bir API zaman aşımına uğradığında veya anlamsız veri döndürdüğünde ne olur?
Her zaman başarılı olan bir mock, ajana hiçbir şey öğretmez. Oyun alanınız; ağ zaman aşımları veya hatalı biçimlendirilmiş veriler gibi hataları enjekte etmenize izin vermelidir. Bir ajanın mantıklı bir şekilde yeniden deneyip denemediğini veya halüsinasyon görmeye başlayıp başlamadığını bu şekilde görebilirsiniz.
Eğer ajanınız kod çalıştırıyorsa, güçlü bir izolasyona ihtiyacınız vardır. Güvenilmeyen kodlar için microVM'ler kullanın. Sadece kolay oldukları için basit konteynerlarla başlamayın. Kolay bir kurulum, devasa bir güvenlik ihlaline yol açabilir.
Ajanların deterministik olmadığını unutmayın. Bir kez geçen bir test, ajanın güvenilir olduğu anlamına gelmez. Aynı görevi birden fazla kez çalıştırmalısınız. Eğer bir ajan 10 seferin 7'sinde başarılı oluyorsa, gerçek kullanıcılarınızın yaklaşık %30'u için başarısız olacaktır. Tutarlılık en önemli metriğinizdir.
Son olarak, saldırgan araç çıktılarına karşı koruma sağlayın. Bir ajan, araç verilerini talimat olarak kabul eder. Kötü niyetli bir kullanıcı, ajanı yönlendirmek için bir prompt injection ile veritabanına veri yerleştirebilir. Ajanınızı, oyun alanında ona düşmanca yükler (hostile payloads) besleyerek test edin.
Bir başlat düğmesi değil, bir mezuniyet yolu inşa edin:
- Mock'lar ve tam sandboxing ile başlayın.
- Birçok çalıştırma boyunca tutarlılığı test edin.
- Saldırgan girdilere karşı test edin.
- Üretim ortamı yapısındaki verilere karşı bir dry-run moduna geçin.
- Ancak ondan sonra kapsamı belirlenmiş, kısıtlanmış ve izlenen erişim izni verin.
Ajanınıza ucuz bir şekilde hata yapabileceği bir yer verin. Böylece önemli olan yerlerde doğru yapabilir.
Kaynak: https://dev.to/nazar_boyko/building-an-ai-agent-playground-before-giving-it-production-access-4glh
İsteğe bağlı öğrenme topluluğu: https://t.me/GyaanSetuAi
