Alet Kullanan Bir Aktörün Sunucu Tarafında Yetkilendirilmesi Gerekir

Model tarafından oluşturulan araç çağrılarını önerilen eylemler olarak değerlendirin. Yürütme sırasında izinleri, kapsamı, argümanları, bütçeleri ve onayları doğrulayın.

Bir model, mevcut kullanıcının yürütme yetkisi bulunmayan, biçimi kusursuz bir komut üretebilir. Yapılandırılmış çıktı, uygulamanın talebi anlamasına yardımcı olur; ancak bunu gerçekleştirme yetkisi vermez.

Bir araç kullanan ajanı, uygulama tarafından kontrol edilen bir yürütme sınırı içinde çalışan bir planlayıcı olarak tasarlıyorum. Model, bir sonraki eylemi önerir. Sunucu kodu ise eylemin izin verilip verilmeyeceğine ve sonucunun nasıl döndürüleceğine karar verir.

Araç sözleşmesinde riskleri ve kapsamı belirtin

Bir araç tanımında sadece bir ad ve JSON şeması yeterli değildir. Bu aracın verileri okuduğunu mu yoksa değiştirdiğini mi, hangi izinlere ihtiyaç duyduğunu, kiracı kapsamının nasıl belirlendiğini ve işlemin onay gerektirip gerektirmediğini bilmek istiyorum.

Argüman doğrulaması hem yapıyı hem de anlamı kapsamalıdır. Geçerli bir dize, yine de başka bir kiracının kaydını tanımlayabilir. Biçim açısından doğru bir URL, yine de dahili bir ağ kaynağına işaret edebilir. Sayısal bir değer, izin verilen iş aralığının dışında olabilir.

Başlangıçta, kullanışlı birkaç salt okunur araç sunardım. Bu, yazma işlemlerini devreye sokmadan önce kanıtlanması gereken yürütme davranışlarının sayısını azaltır.

Eylem yürütüldüğünde yeniden yetkilendirin

Uygulama, yürütme anında kullanıcının mevcut izinlerini ve hedef kaynağın sahipliğini belirlemelidir. Model tarafından sağlanan bir kiracı kimliği veya rol, hiçbir şekilde yetki olarak kabul edilmemelidir.

Bu durum, çok aşamalı işlemlerde önemlidir. Üyelik değişebilir, bir kaynak taşınabilir veya kuyrukta bekleyen bir eylem, orijinal bağlamının süresi dolduktan sonra yürütülebilir. Yetkilendirme, konuşmanın ilk mesajının tek seferlik bir özelliği olmamalıdır.

Aynı ilke onay için de geçerlidir. Onay, belirli bir eyleme ve bununla ilgili gerekçelere bağlanmalıdır. Eğer fail daha sonra hedefi veya miktarı değiştirirse, önceki onay artık ne olacağını yansıtmaz.

Dış içeriği kendi güven kategorisinde tutun

Görüntülenen bir sayfa, müşteri mesajı veya araç sonucu, modele yönelik talimatlar içerebilir. Bu talimatlar, sadece bağlam penceresinde yer aldıkları için geçerlilik kazanmazlar.

OWASP’ın hızlı enjeksiyon kılavuzu güvenilmeyen içeriğin model davranışını etkileme riskini ele almaktadır. Benim yürütme sınırım, planlayıcının kafa karışıklığına uğrayabileceğini varsayar ve yine de sunucu kodunun uyguladığı izin sınırlarını aşmasını engeller.

Araç çıktıları da en aza indirilmelidir. Görev için bir sipariş durumu gerekiyorsa, her müşteri alanını döndürmek gereksiz bilgi ifşasına yol açar. Hassas alanlar, sonuç modele ulaşmadan önce çıkarılabilir veya gizlenebilir.

Sadece her bir çağrıyı değil, döngünün tamamını sınırlayın

Kullanışlı bir ajanın, araç yinelemeleri, geçen süre, toplam maliyet ve tekrarlanan başarısızlıklar konusunda sınırlara ihtiyacı vardır. Planlayıcı süresiz olarak başka bir çağrı başlatabiliyorsa, çağrı başına sınırlar yetersiz kalır.

Verimli ilerlemeyi, aynı argümanlarla yapılan tekrarlanan denemelerden ayırırım. Bir arama iki kez sonuç vermezse, bir sonraki yararlı adım, aynı aramanın üçüncü bir varyasyonunu denemek yerine, durumu netleştirecek bir soru sormak olabilir.

Bir işlem, tanınabilir bir durumla sonuçlanmalıdır: yanıtlanmış, açıklığa kavuşturulması gereken, onay bekleyen, bir kişiye devredilmiş veya düzeltilebilir bir nedenden dolayı başarısız olmuş. Bu, hem arayüzü hem de operatörün görevini daha net hale getirir.

Bir insanın inceleyebileceği bir eylem izi kaydet

Denetim kaydı, önerilen aracı, doğrulanmış gerekçeleri, yetkilendirme kararını, ilgili onayı, sonuç durumunu ve zamanlamayı göstermelidir. Uygulamanın kararlarını açıklamak için özel model akıl yürütmesinin açıklanmasına gerek yoktur.

Dış yazma işlemleri için, kararlı bir işlem kimliği ve idempotans stratejisi ekliyorum. Planlama adımının yeniden denenmesi, tamamlanmış bir iş eyleminin tekrarlanmasına yol açmamalıdır.

Yaptığım ilk karşıt senaryo testlerinde, sıradan bir kullanıcıdan başka bir kiracının verilerini almasını, bir araç sonucunun içine talimatlar eklemesini, onaylandıktan sonra argümanları değiştirmesini ve tamamlanmış bir eylemi tekrarlamasını istiyorum. Ajan, ancak bu sınırlar anlaşılır ve uygulanabilir kaldığında daha fazla özerklik kazanır.

25 Eylül 2026 tarihinde güncellenmiştir.