İki çevre, eksik bir katman
Walmart, kataloğunu sıkı angajman kuralları altında agent güdümlü satın almaya açtı. Amazon ise çevresini kapalı tuttu ve yetkili bir agent olarak tanımadığı trafiği engelledi. Bir politika hikâyesi olarak okunduğunda bu, bir perakendecinin otomasyonu benimsemesi, diğerinin direnmesi gibi görünüyor. Bir mühendislik hikâyesi olarak okunduğunda ise daha dar ve daha ilginç bir şey: hiçbir tarafın tam olarak tanımlamadığı bir soruya iki farklı yanıt.
O soru "bir agent bir şey satın alabilir mi?" değil. Soru şu: "kimin yetkisiyle, hangi sınırlar içinde ve satıcı bunu nasıl bilecek?" Walmart'ın kural seti, bir agent'ın hangi koşullar altında hareket edebileceğini tanımlama girişimidir. Amazon'un çevresi, bu koşullar tesis edilene kadar eylemi reddetme girişimidir. İkisi de birer yetkilendirme pozisyonudur. Hiçbiri bir vitrin pozisyonu değildir.
Aynı boşluk altyapı çalışmalarında da görünüyor: Cloudflare ve Commerce.com'un agent trafiği için vitrin hazırlığını inşa etmesi faydalı, ancak hazırlık delegasyonla aynı şey değil. Bir agent'ın isteğini sonlandırmak, hız sınırlamak, imzalamak veya makine tarafından okunabilir bir ürün akışı sunmak, hepsi bir isteğin nasıl geldiğini tarif eder. Hiçbiri agent'ın alışverişçi adına neyi taahhüt etmeye yetkili olduğunu tarif etmez. Eksik olan katman, kimlik ile ödeme arasında duruyor.
Bir yetkinin gerçekte taşımak zorunda olduğu şeyler
Yetki (mandate), taahhüt anında alışverişçinin yerine geçen eserdir. Bir oturum çerezi değildir ve bir API anahtarı değildir. Ödeme anında kullanılabilir olması için en azından şunları taşımak zorundadır:
- Asil (Principal). Agent'ın kimin adına hareket ettiği; satıcının agent'ın kendisinden bağımsız olarak doğrulayabileceği şekilde tanımlanmış.
- Satıcı kapsamı. Yetkinin hangi satıcılarda geçerli olduğu. Bir perakendeci için verilen yetki bir başkasında değersiz olmalı ve satıcı bunu görebilmelidir.
- Harcama tavanı. Sepetten kopyalanmış tek bir sayı yerine para birimi ve vergi değişimine dayanan bir şekilde ifade edilmiş azami taahhüt.
- Ürün kısıtları. Satın almanın ne için olduğunu, yalnızca ne kadar tuttuğunu değil, kodlayan kategoriler, adetler ve hariç tutulanlar.
- Son kullanma. Eski bir yetkinin sonradan yeniden oynatılamayacağı kadar kısa bir geçerlilik penceresi.
- Bir iptal kanalı. Asilin yetkiyi geri çekebileceği bir yol ve satıcı tarafında bunu sorgulama yükümlülüğü.
Zorunlu gereksinim, her alışverişçi için paylaşılan bir sır olmadan doğrulanabilirliktir. Her satıcının her alışverişçiyle ikili bir kimlik bilgisi olması gerekiyorsa, sistem birkaç entegrasyonun ötesine ölçeklenmez. Yetki, alışverişçinin her vitrine verdiği bir parola değil, satıcının asilin yayımlanmış yetkisine karşı kontrol edebileceği imzalı, kapsamlı bir beyan olmalıdır.

İkinci zorunlu gereksinim, yeniden oynatmaya dirençtir. Bir zaman aşımından sonra ödemeyi yeniden deneyen bir agent, satıcı tarafından mükerrer sipariş veren bir alışverişçiden ayırt edilemez. Bu nedenle yetkinin işleme bağlı bir benzersizlik özelliği taşıması gerekir; öyle ki aynı niyetin ikinci kez gönderilmesi ücretlendirilmek yerine reddedilsin veya tekilleştirilsin. Bu olmadan, bir agent'ın gönderdiği her yeniden deneme politikası bir çift faturalama hatasına dönüşür.
Harcama limiti neden bir yetki değildir
Sayısal bir tavan miktarı sınırlar. Niyeti sınırlamaz ve alışverişçinin gerçekte devrettiği şey niyettir.
Birkaç yüz para birimi birimlik tavanı olan ve kategori kısıtı olmayan bir yetki düşünün. Her biri tavanın rahatça içinde kalan on küçük sipariş, tavanın engelleyeceği tek büyük siparişten daha fazla zarar üretebilir: alışverişçinin hesabı, hiçbiri limiti aşmayan, tek tek makul görünen işlemler boyunca boşaltılır. Tavan baştan sona sağlanmıştır. Yetki ise ikinci siparişten itibaren ihlal edilmiştir.
Niyeti kodlayan şey kategori ve satıcı kısıtlarıdır. "Bu hafta, bu perakendeciden, bozulan su ısıtıcısını değiştir" bir alışverişçinin üzerine akıl yürütebileceği ve bir satıcının kontrol edebileceği bir delegasyondur. "X'e kadar harca" değildir, çünkü satın alma yetkisiyle birlikte ne satın alınacağına dair yargıyı da devreder. Bir yetkinin bir limitten daha zengin bir nesne olmasının tüm nedeni bu ayrımdır.
İptal de aynı biçime sahiptir. Yalnızca oturum başında etkili olan bir iptal, bir iptal kanalı değildir; bir bildirimdir. Asil, agent oturum ortasındayken yetkiyi geri çekerse, satıcı bunu taahhüt anında görmek zorundadır; bu da yetkinin bağlantı anında değil, taahhüt anında kontrol edilmesi anlamına gelir. Çoğu vitrin hazırlığı çalışmasının atladığı tasarım kısıtı budur, çünkü satıcının ödeme yolunda kontrol etmediği bir otoriteye başvurmasını gerektiren tek kısıt odur.
Dürüst ödünleşim: taahhüt anında yetki kontrolü, huninin gecikmeye en duyarlı kısmına bir bağımlılık ekler ve kapalı yönde başarısız olur. İptal veya doğrulama uç noktasına ulaşamayan bir satıcı, meşru bir satın almayı engellemek ile doğrulayamadığı bir satın almayı kabul etmek arasında karar vermek zorundadır. Yetkinin geçerliliğini oturum boyunca önbelleğe almak bağımlılığı azaltır ama oturum ortası iptalin kapatmayı amaçladığı pencereyi tam olarak geri getirir. Bu gerilimi ortadan kaldıran bir yapılandırma yoktur; yalnızca pencerenin ne kadar uzun olacağı ve kapandığında maliyeti kimin taşıyacağı konusunda bir seçim vardır.

Kimsenin puanlamadığı değerlendirme sorusu
Çoğu alışveriş agent'ı kıyaslama seti görev tamamlanmasını puanlar. Agent ürünü buldu mu? Ödemeyi tamamladı mı? Sipariş geçti mi? Bu ölçüte göre, yetki dışında yapılan bir satın alma başarıdır, çünkü satın alma gerçekleşmiştir. Devredilmiş yetki altında hareket etmesi gereken bir sistem için bu yanlış puanlama fonksiyonudur.
Alışveriş agent'ları için bir test düzeneği, önce yetki uyumunu, sonra tamamlanmayı puanlamalıdır. Somut olarak, her bölüm için şunları yanıtlayabilmelidir:
- Taahhüt edilen her işlem satıcı kapsamı, harcama tavanı ve ürün kısıtları içinde miydi?
- Agent son kullanmadan veya iptalden sonra bir taahhüt girişiminde bulundu mu ve girişim reddedildi mi?
- Bir yeniden deneme mükerrer bir taahhüt mü üretti, yoksa orijinal niyete karşı tekilleştirildi mi?
- Yetki ile görev çeliştiğinde agent hangisine uydu?
Yetki dışında yapılan doğru bir satın alma bir başarısızlıktır. Yetki içinde, agent'ın kendi hatasından kaynaklanan reddedilmiş bir satın alma da bir başarısızlıktır, ama farklı bir başarısızlık. İkisini de "görev tamamlanmadı" içinde birleştirmek, agent trafiğini kabul edip etmeyeceğine karar veren bir satıcı için önemli olan tek sinyali gizler.
Bir güven rozetinin yeterli olmamasının nedeni budur. Bir rozet, bir agent'ın bir noktada birinin değerlendirmesini geçtiğini iddia eder. Bir uyum raporu ise satıcının, agent'ın sunduğu yetkiye karşı gerçekte giriştiği işlemlerde ne yaptığını denetlemesini sağlar. İlki bir iddiadır; ikincisi kanıttır. Agent uç noktalarını entegre eden satıcıların ikincisine ihtiyacı vardır, çünkü birincisi sonradan kontrol edilemez.
Ayrılık gerçekte neyle ilgili
Walmart'ın kuralları da Amazon'un çevresi de geçicidir. Biri şöyle der: hareket et, ama yalnızca bizim tanımladığımız koşullar içinde. Diğeri şöyle der: yetki tesis edilene kadar hareket etme. İkisi de aynı eksik grameri bekliyor — bir alışverişçinin yetkisini kapsamlı, sınırlı, iptal edilebilir, yeniden oynatmaya dirençli ve bir satıcı tarafından alışverişçi başına bir sır olmadan doğrulanabilir şekilde ifade etmenin bir yolu.
Bu gramer bir vitrin özelliği değildir. Bir katalog sunarak veya istek başlıklarını imzalayarak gönderilmeyecek ve hangi perakendecinin önce hareket ettiğiyle karara bağlanmayacaktır. Bu, delegasyon hakkında bir spesifikasyon sorunudur ve ona bu şekilde yaklaşan stüdyolar ile standart kuruluşları, satıcıların gerçekten denetleyebileceği bir şey üretecektir. Geri kalanlar ise henüz yazmadıkları bir sorunun etrafında çevre inşa etmeye devam edecektir.
