Ana içeriğe geç

Bir Devlet Portalına Erişen Agent, Bir Yönlendirme Hatasıdır

Yetkisiz erişim, prompt'ta değil çıkış darboğazında çözülür. Her agent filosunun, reddetmeleri birinci sınıf olay olan tek bir denetlenebilir ağ sınırına ihtiyacı vardır.

Low angle view of a neoclassical building facade featuring pillars and a balcony in daylight.

Olay örüntüsü

Bir agent filosunun ait olmadığı bir devlet veya sağlık portalına dokunduğu bildirildiğinde, postmortem nadiren bir yetki yükseltmesi ortaya çıkarır. Ne bir kernel exploit'i, ne çalınmış bir kimlik bilgisi, ne de bir yetkilendirme servisinde confused-deputy hatası vardır. Agent'ın asla çözmemesi gereken bir hostname'e yapılan bir giden HTTP isteği ve geri dönen bir yanıt vardır.

Bu tür raporların özetlerinde kaybolan ayrıntı şudur: agent yeni bir yetenek edinmedi. Erişilebilir bir hostname edindi. Bir istek yapmak için ihtiyaç duyduğu her şey — bir TLS yığını, bir DNS çözümleyici, manifestosundaki bir fetch aracı — zaten mevcuttu ve tasarlandığı gibi çalışıyordu. Hata, agent'ın ne yapabildiğinde değildi. Agent'ın nereye gidebildiğindeydi.

Kamu sektörü portallarına karşı bildirilen agent etkinliği bu şeklin etrafında kümelenir. İlginç soru, modelin neden o hostname'i seçtiği değildir. İlginç soru, ağın bağlantıya neden izin verdiğidir.

Prompt düzeyindeki guardrail'ler bu hattı neden tutamaz

Talimatlar olasılıksaldır. Ağ erişilebilirliği deterministiktir. Bu asimetri tüm argümandır.

"Devlet sistemleriyle iletişime geçme" diyen bir system prompt, token dizileri üzerinde bir önseldir. Çoğu zaman tutar ve numaralandırması zor biçimlerde bozulur: hedefi yeniden çerçeveleyen çok adımlı bir plan, beklenmedik bir URL sağlayan bir tool sonucu, kısıtlamanın karar noktasından uzak olduğu uzun bir context, harici bir bağlantıyı talimat olarak ele alan bir retrieval isabeti. Bunların hiçbiri düşmanca bir aktör gerektirmez. Makul bir token dizisi gerektirirler.

Engellenmiş bir hostname tür olarak farklıdır. Agent'ın kontrol etmediği bir darboğazda bir kez uygulanır ve her gelecek çalıştırmaya, her model sürümüne, her temperature ayarına, her yeniden denemeye aynı şekilde uygulanır. Bir prompt'ta yeniden ifade edilmesi gerekmez. Context uzunluğuyla bozulmaz. Yeterince akıcı bir completion tarafından ikna edilemez.

Bu, prompt düzeyindeki guardrail'lere karşı bir argüman değildir. Niyeti şekillendirmek ve ucuz, erken reddetme için faydalıdırlar. Model yanlışken, yorgunken veya yönlendirilirken tutması gereken bir sınır için yanlış katmandırlar. Var olmaktan vazgeçirilebilen bir sınır, sınır değildir.

Çıkış sözleşmesini tasarlamak

Pratik birim, bir çıkış sözleşmesidir: bir agent kimliğinin neye, hangi koşullar altında ve ne kadar süreyle erişebileceğini tanımlayan bildirimsel bir kural kümesi. Düzgün yapıldığında, bir hostname allowlist'inden daha spesifiktir.

Two professionals engaging in a business meeting, signing documents for a consulting agreement.

Hedef, method ve payload sınıfına göre allowlist

Tek başına hostname fazla kabadır. api.example.gov'a izin veren bir kural her path'e, her method'a, her body'ye izin verir. Daha sıkı bir sözleşme üç şeyi birlikte adlandırır:

  • Hedef: scheme, host ve path öneki — tüm origin yerine https://api.example.gov/v1/records/.
  • Method: GET ve HEAD okuma yollarıdır; POST, PUT, PATCH ve DELETE yazma yollarıdır ve ayrıca gerekçelendirilmelidir.
  • Payload sınıfı: dışarı çıkabilecek şeyin şekli. Yalnızca bir tanımlayıcı gönderen bir retrieval agent'ı, bir belge gövdesi ekleyebilen bir agent'tan farklı bir risktir. Payload sınıfı şema ile, boyut tavanı ile veya proxy'deki bir sınıflandırıcı ile uygulanabilir.

Üçünü birden bağlayan bir kural, bir hostname listesinin olmadığı şekilde denetlenebilirdir. Bir gözden geçiren "bu agent bir sağlık portalına veri gönderebilir miydi?" diye sorduğunda, yanıt bir çıkarım değil, bir aramadır.

Varsayılan olarak reddet, açık bir ticket ile

Varsayılan duruş reddetmedir. Erişim, şunları adlandıran bir istisna ile verilir:

requesting_agent: intake-classifier-v3
purpose: fetch public reference data for citation
destination: https://api.example.gov/v1/records/
methods: [GET, HEAD]
payload_class: identifier-only
requested_by: platform-team
justification: ticket OPS-4821
expires_at: 2026-09-30T00:00:00Z

Sona erme tarihi yük taşıyan alandır. Kalıcı istisnalar birikir; sona erenler periyodik bir yeniden gerekçelendirmeyi zorlar ve bayat erişim tam da orada kaldırılır. Ticket tanımlayıcısı, ağ kuralını onu yetkilendiren insan kararına bağlar, böylece bir olay incelemesi bir bağlantıdan bir kişiye ve bir gerekçeye yürüyebilir.

Reddetmeleri birinci sınıf olay olarak logla

Çoğu proxy izin verilen trafiği ayrıntılı olarak, reddetmeleri ise bir sayaç olarak loglar. Bu vurguyu tersine çevirin. Bir reddetme; agent kimliğini, denenen hedefi, method'u, tetiklenen kuralı ve çalıştırmaya geri bir korelasyon tanımlayıcısını taşır.

Reddetme sıklığı, prompt kaymasının öncü bir göstergesidir. Kararlı bir agent, kararlı ve düşük bir reddetme oranı üretir; çoğunlukla yeniden denemelerden ve yazım hatalarından. Artan bir oran veya bir hedef sınıfına karşı yeni bir reddetme kümesi, genellikle herhangi bir başarılı sızdırma gerçekleşmeden önce agent'ın davranışının kaydığını gösterir. Reddetmeler erken sinyaldir;

İşleyen bir uygulama, agent runtime'ı ile ağ arasına bir broker yerleştirir. Agent'ın fetch aracı socket açmaz. Broker'ı yapılandırılmış bir istekle çağırır:

Close-up view of Westminster Palace's intricate Gothic architecture in London, UK.

{
  "agent": "intake-classifier-v3",
  "run_id": "r-8f21c",
  "method": "GET",
  "url": "https://api.example.gov/v1/records/4412",
  "payload_class": "identifier-only"
}

Broker, isteği derlenmiş sözleşmeye göre çözer; hedefi, method'u ve payload sınıfını değerlendirir ve ya çağrıyı proxy'ler ya da reddeder. Reddetmeler, başarılarla aynı append-only log'a kural tanımlayıcısı ve çalıştırma korelasyonu ile birlikte yazılır. Agent iş yükleri için DNS, broker'a sabitlenir, böylece sözleşmede olmayan bir hostname baştan çözülmez.

Broker, tek denetlenebilir sınırdır. İncelenecek tek bir yer, değiştirilecek tek bir yer ve bir reddetmenin kanıt yokluğu yerine kayıtlı bir olgu olduğu tek bir yer vardır.

Dürüst ödünleşim

Merkezi bir çıkış broker'ı bir bağımlılıktır. Her giden çağrıya bir gecikme atlaması ekler, ağa ihtiyaç duyan agent'lar için tek bir hata noktasıdır ve operasyonel disiplin gerektirir: sözleşme değişiklikleri kod gibi gözden geçirilmeli, dağıtılmalı ve sürümlenmelidir. Bu disiplini atlayan ekipler, bir iş yükü için "geçici olarak" baypas edilen bir broker'la ve geçici bir baypasın kalıcı bir delik olmasıyla sonuçlanır.

Maliyet gerçektir. Alternatif, erişimi bir tool sonucunda görünen hostname'lerle tanımlanan bir filodur ki bu hiç de sınır değildir. Gecikme ve bir inceleme kuyruğu, sınırsız bir çıkış yüzeyinden daha ucuzdur.

Operasyonel sonuçlar

Çıkışı bir sözleşme olarak ele almaktan iki pratik doğar.

Çıkış kuralları sürümlenmiş artefaktlar haline gelir. Agent'ın tool manifestosuyla aynı repository'de yaşarlar ve aynı değişiklikte gözden geçirilirler. Yeni bir origin'den fetch yapan bir tool ekleyen bir pull request, karşılık gelen çıkış kuralını eklemeli veya değiştirmelidir ve bir gözden geçiren ikisini birlikte görür. Tool manifestosu agent'ın ne yapmayı amaçladığını söyler; çıkış sözleşmesi ne yapmasına izin verildiğini söyler. Aralarındaki sapma, bir runtime sürprizi değil, bir inceleme bulgusudur.

Olay incelemesi ağ log'undan başlar. Bir şeyler ters gittiğinde, ilk artefakt etkilenen çalıştırma penceresi için broker'ın log'udur: hedefler, method'lar, payload sınıfları, reddetmeler ve ilgili kural tanımlayıcıları. Transcript'e niyeti anlamak için sonradan başvurulur. Bu sıralama önemlidir çünkü ağ log'u deterministiktir ve transcript bir yeniden inşadır. Log'dan başlamak, kimse "model ne demek istedi" diye tartışmadan önce "gerçekte ne çıktı" sorusunu yanıtlar.

Kapanış

Bir agent'ın dokunmaması gereken bir portala erişmesi, öncelikle bir model davranışı hikayesi değildir. Bir yönlendirme hikayesidir. Erişim bir yerde verilmiştir — izin verici bir varsayılan, bayat bir istisna, sabitlenmemiş bir çözümleyici tarafından — ve düzeltme tam da o verilişe aittir. Prompt düzeyindeki guardrail'ler niyeti şekillendirir; erişimi uygulamazlar. Varsayılan olarak reddeden, reddetmeleri başarılarla aynı sadakatle loglayan ve tool manifestosuyla birlikte sürümlenen tek bir denetlenebilir çıkış sınırı, "bu agent o host'a erişebilir miydi?" sorusunun yanıtını bir umut yerine bir arama haline getiren şeydir.

İlgili okumalar

Bunun yanıtladığı sorular

Why can't a system prompt stop an agent from contacting a government portal?

Instructions are probabilistic; they hold most of the time and degrade under long context, unexpected tool results or multi-step reframing. Network reachability is deterministic and enforced at a chokepoint the agent does not control, so it applies identically to every run and model version.

What should an egress rule specify beyond a hostname?

Destination (scheme, host and path prefix), HTTP method, and payload class. Binding all three makes the rule auditable: a reviewer can determine whether a specific agent could have submitted data to a specific endpoint by lookup rather than inference.

Why log denials as carefully as successes?

Denial frequency is a leading indicator of prompt drift. A rising rate or a new cluster of denials against one destination class usually signals a behavioural shift before any successful unauthorised request occurs.

What is the main cost of a central egress broker?

It is a dependency: added latency per outbound call, a single point of failure for network-dependent agents, and a requirement for contract changes to be reviewed, versioned and deployed like code. Bypasses granted 'temporarily' tend to become permanent holes.