रिस्पॉन्स खो जाने पर आपका AI एजेंट डबल-चार्ज कर सकता है

यदि आपका AI एजेंट कार्ड चार्ज करने के लिए किसी टूल को कॉल करता है और नेटवर्क रिस्पॉन्स को ड्रॉप कर देता है, तो आपका एजेंट बुरी तरह विफल हो जाता है। वह बिना जाने ही ग्राहक से डबल-चार्ज कर लेता है।

पैसा पहले ही ट्रांसफर हो चुका है। एजेंट ने कभी "ok" नहीं सुना। वह वही करता है जो हर रिट्राय लूप (retry loop) करता है: वह फिर से कोशिश करता है। वह उसी प्रॉम्प्ट और उन्हीं आर्गुमेंट्स (arguments) का उपयोग करता है। इससे दूसरा चार्ज लग जाता है।

रिट्राय (retry) कोई नेटवर्क इवेंट नहीं है। यह उस साइड इफेक्ट (side effect) के बारे में एक निर्णय है जो शायद पहले ही हो चुका हो।

बैकऑफ़ (backoff) और जिटर (jitter) जैसे स्टैंडर्ड रिट्राय टूल्स रिट्राय को 'पॉलाइट' बनाते हैं। वे डबल-चार्ज को रोकने के लिए कुछ नहीं करते।

आपको एक इडेम्पोटेंसी लेज़र (idempotency ledger) की आवश्यकता है। यह यह सुनिश्चित करने के लिए एक यूनिक की (unique key) का उपयोग करता है कि कोई एक्शन अधिकतम एक ही बार हो।

टूल कॉल विफल होने के दो तरीके हैं:

एजेंट के लिए, ये दोनों एक जैसे दिखते हैं। दोनों ही टाइमआउट या ड्रॉप हुए कनेक्शन की तरह लगते हैं।

यदि किसी टूल का कोई साइड इफेक्ट है जैसे कि पेमेंट, ईमेल, या रिफंड, तो आप साधारण रिट्राय पर भरोसा नहीं कर सकते। आपको इडेम्पोटेंसी की (idempotency key) का उपयोग करना चाहिए।

इसे कैसे ठीक करें:

"at-least-once" को "exactly-once" समझने की गलती न करें। डिस्ट्रिब्यूटेड सिस्टम में, आप 'at-most-once' डिलीवरी को 'at-least-once' रिट्राय और एक डिडुप्लिकेशन लेज़र (deduplication ledger) के साथ जोड़कर "exactly-once" प्राप्त करते हैं।

राइट्स (writes) को रीड्स (reads) की तरह मानना बंद करें। रीड को रिट्राय करना मुफ्त है। राइट को रिट्राय करने में पैसा खर्च होता है।

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

Optional learning community: https://t.me/GyaanSetuAi