Ana içeriğe geç

İtaat Eden ama Yine de Zarar Veren Agent'lar: Bir Spesifikasyon Hatası Olarak Philadelphia İhbarı

Philadelphia'daki sahte ihbar vakası bir halüsinasyon hikâyesi değil. Bir spesifikasyon hatası: bir agent, ön koşulları hiçbir zaman tanımlanmamış sonuç doğuran bir eylem gerçekleştirdi.

Karanlık bir odada, içinde parlayan elektrik filamentleri olan kristal cam plazma küresi

Vaka aslında neyi gösteriyor

Philadelphia'dan bir haber raporu, otomatik bir sistemin veya ona güvenen bir operatörün, yanlış olduğu ortaya çıkan bir ihbarı iletmesini ve sonuçların, iddia kontrol edilemeden önce gerçek bir kişiye ve gerçek bir kuruma yansımasını anlatıyor. Atıf detayları, hatanın şeklinden daha az önemli. Agent kendisinden isteneni yaptı. Zarar, ön koşulları hiçbir zaman belirtilmemiş bir eylemden geldi: ihbar binadan çıkmadan önce hangi kanıt gerekiyordu, kaç bağımsız kaynak tarafından doğrulanmıştı, alıcı ihbar ulaştıktan sonra herhangi bir şeyi geri alabilir miydi.

Bu, her hafta tool-calling değerlendirmelerinde gördüğümüz aynı hata sınıfı. Her çağrı şema açısından geçerli. JSON ayrıştırılıyor, argümanlar tanımlı tiplerle eşleşiyor, taşıma katmanı 200 döndürüyor. Sonuç yine de yanlış çünkü geçerlilik, politikaya uygunluk değildir. Bir tool call biçimsel olarak doğru, bağlam açısından diskalifiye edici olabilir: yanlış alıcıya gönderilen bir mesaj, tek bir doğrulanmamış alana dayanarak güncellenen bir kayıt, görmezden gelemeyecek bir üçüncü tarafa iletilen bir bildirim.

Bunu bir halüsinasyon sorunu olarak çerçevelemek, işe yaramayacak bir model düzeltmesini davet eder. Model bir detay uydurduysa, daha iyi temellendirme istemek makul olabilir. Ancak Philadelphia örüntüsünde model, kendisine verileni tam olarak raporlamış olabilir. Boşluk üretimin üst tarafındaydı: sistemde hiçbir şey bu eylem izin verilmeden önce iki bağımsız kaynak gerektirir demiyordu. Hiçbir prompt, bir gereksinim olarak yazılmamış bir boşluğu kapatamaz.

Sonuç doğuran araçlar ön koşul gerektirir

Faydalı ayrım iyi ve kötü modeller arasında değil. Kurum içinde kalan araçlar ile üçüncü bir tarafa ulaşan araçlar arasında. Dahili bir indeks üzerinde retrieval çağrısını yanlış yapmak ucuzdur. Bir düzenleyiciye e-posta gönderen, rapor dosyalayan, adı belirli bir kişi hakkında iddia yayımlayan veya bir saha ekibi görevlendiren çağrı değildir.

İkinci kategorideki her araç için wrapper en az üç şeyi bildirmelidir.

  • Gerekli kanıt. Çağrıya izin verilmeden önce hangi alanların mevcut ve null olmayan olması gerektiği ve her birinin hangi kökeni taşıması gerektiği. Tek bir yapılandırılmamış kaynağa sahip bir ihbar, bir kaynak, bir zaman damgası ve doğrulayıcı bir kayda sahip bir ihbarla aynı nesne değildir.
  • Doğrulama sayısı. Kaç bağımsız kaynağın hemfikir olması gerektiği. Bağımsızlık zor kısımdır; aynı üst kaynaktan kopyalanan iki alan, iki şapka takan tek bir kaynaktır ve şema, sayının iddia edilmek yerine hesaplanması için köken grafiğini kodlamalıdır.
  • Geri alınabilirlik sınıfı. Eylemin geri alınıp alınamayacağı ve kim tarafından alınabileceği. Dahili bir taslak göndermek geri alınabilir. Bir ihbarı harici bir ortağa göndermek geri alınamaz, çünkü alıcı onu çoktan okumuştur.

Stacked metallic AA batteries arranged in a pyramid shape, shown in close-up

Geri alınamaz, üçüncü tarafı etkileyen eylemler, adı belirli bir insan sorumluyla ayrı bir onay yolu gerektirir. Genel bir kuyruk değil, paylaşılan bir posta kutusu değil: denetim kaydının onay anında kaydettiği belirli bir hesap verebilir rol. Onay, diğerleri gibi bir ön koşuldur ve aynı mekanizma tarafından değerlendirilir.

Ön koşul kontrolü prompt'ta değil, tool wrapper'da yer alır. Wrapper, modelin önerdiği çağrı ile yan etki arasında durur. Argümanları alır, bildirilen ön koşullara başvurur, bunları mevcut duruma göre değerlendirir ve ya çağrıya izin verir ya da yapılandırılmış bir ret döndürür. Kodda yaşadığı için model yükseltmelerinden, prompt yeniden yazımlarından ve yeni bir agent framework'ünün gelişinden sağ çıkar. İsteği sessizce yeniden yazmak yerine ret döndürdüğü için modele neden olduğu söylenebilir ve model farklı bir yol seçebilir; retin kendisi de bir kayıt haline gelir.

Prompt'lar bunu neden taşıyamaz

Talimatlar bağlam için yarışır. Görev çerçevelemesi, araç açıklamaları, biçimlendirme kuralları ve mevcut konuşmanın yanı sıra operasyonel politikayı da taşıyan bir system prompt, politikanın birçok ses arasından yalnızca bir ses olduğu bir system prompt'tur. Uzun ufuklarda bu ses daha yüksek çıkmaz; daha da uzaklaşır. Yirminci turda, bağlamın en üstüne yazılmış bir uyarı, modelin ağırlık verip vermeyebileceği bir olgudur ve dışarıdan hangisi olduğunu söylemenin yolu yoktur.

Kodda kontrol edilen bir ön koşul, gerekçeli bir ret üretir. Bu ret; zaman damgası, girdi, kural tanımlayıcısı ve sonucu olan ayrık bir olaydır. Sayılabilir, örneklenebilir ve yeniden oynatılabilir. Prompt düzeyindeki uyarı, sonradan inceleyebileceğiniz hiçbir şey üretmez. Bir ihbar gittiyse ve sistemin doğrulamayı düşünüp düşünmediğini bilmek istiyorsanız, prompt ile cevap bunu istedik olur. Wrapper ile cevap bir log satırıdır.

Burada dürüst bir ödünleşim var ve küçük değil. Kodda ön koşullar gecikme ve sürtünme ekler. Artık her sonuç doğuran çağrı bir değerlendirmeyi bekler ve bunların bir kısmı reddedilir ve bir insanın bakması gerekir. İlk haftalarda bu oran rahatsız edicidir, çünkü şema yerini aldığı gayriresmî süreçten daha katıdır. Ekipler bunu sistemin ayağına dolanması olarak hisseder ve kuralı gevşetme baskısı hemen gelir. Karşı baskı, gevşetilmiş bir ön koşulun başarısız olana kadar görünmez olması, katı olanın ise hemen görünür olmasıdır. Maliyet peşin ve görebileceğiniz bir yerde ödenir.

İkinci bir ödünleşim: ön koşullar ancak okudukları durum kadar iyidir. Doğrulama sayısı, üst sistemlerin tutarsız doldurduğu bir köken alanına bağlıysa, kontrol olmaması gereken şeylere geçit verir. Bu yüzden değerlendirme, gerçekte gördüğü girdilerle birlikte çağrının yanında loglanmalıdır. Bir ön koşulun yanlış olduğu ortaya çıktığında, log size kuralın mı kötü olduğunu yoksa onu besleyen verinin mi kötü olduğunu söyler.

Close-up of glowing fiber optic strands with purple and blue bokeh, stock photo

Tasarım kuralı: sınıflandır, sonra iliştir

Pratik kural, araçları etki alanı ve geri alınabilirlik açısından sınıflandırmak, sonra ön koşulları tek tek prompt'lara değil sınıfa iliştirmektir. Bir aracın sınıfı, aracın bir özelliğidir; bir kez bildirilir, araç değiştiğinde gözden geçirilir. O araca ulaşabilen her agent, sınıfı ve ön koşullarını otomatik olarak devralır. Yeni agent'ların dikkatli olmayı öğrenmesi gerekmez; onlara bu niteliği zaten taşıyan araçlar verilmelidir.

Minimal bir bildirim şöyle görünür:

tool: submit_external_tip
blast_radius: third_party
reversibility: irreversible
preconditions:
  - rule: evidence.required_fields
    fields: [claim_text, source_id, source_timestamp]
  - rule: corroboration.min_independent
    count: 2
    provenance_field: source_lineage
  - rule: approval.named_principal
    role: duty_editor
    on_fail: refuse_with_reason

Wrapper her kuralı sırayla değerlendirir ve üç sonuçtan birini üretir: izin ver, gerekçeyle reddet veya adı belirli sorumluya yükselt. Değerlendirme kaydı, aynı trace içinde çağrının yanına yazılır, böylece karar aylar sonra yeniden kurulabilir: hangi kurallar çalıştı, hangi değerleri okudu, hangisi reddetti, onaylayan olduysa kim.

Bu gösterişsiz bir iştir. AI mühendisliğinden çok şema tasarımı ve erişim kontrolü gibi görünür, bu da atlanmasının nedenlerinden biridir. Ancak Philadelphia örüntüsü daha iyi bir modelle veya daha dikkatli bir prompt'la çözülmez. Ön koşulu araca iliştirilmiş birinci sınıf bir nesne yapmak, kodda değerlendirmek ve yönettiği eylemin yanında loglamakla çözülür. Agent'lar kendilerinden isteneni yapmaya devam edecek. Soru, kendilerinden istenenin kurumun gerçekten olmasına razı olduğu şeylerle sınırlanıp sınırlanmadığıdır.

Önce neyi enstrümante etmeli

Model değişikliğiyle değil, bir envanterle başlayın. Herhangi bir agent'ın çağırabileceği her aracı listeleyin. Her biri için üçüncü bir tarafa ulaşıp ulaşmadığını, geri alınıp alınamayacağını ve kurumun altı ay sonraki bir incelemede eylemi savunabilmesi için hangi kanıtın var olması gerektiğini kaydedin. Son sorunun net bir cevabı olmayan araçlar, bir sonraki olaydan sonra değil, bir sonraki dağıtımdan önce ön koşul gerektirenlerdir.

Sonra değerlendirmeyi trace'e bağlayın. Loglanmayan bir ret, hiç yapılmamış bir istekten ayırt edilemez; atfedilmeyen bir onay ise tek başına hareket eden bir agent'tan ayırt edilemez. Yukarıda bağlantılı iki haber raporu sonuçları anlatıyor; mühendislik yanıtı, bunları önleyecek ön koşulları açık, uygulanır ve okunabilir kılmaktır.

İlgili okumalar

Bunun yanıtladığı sorular

Why is the Philadelphia tip case not a hallucination problem?

The agent may have reported exactly what it was given. The failure was that nothing in the system required corroboration or evidence before a consequential external action, so better grounding would not have changed the outcome.

Where should precondition checks live?

In the tool wrapper, between the model's proposed call and the side effect. That way the check survives model upgrades and prompt rewrites, and produces an auditable refusal with a reason.

What should a precondition schema declare?

At minimum the required evidence fields and their provenance, a corroboration count over independent sources, and a reversibility class. Irreversible third-party actions also require approval from a named human principal.

What is the main trade-off of strict preconditions?

Latency and friction. Consequential calls wait on evaluation and some are refused, which teams experience as the system getting in the way. The counterweight is that a relaxed precondition stays invisible until it fails.