.NET AI ajan guardrail'leri hata durumunda kapalı kalmalı
Bir .NET AI ajanındaki güvenlik katmanlarının kendisi hata verdiğinde ne olduğu, yani sınıflandırıcının çökmesi, çağrıncının belirtilmemesi veya yanlış bağlanmış middleware gibi durumlar ele alınıyor. Yazar her katmanı bilerek bozup, isteğin geçmek yerine engellenmesini sağlayan düzeltmeleri gösteriyor. Ajan güvenliği üzerine çalışan geliştiriciler için pratik bir kontrol listesi sunuyor.
Kilit noktalar
- Guard istisnaları MaximumConsecutiveErrorsPerRequest = 0 ile run'ı hemen durdurmalı; aksi halde model üç kez daha denemeye devam eder
- Güvenlik sınıflandırıcısı hata verirse istek engellenmeli ve ayrı bir kural kimliğiyle (classifier_unavailable) kaydedilmeli
- Çağrıncı bilgisi yoksa model çağrılmadan önce engelleme yapılmalı
- Guard durumu (scope) yoksa katman kontrolü atlamak yerine durmalı
- Streaming ve streaming olmayan her iki delegate de kaydedilmeli ve test edilmeli
- Araç çağrısı ve reddetme sayısı için run başına bütçe tanımlanmalı
Guardrail testleri genellikle kötü girdiyle yapılır, ama asıl soru guard'ın kendisi bozulduğunda ajanın ne yaptığıdır. Yazar, Microsoft.Agents.AI 1.25.0 ve Microsoft.Extensions.AI 10.11.0 üzerine kurulu bir yardım masası ajanında her guard katmanını bilerek bozmuş. Bulunan ortak sorun, hata durumunda isteğin sessizce geçmesi.
En önemli bulgu, guard'ın fırlattığı istisnanın FunctionInvokingChatClient tarafından yakalanıp modele geri gönderilmesi. MaximumConsecutiveErrorsPerRequest ayarı sıfır yapılarak istisnaların hemen yayılması sağlanıyor. Sınıflandırıcı erişilemez olduğunda istek engelleniyor, çağrıncı bilinmiyorsa model çağrılmadan run durduruluyor ve streaming yolunda AsyncLocal kapsamının yeniden kurulması gerekiyor. Ayrıntılı kod ve test seti makalede yer alıyor.
Gerçek dünyada kullanımı
- Müşteri verisi ve iade işlemi yapan kurumsal yardım masası ajanları
- Araç çağrısı yapan ve rol bazlı yetki kontrolü gereken çok kiracılı SaaS asistanları
- Dış güvenlik servisine bağlı, zaman aşımı yaşayabilen üretim ajanları
Neden önemli
Guardrail'ler yalnızca çalıştığında değil, bozulduğunda da bir güvenlik sınırı olmalı. Bu yazıdaki desen, hata durumlarını test edilebilir hale getirerek sessiz bir bypass yerine başarısız bir test üretmeyi sağlıyor.
Benzer haberler
- React, .NET 10 ve Microsoft Foundry ile güvenli bir kurumsal chatDEV Community: #dotnet1 gün önce
- Sahte 'evet': .NET 10 MCP sunucusundaki insan onayına yapılan 6 saldırıDEV Community: #dotnet2 gün önce
- Model çalışmadan önce bir Telegram AI asistanının geçmesi gereken altı kontrolDEV Community: #dotnet5 gün önce