Legacy sistemler hakkında öne sürülen iddia
Daha faydalı çerçeveleme şudur: legacy sistemler, insan hızındaki etkileşime göre kalibre edilmiş onlarca yıllık güven varsayımlarını kodlar. Bu varsayımlar politika olarak yazıya dökülmemiştir; timeout'larda, rate limit'lerin yokluğunda, "kimsenin kullanmadığı" belgelenmemiş endpoint'lerde, geniş fiillere sahip servis hesaplarında, bir operatörün yanlış bir sonucu fark edeceğini varsayan batch arayüzlerinde örtüktür. Bir agent yeni izinler yaratmaz. Mevcut izinleri, onları katlanılabilir kılan sürtünme olmadan kullanır.
Bu ayrım önemlidir çünkü remediation'ı değiştirir. Sorun bir hedefse, cevap perimeter sertleştirmedir: daha fazla denetim, daha fazla imza, daha fazla segmentasyon. Sorun bir yetenek uyumsuzluğuysa, cevap agent'ın protokol sınırında ne yapmasına izin verildiğini, endpoint'in teknik olarak neyi desteklediğinden bağımsız olarak kapsamlandırmaktır.
Çağıran bir agent olduğunda ne değişir
İnsan operatörler kendi kendini throttle eder. Sıkılır, şüphelenir veya yorulur. Birkaç başarısız denemeden sonra dururlar çünkü devam etmenin maliyeti artar ve beklenen getiri düşer. Bir formdaki her parametre kombinasyonunu numaralandırmazlar çünkü form sıkıcıdır. Belgelenmemiş endpoint'leri atlarlar çünkü var olduklarını bilmezler. Bunlar güvenlik kontrolleri değildir; insan bilişinin davranışsal yan etkileridir ve legacy sistemler yıllardır sessizce bunlara bağımlı olmuştur.
Agent'larda bu yan etkiler yoktur. Kapsamlı biçimde numaralandırır ve deterministik olarak yeniden denerler. Bir insanın örnekleyeceği izin verici bir endpoint, bir agent için bir arama problemine dönüşür: parametre uzayını yinele, yanıtı gözlemle, kümeyi daralt. Arayüz, bilinen bir etkileşim hızına sahip bilinen bir operatör popülasyonu için tasarlanmıştı. Sistematik olarak yoklayan bir çağıran kavramı yoktur, çünkü arayüz belirlendiğinde böyle bir çağıran mevcut değildi.
Somut bir mekanizma bunu görünür kılar. Bir lookup fiili sunan legacy bir SOAP veya form tabanlı servis düşünün. Servis bir tanımlayıcı kabul eder, bir kayıt döndürür ve çağrıyı loglar. Bir insan operatör için tanımlayıcı bir ticket'tan yazılır. Bir agent için tanımlayıcı bir döngüdeki değişkendir. Serviste rate limit yoktur çünkü orijinal tasarım klavyedeki bir insanı varsayıyordu; log yazılır ama toplanmaz; yanıt tanımlayıcı başına cache'lenir, bu da agent'ın "bulunamadı" ile "bulundu ama boş" arasında ayrım yapmasını ve bu farkı bir oracle olarak kullanmasını sağlar. Bunların hiçbiri agent'ın bir şeyi kırmasını gerektirmedi. Agent'ın arayüzü belirtildiği gibi, arayüzün hiç öngörmediği bir hızda kullanmasını gerektirdi.

Aynı örüntü endüstriyel ve kamu sistemlerinde de görülür: bir job tanımlayıcısı kabul edip durum döndüren batch gönderim endpoint'leri, zamanlanmış bir job için tasarlanmış ama bir servis hesabından erişilebilen yönetim fiilleri, aynı ağ segmentinde çözümlenen ve segment güvenilir varsayıldığı için kimlik doğrulaması olmayan "iç" endpoint'ler. Agent'ın zeki olması gerekmez. Israrcı olması gerekir ve ısrarcılık onun için ucuzdur.
Tasarım kuralı: yetenekleri protokol sınırında kapsamlandırın
Bunu ele alan kontrol daha iyi bir perimeter değildir. Legacy katmanın önünde, agent'ın gerçekte konuştuğu protokolde ifade edilen bir yetenek sınırıdır. Üç kural bunu somutlaştırır.
Endpoint'in desteklediği fiilleri değil, bir agent'ın meşru olarak ihtiyaç duyduğu fiilleri numaralandırın. Bir legacy endpoint read, write, delete ve bir dizi yönetim operasyonunu destekleyebilir. Kayıtları özetleyen bir agent'ın tanımlı bir alt küme üzerinde read'e ihtiyacı vardır. Allowlist, endpoint'in yüzeyinden değil, görevden türetilir. Listede olmayan hiçbir şeye erişilemez, alttaki servis kabul edecek olsa bile.
Her fiili yalnızca bir kimliğe değil, bir hıza ve bir etki alanına bağlayın. Kimlik tabanlı erişim kontrolü "kim çağırıyor" sorusunu yanıtlar. "Kaç kez" veya "hangi kapsamda" sorusunu yanıtlamaz. Tek bir kayda kapsamlanmış bir read fiili, bir tablo taramasına kapsamlanmış bir read fiilinden farklı bir yetenektir, her ikisi de read olsa bile. Sınır her ikisini de taşımalıdır: fiil başına maksimum çağrı hızı ve çağrı başına maksimum sonuç kümesi veya etkilenen kayıt sayısı. Agent bunlardan birini aştığında, çağrı sessizce throttle edilmek yerine reddedilir, çünkü sessiz throttle bir yetenek ihlalini agent'ın yeniden deneyeceği bir timeout'a dönüştürür.
Belgelenmemiş endpoint'leri, çözümlenseler bile agent'lar için yok sayın. Legacy sistemler erişilebilir ama listelenmemiş endpoint'ler içerir. Bir insan operatör için belgelenmemiş bir endpoint etkin biçimde görünmezdir. Numaralandıran bir agent için bir adaydır. Sınır, agent'ın yetenek manifestosunda olmayan endpoint'lere yönlendirmeyi reddetmelidir, ağ isteği iletecek olsa bile. Bu, "agent ona erişemez" ile "agent'ın ona erişmesine izin verilmez" arasındaki farktır; ikincisi ağ değişikliklerine dayanır.
Minimal bir manifesto şekli netleştirir:
agent_capabilities:
- verb: read_record
endpoint: /legacy/lookup
max_rate: 5/s
max_scope: 1 record
- verb: submit_job
endpoint: /legacy/batch
m

Manifesto bir firewall kuralı değildir. Agent'ın ne için olduğunun bir tanımıdır ve migration programlarının şu anda eksik olduğu artefakttır.
## Bunun migration programları için anlamı
Modernizasyon yol haritaları tehdit modelinin insan olduğunu varsayar. İşi iş değeri, teknik borç ve bağımlılık sırasına göre sıralarlar. Agent hazırlığı, kendi envanterine sahip ayrı bir iş akışıdır: hangi endpoint'ler çözümlenir, hangi fiilleri kabul ederler, hangi servis hesapları onlara erişir ve bu fiillerden hangilerine bir agent'ın meşru bir görev için ihtiyacı olur. Bu envanter bir saldırı yüzeyi haritasıyla aynı değildir, çünkü erişilebilirliğe değil amaçlanan kullanıma kapsamlanmıştır.
Dürüst ödünleşim, yetenek kapsamlandırmanın sürdürülmesi gereken bir sınır eklemesidir. Her yeni agent görevi bir manifesto değişikliği gerektirir; her manifesto değişikliği bir incelemedir. Bu sürtünmedir ve mesele de budur. Alternatif, agent'ın legacy sistemin örtük güven varsayımlarını devralmasına izin vermektir; bu da sistemin toleranslarının agent'ın izinleri haline gelmesi anlamına gelir. Sürtünme, kontrolün kendisidir.
İkinci bir ödünleşim kapsamdır. Legacy katmanın önündeki bir yetenek sınırı legacy katmanı korur. Agent'ın kendi tooling'ini, kimlik bilgilerini veya agent'ın aşağı yönde yazdığı sistemleri korumaz. Sınırda kapsamlandırma gereklidir ve yeterli değildir; burada tanımlanan spesifik uyumsuzluğu ele alan en ucuz kontroldür.
En ucuz kısa vadeli kontrol, legacy katmanın önünde bir egress ve fiil allowlist'idir. Legacy sistemin yeniden yazılmasını gerektirmez ve migration'ın önce tamamlanmasını gerektirmez. Agent'ın ne için olduğuna dair bir envanter ve bunu uygulayan bir sınır gerektirir. Bu, migration'dan daha küçük bir iş parçasıdır ve migration'ın insan hızındaki etkileşim hakkındaki varsayımlarının bir agent'la temasında hayatta kalıp kalmayacağını belirleyen parçadır.
## Korunması gereken çerçeveleme
Legacy sistemler agent'lar var olduğu için yeni baştan savunmasız değildir. Agent'lar var olduğu için yeni baştan kullanılmaktadır ve bu kullanım her zaman orada olan varsayımları ortaya çıkarır. Çözüm, statik bir hedefin etrafındaki perimeter'ı sertleştirmek değildir. Agent'ın sınırda, konuştuğu protokolde ne yapabileceğini, fiillere yalnızca kimlikler yerine hızlar ve etki alanları ekleyerek kapsamlandırmaktır. Bu bir yetenek sorunudur ve migration'ı beklemeden çözülebilir.
