The PRG Pattern for AI Agents

Agen AI sedang menghadapi masalah lama. Ini adalah bug yang sama yang merusak formulir web pada tahun 90-an.

Di era web lama, seorang pengguna akan mengirimkan formulir. Jika mereka menekan refresh, browser akan mengirimkan ulang data tersebut. Ini berarti dua pesanan, dua tagihan, atau dua email.

Solusinya adalah pola Post/Redirect/Get (PRG).

Logikanya sederhana:

  • Pengguna mengirimkan permintaan POST.
  • Server memproses pekerjaan tersebut.
  • Server mengirimkan 302 Redirect ke URL baru.
  • Browser mengikuti pengalihan tersebut dengan permintaan GET.

Refresh sekarang hanya memuat ulang halaman hasil. Ini tidak mengulangi tindakan tersebut.

Agen AI telah membawa bug ini kembali ke lapisan baru.

Ketika sebuah agen memanggil alat (tool) untuk menagih kartu atau membuat catatan, terjadi kesalahan. Koneksi jaringan terputus. Kontainer dimulai ulang. Rate limit tercapai. Agen tidak tahu apakah panggilan terakhir berhasil. Jadi, ia mencoba lagi.

Tanpa perbaikan, agen akan membuat pesanan duplikat dan menagih pelanggan yang marah.

Anda harus menerapkan pola PRG pada pipeline agen Anda menggunakan kunci idempotensi (idempotency keys).

Kunci idempotensi adalah pengalihan Anda. Ini memisahkan tindakan dari hasilnya.

Cara mengimplementasikannya:

  • Setiap alat yang bersifat mengubah (mutating tool) harus menerima kunci idempotensi.
  • Hasilkan kunci sebelum upaya pertama.
  • Turunkan kunci dari niat pengguna (user intent), bukan dari timestamp.
  • Server harus memeriksa apakah ia pernah melihat kunci tersebut sebelumnya.
  • Jika kunci sudah ada, kembalikan hasil yang tersimpan alih-alih menjalankan tugas itu lagi.

Untuk tugas yang lama, Anda membutuhkan lebih dari sekadar kunci. Anda membutuhkan checkpointing.

Checkpointing menyimpan status pada setiap langkah. Jika agen mengalami crash di tengah tugas berdurasi dua puluh menit, ia akan melanjutkan dari tempat ia berhenti. Ia tidak akan mulai dari awal.

Jika Anda hanya bisa melakukan satu hal, buatlah setiap panggilan alat aman untuk dijalankan dua kali.

Bangun agen Anda dengan lima pemeriksaan ini:

  • Apakah setiap alat menerima kunci idempotensi?
  • Apakah kunci didasarkan pada niat (intent) alih-alih waktu?
  • Apakah kunci digunakan kembali pada setiap upaya pengulangan?
  • Apakah server mengembalikan hasil yang tersimpan untuk kunci duplikat?
  • Apakah langkah-langkah perantara disimpan untuk tugas yang lama?

Polanya sama. Hanya lapisannya yang berubah.

Sumber: https://dev.to/ravikiran438/the-prg-pattern-for-ai-agents-a-25-year-old-fix-coming-of-age-in-a-new-era-23fh