आपका एजेंट डेमो काम करता है। यही असली जाल है।
मैं कंपनियों के लिए AI एजेंट बनाता हूँ। मैं अक्सर एक ही पैटर्न देखता हूँ। मॉडल डेमो में काम करता है। आप प्रोडक्ट लॉन्च करते हैं। फिर प्रोडक्शन में यह हर तीन में से एक बार फेल हो जाता है। किसी को नहीं पता कि क्यों।
डेमो और प्रोडक्शन के बीच का अंतर गणित (math) है। एक बार जब आप गणित को समझ लेते हैं, तो आप अलग तरह से निर्माण करते हैं।
यदि आपके एजेंट का प्रत्येक चरण 95% विश्वसनीय है, तो यह सुनने में अच्छा लगता है। लेकिन एजेंट चरणों की श्रृंखला (chains of steps) का उपयोग करते हैं। यदि आप दस चरणों को एक साथ जोड़ते हैं, तो आपकी सफलता दर गिरकर 60% हो जाती है। यदि आप बीस चरणों का उपयोग करते हैं, तो आपकी सफलता दर गिरकर 36% हो जाती है।
वास्तविक काम में, चरणों में अक्सर 10% से 20% तक की त्रुटि दर (error rates) होती है। यदि किसी एजेंट में 85% विश्वसनीयता वाले आठ चरण हैं, तो यह 75% बार विफल हो जाता है।
मॉडल समस्या नहीं है। कंपाउंडिंग प्रोबेबिलिटी (Compounding probability) समस्या है।
एक डेमो केवल एक 'हैप्पी पाथ' (happy path) दिखाता है। यह साफ-सुथरे इनपुट और छोटी श्रृंखलाओं का उपयोग करता है। प्रोडक्शन सैकड़ों उपयोगकर्ताओं से प्राप्त अव्यवस्थित डेटा का उपयोग करता है। यह लंबी श्रृंखलाओं का उपयोग करता है जिनमें छिपे हुए चरण शामिल होते हैं।
एजेंटों में विफलता क्रैश की तरह नहीं दिखती। यह एक शांत त्रुटि (quiet error) की तरह दिखती है।
चरण 3 किसी फ़ील्ड को गलत पढ़ता है। आउटपुट अभी भी वैध JSON जैसा दिखता है। चरण 4 उस गलत डेटा का उपयोग तर्क (reasoning) के लिए करता है। चरण 5 से 8 उसी गलती पर आधारित होते हैं। अंतिम उत्तर गलत होता है लेकिन विश्वसनीय लगता है। कोई एरर लॉग नहीं होता जो आपको दिखाए कि कहाँ गलती हुई।
यह कहना बंद करें कि मॉडल ने 'hallucinate' किया। मॉडल ने केवल वही गलत डेटा आगे बढ़ाया जो उसे प्राप्त हुआ था। आपके सिस्टम में चरण 3 पर त्रुटि को पकड़ने के लिए चेकपॉइंट की कमी थी।
एजेंट को केवल एक प्रॉम्प्ट की तरह मानना बंद करें। इसे एक सिस्टम की तरह मानना शुरू करें।
विश्वसनीय एजेंट बनाने के लिए इन नियमों का पालन करें:
एजेंट के बाहर स्टेट (state) को सेव करें। स्टेट को डेटाबेस में रखें, बातचीत (conversation) में नहीं। यदि कोई प्रक्रिया चरण 6 पर विफल हो जाती है, तो आप चरण 6 से फिर से शुरू कर सकते हैं। आपको पूरी श्रृंखला को फिर से शुरू करने की आवश्यकता नहीं है।
बाउंड्रीज़ (boundaries) पर वैलिडेट करें। प्रत्येक इनपुट और आउटपुट को स्कीमा (schema) के विरुद्ध जांचें। त्रुटि को उसी चरण पर पकड़ें जहाँ वह होती है। यह एक रहस्य को एक सुधारा जा सकने वाले एरर (recoverable error) में बदल देता है।
साइड इफेक्ट्स (side effects) को आइडम्पोटेंट (idempotent) बनाएं। जब चरण विफल हों तो आपको उन्हें फिर से प्रयास (retry) करना चाहिए। यदि कोई चरण ईमेल भेजता है या कार्ड चार्ज करता है, तो एक idempotency key का उपयोग करें। यह रिट्राय के दौरान डुप्लिकेट कार्यों को रोकता है।
अपने CI में इवल्स (evals) का उपयोग करें। हर बदलाव के साथ एजेंट का व्यवहार बदल जाता है। एक प्रॉम्प्ट परिवर्तन एक मामले को ठीक कर सकता है लेकिन पांच अन्य को खराब कर सकता है। इन रिग्रेशन (regressions) को स्वचालित रूप से पकड़ने के लिए एक टेस्ट सेट का उपयोग करें।
डेमो से वास्तविक उत्पाद की ओर बढ़ना इंजीनियरिंग के बारे में है। यह एरर हैंडलिंग, स्टेट मैनेजमेंट और ऑब्जर्वेबिलिटी (observability) के बारे में है। यह बेहतर प्रॉम्प्ट के बारे में नहीं है।
यदि आपका एजेंट प्रोडक्शन में विफल होता है, तो बड़े मॉडल की तलाश न करें। उस चरण को देखें जहाँ श्रृंखला भटक जाती है। पूछें कि आपके सिस्टम ने वहां त्रुटि को क्यों नहीं पकड़ा।
Source: https://dev.to/sagar_jain4010/your-agent-demo-works-thats-the-trap-4joc
Optional learning community: https://t.me/GyaanSetuAi
