विफलता एक जानकारी है
जब कोई AI एजेंट किसी MCP सर्वर टूल को कॉल करता है और वह विफल हो जाता है, तो एरर मैसेज एजेंट के संदर्भ में आ जाता है। पूर्व-निर्धारित एरर पथ का अनुसरण करने वाले स्क्रिप्टेड प्रोग्राम के विपरीत, एजेंट एरर के बारे में तर्क कर सकता है और उसके आधार पर प्रतिक्रिया चुन सकता है।
"table not found" एरर एजेंट को टेबल का नाम जाँचने को कहता है। "permission denied" एरर एजेंट को बताता है कि चाहे जितनी बार रीट्राई करें, यह तरीक़ा काम नहीं करेगा। "timeout" एरर बताता है कि ऑपरेशन फिर से या सरल पैरामीटर के साथ आज़माने पर सफल हो सकता है। अच्छे एरर मैसेज इस तरह के तर्क को सक्षम बनाते हैं। बुरे मैसेज एजेंट को अंदाज़ा लगाने पर छोड़ देते हैं।
रीट्राई रणनीतियाँ
हर विफलता को एक जैसी प्रतिक्रिया नहीं चाहिए। एजेंट को क्षणिक त्रुटियों (जो रीट्राई पर सफल हो सकती हैं) और स्थायी त्रुटियों (जो नहीं होंगी) के बीच अंतर करना है। नेटवर्क टाइमआउट क्षणिक है। ग़ायब टेबल स्थायी है। rate limit एरर क्षणिक है पर रीट्राई से पहले देरी की ज़रूरत है।
अच्छी तरह डिज़ाइन किए गए एजेंट क्रमिक रीट्राई लागू करते हैं: अप्रत्याशित त्रुटियों के लिए तुरंत एक बार और कोशिश करें, रेट लिमिट के लिए प्रतीक्षा करके रीट्राई करें, और स्थायी विफलताओं के लिए वैकल्पिक तरीक़े पर मुड़ें। यह सरल "तीन बार रीट्राई करें" पैटर्न से अधिक परिष्कृत है और बेहतर परिणाम देता है।
वैकल्पिक तरीक़े
विफलता पर सबसे मूल्यवान प्रतिक्रिया उसी लक्ष्य का अलग रास्ता खोजना है। यदि किसी विशेष टेबल पर क्वेरी विफल हो, तो क्या एजेंट डेटा को किसी अन्य टेबल में पा सकता है? यदि एक API एंडपॉइंट डाउन है, तो क्या वैकल्पिक एंडपॉइंट है? यदि कोई फ़ाइल सीधे नहीं पढ़ी जा सकती, तो क्या एजेंट पहले उसे खोजकर सही पथ पा सकता है?
वैकल्पिक तरीक़े खोजने की यह क्षमता कठोर स्क्रिप्ट्स पर एजेंट्स के मुख्य लाभों में से एक है। एक स्क्रिप्ट एक रास्ते का अनुसरण करती है और यदि वह बंद है तो विफल होती है। एक एजेंट वैकल्पिक रास्तों पर तर्क कर सकता है और उन्हें आज़मा सकता है, अक्सर वहाँ सफल होकर जहाँ स्क्रिप्ट हार मान लेती।
दोहराई जाने वाली विफलताओं को रोकना
अच्छे एजेंट याद रखते हैं कि सेशन के भीतर क्या विफल हुआ। यदि किसी विशेष नाम वाली टेबल पर क्वेरी विफल हुई, तो एजेंट को तीन क़दम बाद वही क्वेरी दोबारा नहीं आज़मानी चाहिए। यह स्पष्ट लगता है, पर विफलताओं को ट्रैक करने के स्पष्ट निर्देशों के बिना, एजेंट कभी-कभी ख़ुद को दोहराते हैं, ख़ासकर लंबे कार्यों में जहाँ मूल विफलता सक्रिय ध्यान से बाहर निकल चुकी होती है।
अपने एजेंट के प्रॉम्प्ट में "यदि कोई टूल कॉल विफल हो, तो विफलता दर्ज करें और उसी पैरामीटर के साथ वही कॉल न दोहराएँ" जैसे निर्देश शामिल करना बेकार रीट्राई रोकने में मदद करता है।