मी २० वर्षांच्या सपोर्ट तिकीट डेटासमोर एक AI Agent बसवला
आमच्याकडे १० लाख तिकीट असलेली एक हेल्पडेस्क सिस्टम आहे. आमच्याकडे २,४०० मॅन्युअल्स आणि दोन प्रचंड मोठे कोडबेस आहेत.
जेव्हा एखादा डेव्हलपर विचारतो की आम्ही यापूर्वी ही समस्या सोडवली आहे का, तेव्हा उत्तर नेहमी 'हो' असेच असते. डेटा फक्त कुठेतरी गाडला गेला आहे. सिनियर स्टाफ शोधण्यात तासनतास घालवतो. ज्युनियर्सचे आठवडे वाया जातात.
मी या सर्व डेटासमोर बसवण्यासाठी एक AI agent तयार केला. तो आता प्रोडक्शनमध्ये आहे. प्रत्यक्षात काय घडले ते खाली दिले आहे.
डेटा हा कठीण भाग नव्हता. कुठे शोधायचे हे माहित असणे कठीण होते. एजंटला स्वतःच्या मनाने गोष्टी बनवणे (hallucinations) थांबवणे हे त्याहूनही कठीण होते.
ते कसे काम करते:
- नैसर्गिक भाषा इनपुटसह एक एजंट.
- तो हेल्पडेस्क डेटाबेस, प्रोजेक्ट टूल्स, GitLab आणि SVN वाचतो.
- तो मॅन्युअल्स आणि जुन्या तिकीटवर वेक्टर सर्च (vector searches) करतो.
- तो .xlsx किंवा .docx सारख्या फाईल्स तयार करू शकतो.
- तो स्वतःची टूल्स निवडतो आणि ती समांतर (parallel) चालवतो.
आर्किटेक्चर साधे आहे. ते मुख्य ॲपपासून वेगळ्या Node कंटेनरमध्ये चालते. मी हे 'फेल्युअर आयसोलेशन'साठी (failure isolation) केले आहे. जर AI फेल झाले, तरी हेल्पडेस्क चालू राहील.
सर्वात मोठा धडा प्रॉम्प्टबद्दल (prompt) होता. मी सुरुवातीला एक मोठा मजकूर वापरला होता. तो ४०,००० टोकन्सचा होता. तो मेंटेन करणे कठीण होते आणि एजंटचे लक्ष विचलित होत असे.
मी माझा दृष्टिकोन बदलला. मी प्रॉम्प्टचे लहान 'स्किल फाईल्स'मध्ये (skill files) विभाजन केले.
- तिकीट सर्च ही एक फाईल आहे.
- कोड हिस्ट्री ही दुसरी.
- प्रोजेक्ट मॅनेजमेंट ही तिसरी.
मुख्य प्रॉम्प्ट राउटर म्हणून काम करतो. जेव्हा गरज असते, तेव्हाच तो एखादी स्किल लोड करतो. यामुळे आमचे टोकन्स प्रति रिक्वेस्ट ४०,००० वरून ८,००० वर आले. एजंट कामावर लक्ष केंद्रित करतो आणि कोड अपडेट करणे सोपे होते.
मी युजर प्रोफाइल्स देखील जोडले. डेव्हलपरला कोड पाथ्स मिळतात. प्रोजेक्ट मॅनेजरला स्टेटस सारांश मिळतो. एजंटला सांगण्याची गरज न पडता तो विचारणारा कोण आहे हे समजते.
हे परिपूर्ण नाही. आम्हाला काही वास्तविक समस्यांना सामोरे जावे लागले:
- Hallucinations: एजंटने बनावट URLs तयार केल्या. उपाय: नेमके पॅटर्न निश्चित करा किंवा लुकअपसाठी भाग पाडा.
- Memory loss: लांब चॅट्समध्ये एजंट नियम विसरून गेला. उपाय: प्रत्येक टर्नमध्ये एक स्ट्रक्चर्ड टू-डू लिस्ट समाविष्ट करा.
- Infinite loops: एजंटने खूप जास्त टूल कॉल्स केले. उपाय: प्रति रिक्वेस्ट एक कडक बजेट सेट करा.
- Safety: वापरकर्त्यांनी त्याला फसवण्याचा प्रयत्न केला. उपाय: सुरक्षेसाठी केवळ प्रॉम्प्टवर अवलंबून राहू नका. तुमच्या इन्फ्रास्ट्रक्चरमध्ये 'रीड-ओन्ली' डेटाबेस क्रेडेंशियल्स वापरा.
खरे काम म्हणजे एक साप्ताहिक लूप (weekly loop). मी लॉग्स वाचतो. मी सेशन्सना स्कोअर देतो. मी स्किल्समध्ये सुधारणा करतो. मी प्रोफाइल्स अपडेट करतो.
जर तुम्ही हा लूप वगळला, तर तुमच्याकडे फक्त एक 'डेमो' असेल. जर तुम्ही तो केला, तर तुमच्याकडे एक 'प्रोडक्ट' असेल.
ध्येय फक्त जलद उत्तरे देणे हे नाही. ध्येय संस्थेतील ज्ञान (institutional knowledge) टिकवून ठेवणे हे आहे. जेव्हा एखादी व्यक्ती सोडून जाते, तेव्हा त्यांचे ज्ञान ट्रान्सक्रिप्ट्समध्ये राहते.
तुमच्या बिल्डसाठी सारांश:
- तुमच्या स्वतःच्या इतिहासावर RAG ने सुरुवात करा.
- एका मोठ्या प्रॉम्प्टऐवजी लेझी-लोडेड (lazy-loaded) स्किल फाईल्स वापरा.
- वैयक्तिक संदर्भासाठी युजर प्रोफाइल्स वापरा.
- AI ला त्याच्या स्वतःच्या कंटेनरमध्ये वेगळे ठेवा.
- सूचनांऐवजी इन्फ्रास्ट्रक्चरद्वारे सुरक्षा सुनिश्चित करा.
- दर आठवड्याला तुमचे लॉग्स वाचा.
Optional learning community: https://t.me/GyaanSetuAi
