Pola PRG untuk Agen AI
Agen AI sedang mengulangi kesalahan yang sudah berusia 25 tahun.
Pada era 90-an, formulir web memiliki bug besar. Seorang pengguna akan melakukan pemesanan, menekan refresh, dan browser akan mengirimkan pesanan tersebut lagi. Hal ini menyebabkan dua kali penagihan dan satu pelanggan yang marah.
Solusinya adalah pola Post/Redirect/Get (PRG). Cara kerjanya adalah sebagai berikut:
- Pengguna mengirimkan permintaan POST untuk mengirimkan data.
- Server memproses data tersebut.
- Server mengirimkan pengalihan (redirect) ke URL baru.
- Browser melakukan permintaan GET untuk menampilkan hasilnya.
Jika pengguna menekan refresh, mereka hanya mengulang permintaan GET. Permintaan POST yang berbahaya telah hilang.
Agen AI telah membawa kembali bug ini.
Ketika sebuah agen memanggil alat (tool) untuk menagih kartu atau membuat catatan, koneksi jaringan mungkin terputus. Agen tersebut tidak tahu apakah tindakan tersebut berhasil. Ia mencoba lagi. Sekarang pelanggan mengalami dua kali penagihan.
Anda dapat memperbaiki ini dengan menggunakan kunci idempotensi (idempotency keys). Kunci idempotensi bertindak seperti pengalihan. Ia memisahkan antara "melakukan sesuatu" dengan "menampilkan hasil."
Pola untuk agen seharusnya terlihat seperti ini:
- Agen menghasilkan kunci unik sebelum upaya pertama.
- Ia menggunakan nilai yang stabil seperti user ID dan cart ID.
- Ia mengirimkan kunci ini pada setiap pemanggilan tool.
- Server memeriksa kunci tersebut. Jika server melihat kunci yang sama lagi, ia akan mengembalikan hasil sebelumnya alih-alih menjalankan tindakan tersebut dua kali.
Untuk tugas-tugas yang panjang, Anda membutuhkan lebih dari sekadar kunci. Anda membutuhkan checkpointing. Anda harus menyimpan status (state) pada setiap langkah. Ini memastikan bahwa saat dimulai ulang, proses dapat berlanjut dari titik terakhir.
Ikuti aturan ini untuk setiap agent tool yang mengubah data:
- Setiap mutating tool harus menerima kunci idempotensi.
- Turunkan kunci dari user intent, bukan dari timestamp.
- Hasilkan kunci sebelum upaya pertama.
- Gunakan kembali kunci yang sama pada setiap retry.
- Untuk tugas yang panjang, buatlah checkpoint pada setiap langkah perantara.
Lapisan (layer) berubah, tetapi logikanya tetap sama.
Komunitas pembelajaran opsional: https://t.me/GyaanSetuAi
