AI Agent Anda Tidak Perlu Menjadi Lebih Pintar. Ia Perlu Menjadi Idempoten
Sebagian besar AI agent di lingkungan produksi tidak gagal karena penalaran yang buruk. Mereka gagal karena kesalahan jaringan.
Model tersebut memilih alat yang tepat. Ia mengisi detail yang benar. Kemudian, ia menagih pelanggan dua kali.
Hal ini terjadi karena agent yang memiliki kemampuan menulis (write-capable) berada dalam jaringan yang tidak andal.
- Permintaan mengalami timeout.
- Koneksi terputus.
- Framework mencoba kembali (retry) langkah-langkah yang sudah selesai.
Pada agent yang bersifat read-only, pengulangan (retry) tidak berisiko. Pada agent yang memiliki kemampuan menulis, pengulangan adalah tindakan kedua yang tidak dapat dibatalkan.
Solusinya adalah idempotensi.
Perhatikan kegagalan umum ini:
- Agent memanggil fungsi untuk mengirim faktur.
- Layanan membuat faktur tersebut.
- Koneksi terputus sebelum respons sampai ke agent.
- Agent mendeteksi timeout dan mencoba kembali.
- Sekarang, Anda memiliki dua faktur.
Model yang lebih pintar tidak akan memperbaiki hal ini. Model yang lebih pintar justru mungkin memperburuk keadaan dengan melakukan pengulangan yang lebih agresif.
Anda dapat belajar dari sistem pembayaran seperti Stripe. Mereka menggunakan Idempotency-Key. Server menyimpan hasil dari permintaan pertama. Jika klien mengirimkan kunci yang sama lagi, server akan mengembalikan hasil yang tersimpan alih-alih menjalankan tindakan tersebut untuk kedua kalinya.
Untuk AI agent, Anda harus menurunkan kunci ini dari intensi (intent).
Jangan gunakan ID acak. Gunakan hash dari nama alat dan parameter stabilnya.
Contoh:
- Tool: charge_customer
- Params: {customer_id: 42, amount: 500}
- Key: hash(tool + params)
Jika agent mencoba kembali penagihan yang sama persis, kuncinya akan tetap sama. Sistem akan mengenalinya dan mencegah penagihan ganda.
Satu peringatan: Kunci Anda hanya akan sebagus definisi Anda tentang sebuah tindakan tunggal.
- Jika Anda menyertakan timestamp dalam hash Anda, setiap pengulangan akan mendapatkan kunci baru. Perlindungan Anda gagal.
- Jika Anda menyertakan isi pesan yang ditulis oleh LLM, model mungkin mengubah satu kata saja. Ini akan menciptakan kunci baru dan tindakan duplikat.
Selalu gunakan data stabil sebagai kunci, seperti ID pelanggan atau ID faktur. Kecualikan apa pun yang mungkin diubah oleh model.
Berhentilah mencoba memperbaiki keandalan agent dengan prompt yang lebih baik.
Keandalan adalah tentang membuat biaya dari keputusan yang berulang menjadi nol. Jika agent Anda melakukan tindakan yang sama dua kali, tidak ada yang boleh rusak.
Optional learning community: https://t.me/GyaanSetuAi
