मैंने 20 साल के सपोर्ट टिकट्स के सामने एक AI एजेंट लगाया
हमारे पास दस लाख टिकट्स वाला एक हेल्पडेस्क सिस्टम है। हमारे पास 2,400 मैनुअल और दो विशाल कोडबेस (codebases) हैं।
जब कोई डेवलपर पूछता है कि क्या हमने पहले कभी इस समस्या का समाधान किया है, तो उत्तर हमेशा 'हाँ' होता है। डेटा बस कहीं दबा हुआ है। सीनियर स्टाफ को खोजने में घंटों लग जाते हैं। जूनियर्स के हफ़्तों बर्बाद हो जाते हैं।
मैंने इस पूरे डेटा के सामने काम करने के लिए एक AI एजेंट बनाया। अब यह प्रोडक्शन (production) में है। यहाँ बताया गया है कि वास्तव में क्या हुआ।
डेटा सबसे कठिन हिस्सा नहीं था। यह जानना कि कहाँ देखना है, वह कठिन था। एजेंट को मनगढ़ंत बातें (making things up) करने से रोकना और भी कठिन था।
यह कैसे काम करता है:
- नेचुरल लैंग्वेज इनपुट के साथ एक एजेंट।
- यह हेल्पडेस्क डेटाबेस, प्रोजेक्ट टूल्स, GitLab और SVN को पढ़ता है।
- यह मैनुअल और पुराने टिकट्स पर वेक्टर सर्च (vector searches) करता है।
- यह .xlsx या .docx जैसी फाइलें जेनरेट कर सकता है।
- यह अपने टूल्स खुद चुनता है और उन्हें पैरेलल (parallel) में चलाता है।
आर्किटेक्चर सरल है। यह मुख्य ऐप से अलग एक Node कंटेनर में चलता है। मैंने यह फेलियर आइसोलेशन (failure isolation) के लिए किया। यदि AI विफल हो जाता है, तो हेल्पडेस्क चलता रहता है।
सबसे बड़ा सबक प्रॉम्प्ट (prompt) के बारे में था। मैंने टेक्स्ट की एक विशाल दीवार के साथ शुरुआत की थी। यह 40,000 टोकन का था। इसे बनाए रखना कठिन था और एजेंट अपना फोकस खो देता था।
मैंने अपना दृष्टिकोण बदल दिया। मैंने प्रॉम्प्ट को छोटी स्किल फाइलों (skill files) में विभाजित कर दिया।
- टिकट सर्च एक फाइल है।
- कोड हिस्ट्री दूसरी है।
- प्रोजेक्ट मैनेजमेंट तीसरी है।
मुख्य प्रॉम्प्ट एक राउटर (router) के रूप में कार्य करता है। यह स्किल को तभी लोड करता है जब उसकी आवश्यकता होती है। इससे प्रति रिक्वेस्ट हमारे टोकन 40,000 से घटकर 8,000 रह गए। एजेंट अपने काम पर केंद्रित रहता है और कोड को अपडेट करना आसान हो जाता है।
मैंने यूजर प्रोफाइल भी जोड़े। एक डेवलपर को कोड पाथ (code paths) मिलते हैं। एक प्रोजेक्ट मैनेजर को स्टेटस समरी (status summaries) मिलती है। एजेंट बिना बताए जान जाता है कि कौन पूछ रहा है।
यह परफेक्ट नहीं है। हमें वास्तविक विफलताओं का सामना करना पड़ा:
- हैलुसिनेशन (Hallucinations): एजेंट ने फर्जी URL बना दिए। समाधान: सटीक पैटर्न तय करें या लुकअप (lookup) के लिए मजबूर करें।
- मेमोरी लॉस (Memory loss): एजेंट लंबी बातचीत में नियम भूल जाता था। समाधान: हर टर्न में एक स्ट्रक्चर्ड टू-डू लिस्ट (structured to-do list) डालें।
- इन्फिनिट लूप (Infinite loops): एजेंट ने बहुत अधिक टूल कॉल किए। समाधान: प्रति रिक्वेस्ट एक सख्त बजट निर्धारित करें।
- सुरक्षा (Safety): उपयोगकर्ताओं ने इसे धोखा देने की कोशिश की। समाधान: सुरक्षा के लिए प्रॉम्प्ट पर भरोसा न करें। अपने इंफ्रास्ट्रक्चर में रीड-ओनली (read-only) डेटाबेस क्रेडेंशियल्स का उपयोग करें।
असली काम एक साप्ताहिक लूप (weekly loop) है। मैं लॉग्स पढ़ता हूँ। मैं सेशन्स को स्कोर देता हूँ। मैं स्किल्स में सुधार करता हूँ। मैं प्रोफाइल्स को अपडेट करता हूँ।
यदि आप इस लूप को छोड़ देते हैं, तो आपके पास केवल एक डेमो है। यदि आप इसे करते हैं, तो आपके पास एक प्रोडक्ट है।
लक्ष्य केवल तेज़ उत्तर देना नहीं है। लक्ष्य संस्थागत ज्ञान (institutional knowledge) को संस्थान के भीतर बनाए रखना है। जब कोई व्यक्ति जाता है, तो उसका ज्ञान ट्रांसक्रिप्ट्स (transcripts) में रह जाता है।
आपके निर्माण के लिए सारांश:
- अपने स्वयं के इतिहास पर RAG के साथ शुरुआत करें।
- एक बड़े प्रॉम्प्ट के बजाय लेजी-लोडेड (lazy-loaded) स्किल फाइलों का उपयोग करें।
- व्यक्तिगत संदर्भ के लिए यूजर प्रोफाइल का उपयोग करें।
- AI को उसके अपने कंटेनर में अलग रखें।
- सुरक्षा को निर्देशों के बजाय इंफ्रास्ट्रक्चर के माध्यम से लागू करें।
- हर हफ्ते अपने लॉग्स पढ़ें।
वैकल्पिक लर्निंग कम्युनिटी: https://t.me/GyaanSetuAi
