𝗘𝗷𝗲𝗻 𝗔𝗜 𝗔𝗻𝗱𝗮 𝗔𝗸𝗮𝗻 𝗠𝗲𝗹𝗮𝗸𝘂𝗸𝗮𝗻 𝗖𝗮𝗷 𝗕𝗲𝗿𝗴𝗮𝗻𝗱𝗮 𝗝𝗶𝗸𝗮 𝗥𝗲𝘀𝗽𝗼𝗻𝘀 𝗛𝗶𝗹𝗮𝗻𝗴

Jika ejen AI anda memanggil alat untuk mengecas kad dan rangkaian memutuskan respons, ejen anda akan gagal dengan teruk. Ia mengecas pelanggan dua kali tanpa menyedarinya.

Wang telah pun dipindahkan. Ejen tidak pernah mendengar "ok". Ia melakukan apa yang dilakukan oleh setiap gelung cubaan semula (retry loop): ia mencuba lagi. Ia menggunakan prom yang sama dan hujah (arguments) yang sama. Ini menyebabkan caj kedua.

Cubaan semula (retry) bukanlah satu peristiwa rangkaian. Ia adalah satu keputusan tentang kesan sampingan (side effect) yang mungkin telah pun berlaku.

Alat cubaan semula standard seperti backoff dan jitter menjadikan cubaan semula lebih teratur. Ia tidak melakukan apa-apa untuk menghentikan caj berganda.

Anda memerlukan lejar idempotensi (idempotency ledger). Ini menggunakan kunci unik untuk memastikan sesuatu tindakan berlaku paling banyak sekali sahaja.

Terdapat dua cara panggilan alat gagal:

Bagi ejen, kedua-duanya kelihatan serupa. Kedua-duanya kelihatan seperti tamat masa (timeout) atau sambungan terputus.

Jika sesuatu alat mempunyai kesan sampingan seperti pembayaran, e-mel, atau bayaran balik (refund), anda tidak boleh bergantung kepada cubaan semula yang mudah. Anda mesti menggunakan kunci idempotensi (idempotency key).

Cara untuk memperbaikinya:

Jangan keliru antara "sekurang-kurangnya sekali" (at-least-once) dengan "tepat sekali" (exactly-once). Dalam sistem teragih (distributed systems), anda mendapat "tepat sekali" dengan menggabungkan penghantaran "paling banyak sekali" (at-most-once) dengan cubaan semula "sekurang-kurangnya sekali" dan lejar penyahduplikasian (deduplication ledger).

Berhenti melayan operasi tulis (writes) seperti operasi baca (reads). Mencuba semula operasi baca adalah percuma. Mencuba semula operasi tulis melibatkan kos.

Sumber: https://dev.to/0012303/your-ai-agent-will-double-charge-on-a-lost-response-5eed

Komuniti pembelajaran pilihan: https://t.me/GyaanSetuAi