Yapay Zeka Ajanları için PRG Deseni
Yapay zeka ajanları eski bir sorunla karşı karşıya kalıyor. Bu, 90'lı yıllarda web formlarını bozan hatanın aynısı.
Eski web günlerinde, bir kullanıcı bir formu gönderirdi. Eğer sayfayı yenilerlerse, tarayıcı verileri tekrar gönderirdi. Bu da iki sipariş, iki ödeme veya iki e-posta anlamına geliyordu.
Çözüm, Post/Redirect/Get (PRG) deseniydi.
Mantık basittir:
- Kullanıcı bir POST isteği gönderir.
- Sunucu işlemi gerçekleştirir.
- Sunucu, yeni bir URL'ye 302 Redirect gönderir.
- Tarayıcı, yönlendirmeyi bir GET isteği ile takip eder.
Artık yenileme işlemi yalnızca sonuç sayfasını yeniden yükler. İşlemi tekrarlamaz.
Yapay zeka ajanları bu hatayı yeni bir katmana taşıdı.
Bir ajan, bir karttan ödeme almak veya bir kayıt oluşturmak için bir araç (tool) çağırdığında işler ters gider. Bir ağ kesintisi yaşanır. Bir konteyner yeniden başlar. Bir hız sınırı (rate limit) devreye girer. Ajan, son çağrının başarılı olup olmadığını bilemez. Bu yüzden tekrar dener.
Bir çözüm olmaksızın, ajan mükerrer siparişler oluşturur ve öfkeli müşterilerden tekrar ödeme alır.
İdempotens anahtarları (idempotency keys) kullanarak PRG desenini ajan tabanlı iş akışlarınıza (agentic pipelines) uygulamalısınız.
İdempotens anahtarı sizin yönlendirmenizdir. İşlemi sonuçtan ayırır.
Nasıl uygulanır:
- Her değiştirici (mutating) araç bir idempotens anahtarını kabul etmelidir.
- Anahtarı ilk denemeden önce oluşturun.
- Anahtarı bir zaman damgasından (timestamp) değil, kullanıcı niyetinden (user intent) türetin.
- Sunucu, anahtarı daha önce görüp görmediğini kontrol etmelidir.
- Eğer anahtar mevcutsa, görevi tekrar çalıştırmak yerine saklanan sonucu döndürün.
Uzun görevler için sadece bir anahtardan daha fazlasına ihtiyacınız var. Kontrol noktası oluşturmaya (checkpointing) ihtiyacınız var.
Kontrol noktası oluşturma, her adımda durumu kaydeder. Eğer ajan yirmi dakikalık bir görevin ortasında çökerse, kaldığı yerden devam eder. Baştan başlamaz.
Eğer sadece tek bir şey yapabilecekseniz, her araç çağrısını iki kez çalıştırılmaya güvenli hale getirin.
Ajanlarınızı şu beş kontrolle oluşturun:
- Her araç bir idempotens anahtarını kabul ediyor mu?
- Anahtar zamana değil, niyete mi dayanıyor?
- Anahtar her yeniden denemede tekrar kullanılıyor mu?
- Sunucu, mükerrer anahtarlar için saklanan sonuçları döndürüyor mu?
- Uzun görevler için ara adımlar kaydediliyor mu?
Desen aynı. Sadece katman değişti.
