Ana içeriğe geç

OpenShell Belirtiyi Tedavi Ediyor: Agent Güvenliği Kill Switch Değil, Sözleşme Gerektiriyor

Runtime containment, kötü davranan bir agent'ı durdurabilir; ancak önceden beyan edilmiş bir izin verilen eylemler sözleşmesi olmadan bu, önleme değil hasar sınırlamadır.

Işıklı durum LED'leri ve ağ kablolarıyla bir sunucu rafının yakın çekimi; AI agent containment için runtime altyapısını temsil ediyor.

OpenShell Aslında Neyi Uyguluyor

Nvidia'nın OpenShell'i gibi runtime containment araçları, agent yığınında belirli bir noktada çalışır: modelin akıl yürütmesinin altında ve tool call'ın üstünde. Bir agent'ın bir aracı çağırmaya, mesaj göndermeye veya kayıt yazmaya çalıştığı anı yakalarlar. Bu sınırda, önerilen eylemi inceleyebilir, bir dizi kuralla karşılaştırabilir ve yürütmeyi durdurabilirler. Bu faydalıdır. Tek başına ele alındığında ise eksiktir.

Yakalama katmanı bir niyeti değil, bir eylemi görür. Bir agent bir araç seçip argümanlarını oluşturduğunda, containment sistemi yapılandırılmış bir istek alır: bir araç adı, bir dizi parametre, belki bir hedef varış noktası. Almadığı şey ise bu isteği üreten akıl yürütme, agent'ın peşinde olduğu hedef veya hareket ettiğine inandığı yetkidir. Bir sınıflandırıcı isteği anormallik açısından puanlayabilir, ancak eylemin agent'ın yetki alanı içinde olup olmadığını bilemez çünkü hiçbir yetki alanı beyan edilmemiştir.

Tespit gecikmesi sorunu daha da büyütür. Milisaniyeler içinde yanıt veren bir containment sistemi bile, agent'ın halihazırda bir eylem rotasına bağlandığı bir anda yanıt veriyor demektir. Model token'ları üretmiş, bir araç seçmiş ve argümanları oluşturmuştur. Çok adımlı bir yörüngede, bu tek eylem onlarcasından biri olabilir ve önceki adımların yan etkileri çoktan geri döndürülemez hale gelmiş olabilir. Milisaniyeler önemlidir, ancak agent'ın ne yapmaya izinli olduğunu önceden bilmenin yerini tutmaz.

Pratik sonuç, her durdurmanın bir muhakeme kararı haline gelmesidir. Bir sınıflandırıcı eylemin şüpheli olup olmadığına karar verir. Bu sınıflandırıcı olasılıksaldır, bağlama bağlıdır ve her adımda çalıştırılması pahalıdır. Bir politika değildir. Niyet hakkında bir çıkarımdır ve hem yanlış pozitifler hem de yanlış negatifler üretecektir. Yanlış negatif ürettiğinde eylem devam eder. Yanlış pozitif ürettiğinde meşru bir eylem engellenir ve agent'ın yörüngesi bozulur. Her iki sonuç da beyan edilmiş bir sınır tarafından belirlenmez; her ikisi de bir modelin tahmini tarafından belirlenir.

Çalıştırmadan Önce Sözleşme

Bir sözleşme sorunun şeklini değiştirir. İlk token üretilmeden önce, bir agent araç yüzeyini, çıkış hedeflerini ve harcama zarfını beyan etmelidir. Araç yüzeyi, agent'ın çağırabileceği araçlar kümesidir ve kullanabileceği parametre aralıklarıyla birlikte. Çıkış hedefleri, veri gönderebileceği uç noktalar, alan adları veya kuyruklardır. Harcama zarfı, çalıştırmanın tüketebileceği bir kaynağın (token, API çağrısı veya para birimi) azami miktarıdır.

Hands holding Erlenmeyer flasks of blue liquid during a laboratory experiment

Bu beyan bir prompt talimatı değildir. Runtime'ın deterministik olarak kontrol edebileceği, makine tarafından okunabilir bir artefakttır. OpenShell tarzı uygulama, çıkarılan niyet yerine beyan edilmiş bir kapsamı kontrol ettiğinde, kontrol bir küme karşılaştırması haline gelir: bu araç beyan edilmiş yüzeyde mi, bu hedef beyan edilmiş çıkış listesinde mi, bu harcama beyan edilmiş zarf içinde mi. Cevap evet veya hayırdır. Sınıflandırıcı yok, gecikme yok, muhakeme kararı yok.

Sözleşmeler ayrıca birleşir. Bir alt agent, ebeveyninden daraltılmış bir zarf devralmalıdır, ebeveynin tam yüzeyini değil. Bir ebeveyn agent'ın bir ödeme API'sine ve bir mesajlaşma API'sine erişimi varsa, mesaj taslağı hazırlamakla görevli bir alt agent yalnızca mesajlaşma aracını almalıdır ve hedef listesi ebeveynin onaylı alıcılarıyla sınırlandırılmalıdır. Bu bir runtime çıkarımı değil, agent tanımının yapısal bir özelliğidir. Alt agent zarfını aşamaz çünkü zarfı hiç verilmemiştir.

Containment'ı bir kurtarma aracından bir önleme aracına dönüştüren mekanizma budur. Runtime'ın, agent'ın harici bir uç noktaya veri göndermeyi amaçlayıp amaçlamadığını tahmin etmesine gerek yoktur. Uç nokta ya beyan edilmiş çıkış listesindedir ya da değildir. Runtime'ın, agent'ın harcamasının anormal olup olmadığını tahmin etmesine gerek yoktur. Harcama ya beyan edilmiş zarf içindedir ya da değildir. Sözleşme, uygulamayı deterministik kılar.

Kill Switch Neden Yanlış İlkel

Bir kill switch bir kurtarma mekanizmasıdır. Bir sözleşme bir önleme mekanizmasıdır. Yalnızca ilkini sunmak, maliyeti olay müdahalesine kaydırır. Agent çalışır, sınıflandırıcı sorunlu bir eylemi yakalayamaz ve kill switch çalıştırmayı sonlandırır. O zamana kadar hasar çoktan verilmiş olabilir.

Bir çalıştırmayı yörünge ortasında sonlandırmak kısmi yan etkiler bırakır. Bir veritabanında yarım yazılmış bir kayıt. Bir müşteriye yarım gönderilmiş bir mesaj. İki sistemi tutarsız durumlarda bırakan yarım tamamlanmış bir işlem. Kill switch agent'ı durdurur, ancak agent'ın halihazırda gerçekleştirdiği eylemleri geri almaz. Bazı sistemlerde rollback mümkündür, ancak pahalıdır, hataya açıktır ve çoğu zaman eksiktir. Olayın maliyeti kill switch'in maliyeti değildir; temizliğin maliyetidir.

Containment, kapsam kontrolleri, çıkış bütçeleri ve yetenek tavanlarının arkasındaki son çare olmalıdır. Bir kapsam kontrolü, agent'ın beyan edilmiş yüzeyi dışındaki bir aracı çağırmasını engeller. Bir çıkış bütçesi, beyan edilenden fazla veri göndermesini engeller. Bir yetenek tavanı, kendi izinlerini yükseltmesini veya daha geniş erişime sahip alt agent'lar oluşturmasını engeller. Bunlar deterministik, ucuz ve her adımda uygulanabilirdir. Kill switch, hepsi başarısız olduğunda geriye kalandClose-up of a server rack in a data center aisle with blue lighting Server rack closeup

Dürüst ödünleşim, sözleşmelerin önceden çalışma gerektirmesidir. Her agent için bir araç yüzeyi, bir çıkış listesi ve bir harcama zarfı beyan etmek, bir runtime monitörü devreye alıp sınıflandırıcının sorunları yakalamasını ummaktan daha fazla emektir. Sözleşmeler ayrıca agent'ın esnekliğini kısıtlar. Beyan edilmiş yüzeyi dışındaki bir araca meşru bir ihtiyaç keşfeden bir agent onu basitçe kullanamaz; sözleşmenin değiştirilmesi gerekir, bu da bir insan kararı gerektirir. Bu bir özelliktir, hata değil, ancak bir maliyettir. Alternatif, her eylemin bir muhakeme kararı ve her olayın bir temizlik olduğu bir sistemdir.

Pratik Bir Katmanlama

İşleyebilir bir agent güvenliği mimarisi, her biri bir öncekinden daha ucuz ve daha deterministik olan dört katman kullanır.

Birinci katman, agent tanımı anında statik kapsam beyanıdır. Agent'ın araç yüzeyi, çıkış hedefleri ve harcama zarfı tanımına yazılır. Bu, agent'ın koduyla birlikte sürümlenen bir yapılandırma artefaktıdır. Agent çalışmadan önce gözden geçirilir ve onaylanır.

İkinci katman, beyan edilmiş kapsama karşı adım başına doğrulamadır. Her tool call'dan önce runtime, önerilen eylemi sözleşmeye karşı kontrol eder. Bu kontrol ucuz ve deterministiktir: bir küme üyelik testi, bir hedef karşılaştırması, bir harcama sayımı. Bir model gerektirmez. Gecikme getirmez. Ya geçer ya başarısız olur ve bir başarısızlık, herhangi bir yan etki oluşmadan adımı durdurur.

Üçüncü katman, sapma için runtime anomali tespitidir. Sınıflandırıcı tabanlı araçların yerini kazandığı yer burasıdır. Bir agent, beyan edilmiş kapsamı içinde kalırken hedefinin kaydığını veya girdilerinin manipüle edildiğini düşündüren şekillerde davranabilir. Anomali tespiti bu kalıpları inceleme için işaretleyebilir. Olasılıksal ve pahalıdır, bu yüzden deterministik kontrollerin yerine değil, onların yanında çalışır. Sözleşmenin ifade edemediğini yakalar.

Dördüncü katman, yalnızca birinci ila üçüncü katmanlar başarısız olduğunda çağrılan containment ve rollback'tir. Kill switch çalıştırmayı durdurur. Rollback yan etkileri geri almaya çalışır. Bu katman en pahalı ve en az güvenilir olanıdır, bu yüzden son çare olmalıdır. Varlığı gereklidir, ancak çağrılması nadir olmalıdır.

Argüman, runtime containment'ın işe yaramaz olduğu değildir. Argüman, sözleşmesiz containment'ın, neyin containment edildiğine dair bir tanım olmadan containment olduğudur. Bir kill switch bir agent'ı durdurur, ancak agent'a ne yapmaya izinli olduğunu söylemez. Bir sözleşme söyler. Sözleşme önlemedir; kill switch kurtarmadır. Yalnızca kurtarmayı sunmak, olayları önlemek yerine onlar için ödeme yapma tercihidir.

İlgili okumalar

Bunun yanıtladığı sorular

What is the difference between a kill switch and a contract for AI agents?

A kill switch is a recovery mechanism that terminates a run after a problem is detected. A contract is a prevention mechanism that declares, before the run, which tools, destinations and spend levels are permitted. The contract makes enforcement deterministic; the kill switch only limits damage after the fact.

Why can't runtime containment tools like OpenShell know an agent's intent?

Containment tools intercept the tool call, not the reasoning that produced it. They see a structured request but not the goal or authority behind it. Without a declared scope, every halt is a judgement call made by a classifier, which is probabilistic and introduces latency.

What are the four layers of a practical agent safety architecture?

Layer one: static scope declaration at agent definition time. Layer two: per-step validation against the declared scope, which is cheap and deterministic. Layer three: runtime anomaly detection for drift, where classifier-based tools are useful. Layer four: containment and rollback, invoked only when the earlier layers fail.

What is the main trade-off of using contracts for agent safety?

Contracts require upfront work to declare a tool surface, egress destinations and spend envelope for every agent. They also constrain flexibility, because an agent that needs a tool outside its declared surface requires a human decision to amend the contract. The alternative is a system where every action is a judgement call.