जब आपका AI एजेंट प्रोडक्शन में फंस जाता है तो क्या होता है?
AI एजेंट की सबसे महंगी विफलताएं मॉडल की विफलताएं नहीं होती हैं।
वे साइलेंट फेलियर (silent failures) होती हैं।
एजेंट स्वस्थ दिखता है। वर्कफ्लो चलता रहता है। टोकन खर्च होते रहते हैं। लेकिन एजेंट कोई प्रगति नहीं करता।
मैंने ये समस्याएं बार-बार देखी हैं:
- इन्फिनिट लूप्स (Infinite loops)
- रिट्राय स्टॉर्म्स (Retry storms)
- साइलेंट स्टॉल्स (Silent stalls)
- सफल रिस्पॉन्स के पीछे छिपी टूल फेलियर (Tool failures)
- लक्ष्य से भटकते एजेंट (Agents drifting from the goal)
- एजेंट के कार्यों में कोई दृश्यता (visibility) न होना
एक बेहतर प्रॉम्प्ट इन्हें ठीक नहीं करेगा।
आपको एक रनटाइम सुपरविजन लेयर (runtime supervision layer) की आवश्यकता है। अधिकांश फ्रेमवर्क एजेंट चलाने पर ध्यान केंद्रित करते हैं। प्रोडक्शन टीमों को अलग-अलग सवालों के जवाब देने की जरूरत होती है:
- यह क्यों फंसा हुआ है?
- क्या यह प्रगति कर रहा है?
- क्या मैं इसे पॉज़ (pause) कर सकता हूँ?
- क्या मैं इसे रीज़्यूम (resume) कर सकता हूँ?
- क्या मुझे इसे किल (kill) कर देना चाहिए?
केवल लॉग्स (logs) इन सवालों के जवाब नहीं देते।
सुपरविजन को एजेंट लॉजिक से अलग रखें। वर्कफ्लो के अंदर गार्डरेल्स (guardrails) न रखें। निष्पादन (execution) को देखने के लिए एक समर्पित रनटाइम लेयर का उपयोग करें। इससे वर्कफ्लो सरल रहता है।
रनटाइम इनका प्रबंधन करता है:
- लूप डिटेक्शन (Loop detection)
- रिट्राय मैनेजमेंट (Retry management)
- बजट सीमाएं (Budget limits)
- पॉज़ और रीज़्यूम (Pause and resume)
- चेकपॉइंट्स (Checkpoints)
- रुकने के कारण (Stop reasons)
- लाइव टेलीमेट्री (Live telemetry)
"failed" को स्टेटस के रूप में उपयोग करना बंद करें। विशिष्ट कारणों का उपयोग करें:
- LOOP_DETECTED
- BUDGET_EXCEEDED
- RETRY_LIMIT_REACHED
- TOOL_FAILURE
- TIMEOUT
- USER_PAUSED
यह ऑपरेटरों को बताता है कि रिकवर कैसे करना है।
स्टेप काउंट्स (Step counts) लूप डिटेक्शन में विफल रहते हैं। एजेंट बिना लूप में फंसे भी गलत लक्ष्य का पीछा कर सकते हैं। वे लक्ष्य से दूर जाने में बीस स्टेप्स खर्च कर सकते हैं।
इसके बजाय यह पूछें: "क्या हम लक्ष्य के उतने करीब हैं जितने हम कुछ स्टेप्स पहले थे?" यह ड्रिफ्ट (drift) को बहुत अधिक नुकसान पहुँचाने से पहले ही रोक देता है।
पॉज़ (pause) और किल (kill) के बीच अंतर करें:
- पॉज़ स्टेट (state) को सेव करता है। आप बाद में रीज़्यूम कर सकते हैं।
- किल सब कुछ रोक देता है। आप जारी नहीं रख सकते।
API कॉल, ब्राउज़र टास्क, या डेटाबेस राइट्स जैसे हर बाहरी एक्शन से पहले चेकपॉइंट्स बनाएं। यदि कोई प्रोसेस क्रैश हो जाता है, तो सिस्टम को ठीक से पता होता है कि क्या चल रहा था। यह साइलेंट फेलियर को रिकवरेबल (recoverable) बना देता है।
विफलताओं के दौरान एजेंटों को टोकन खर्च करने से रोकने के लिए, इन तीन का उपयोग करें:
- एक्सपोनेंशियल बैकऑफ़ (Exponential backoff)
- रिट्राय बजट (Retry budgets)
- सर्किट ब्रेकर्स (Circuit breakers)
लॉग्स अतीत दिखाते हैं। ऑपरेटरों को वर्तमान देखने की आवश्यकता है। वर्तमान टास्क, स्टेप, टूल और स्टेटस को रियल टाइम में ट्रैक करें।
एजेंट बनाना आसान है। विश्वसनीय एजेंट बनाना कठिन है। विश्वसनीयता की समस्याएं मॉडल के बाहर होती हैं। वे आपके रिट्राइज़, चेकपॉइंट्स और सुपरविजन में होती हैं।
आपने AI एजेंटों के साथ सबसे कठिन प्रोडक्शन फेलियर क्या देखा है?
Source: https://dev.to/milancharan/what-happens-when-your-ai-agent-gets-stuck-in-production-3327
Optional learning community: https://t.me/GyaanSetuAi
