आपके AI एजेंट को अधिक स्मार्ट होने की आवश्यकता नहीं है। उसे Idempotent होने की आवश्यकता है।
अधिकांश प्रोडक्शन AI एजेंट खराब तर्क (reasoning) के कारण विफल नहीं होते हैं। वे नेटवर्क त्रुटियों (network errors) के कारण विफल होते हैं।
मॉडल सही टूल चुनता है। यह सही विवरण भरता है। फिर, यह एक ग्राहक से दो बार शुल्क (charge) ले लेता है।
ऐसा इसलिए होता है क्योंकि 'write-capable' एजेंट अविश्वसनीय नेटवर्क में काम करते हैं।
- अनुरोधों का समय समाप्त हो जाता है (Requests time out)।
- कनेक्शन टूट जाते हैं।
- फ्रेमवर्क उन चरणों को फिर से दोहराते (retry) हैं जो पहले ही पूरे हो चुके हैं।
एक 'read-only' एजेंट में, रीट्राई (retry) का कोई अतिरिक्त जोखिम नहीं होता। एक 'write-capable' एजेंट में, रीट्राई एक दूसरा अपरिवर्तनीय (irreversible) कार्य है।
समाधान 'idempotency' है।
इस सामान्य विफलता को देखें:
- एजेंट इनवॉइस भेजने के लिए एक फंक्शन कॉल करता है।
- सर्विस इनवॉइस बनाती है।
- रिस्पॉन्स एजेंट तक पहुँचने से पहले कनेक्शन टूट जाता है।
- एजेंट टाइमआउट देखता है और फिर से प्रयास (retry) करता है।
- अब, आपके पास दो इनवॉइस हैं।
एक स्मार्ट मॉडल इसे ठीक नहीं करेगा। एक स्मार्ट मॉडल रीट्राई के मामले में अधिक आक्रामक होकर वास्तव में स्थिति को और खराब कर सकता है।
आप Stripe जैसे पेमेंट सिस्टम से सीख सकते हैं। वे एक Idempotency-Key का उपयोग करते हैं। सर्वर पहले अनुरोध के परिणाम को सहेज लेता है। यदि क्लाइंट फिर से वही की (key) भेजता है, तो सर्वर कार्य को दूसरी बार चलाने के बजाय संग्रहीत परिणाम वापस कर देता है।
एक AI एजेंट के लिए, आपको इस की (key) को 'intent' (इरादे) से प्राप्त करना चाहिए।
रैंडम ID का उपयोग न करें। टूल के नाम और उसके स्थिर (stable) पैरामीटर्स के हैश (hash) का उपयोग करें।
उदाहरण:
- Tool:
charge_customer - Params:
{customer_id: 42, amount: 500} - Key:
hash(tool + params)
यदि एजेंट बिल्कुल उसी चार्ज को फिर से करने का प्रयास करता है, तो की (key) वही रहती है। सिस्टम इसे पहचान लेता है और डुप्लिकेट चार्ज को रोकता है।
एक चेतावनी: आपकी की (key) उतनी ही अच्छी है जितनी कि एक एकल क्रिया (single action) की आपकी परिभाषा।
- यदि आप अपने हैश में टाइमस्टैम्प शामिल करते हैं, तो प्रत्येक रीट्राई को एक नई की (key) मिलती है। आपकी सुरक्षा विफल हो जाती है।
- यदि आप LLM द्वारा लिखा गया मैसेज बॉडी शामिल करते हैं, तो मॉडल एक शब्द बदल सकता है। इससे एक नई की (key) और एक डुप्लिकेट क्रिया बन जाती है।
हमेशा कस्टमर ID या इनवॉइस ID जैसे स्थिर डेटा पर की (key) आधारित करें। ऐसी किसी भी चीज़ को बाहर रखें जिसे मॉडल बदल सकता है।
बेहतर प्रॉम्प्ट्स के साथ एजेंट की विश्वसनीयता को ठीक करने की कोशिश करना बंद करें।
विश्वसनीयता का अर्थ है दोहराए गए निर्णय की लागत को शून्य करना। यदि आपका एजेंट एक ही क्रिया को दो बार करता है, तो कुछ भी नहीं टूटना चाहिए।
Optional learning community: https://t.me/GyaanSetuAi
