LLM Ajanlarında Aşırı Veri Çekimini Önleyen SQL Guard
Text-to-SQL ajanlarının ürettiği sorguları çalıştırılmadan önce kullanıcı rolüne göre denetleyen, deterministik ve LLM içermeyen bir guard mekanizması tanıtılıyor.
LLM tabanlı text-to-SQL ajanları veritabanına genellikle tek bir ayrıcalıklı servis kimliğiyle bağlanır; bu da sorguyu soran kişinin gerçek yetkisinden bağımsız olarak teknik açıdan geçerli ama erişim açısından hatalı sonuçlar dönmesine yol açabilir. Sunulan proje, ajanın ürettiği SQL'i çalıştırmadan önce sqlglot ile ayrıştırıp kullanıcının rolüne göre tablo ve sütun izinlerini kontrol eden, gerekli satır filtrelerini otomatik ekleyen deterministik bir katman öneriyor. Karar mekanizmasında model yer almadığı için politika genişledikçe güvenilirlik düşmüyor ve her sonuç fail-closed mantığıyla ele alınıyor.
Sistemin ayırt edici yanı, ajanın erişemediği tablolar dahil tüm katalog meta verisini görebilmesi; böylece ajan neyi göremediğini bilerek dürüst yanıtlar üretebiliyor ve cevapları FULL, SCOPED veya INCOMPLETE olarak etiketleyebiliyor. Proje, LangChain tabanlı bir ajan üzerinden üç farklı rolün aynı soruya farklı ve doğru kapsamda yanıtlar aldığı bir gösterim not defteri, 121 testten oluşan bir test paketi (bunun 74'ü doğrudan bypass denemelerine karşı kırmızı takım testleri) ve MIT lisansıyla sunuluyor.
Mühendisler açısından önemi, LLM ajanlarının veri erişim güvenliğini prompt mühendisliğine değil, modelin dışında çalışan deterministik bir denetime bağlaması; bu da kurumsal ortamlarda LLM destekli veri erişim araçlarının güvenlik ve uyumluluk gereksinimlerini karşılamasını kolaylaştırıyor.