तुमचा एजंट डेमोमध्ये काम करतो. पण प्रत्यक्ष कामात नाही.
बहुतेक एजंट आर्किटेक्चर्स (architectures) प्रत्यक्ष कामात अपयशी ठरतात.
एका सिंगल टास्कसाठी आणि जलद प्रतिसादासाठी डेमो चांगला दिसतो. पण प्रत्यक्ष कामात इन्शुरन्स क्लेम्स (insurance claims), सेल्स सिक्वेन्स (sales sequences) किंवा डेटा रिकॉन्सिलिएशन (data reconciliation) यांसारख्या गोष्टींचा समावेश असतो. या कामांना वेळ आणि अनेक टप्पे लागतात.
याचे मुख्य कारण म्हणजे 'स्टेटलेसनेस' (statelessness). बहुतेक एजंट्स प्रत्येक वेळी संवाद साधताना संदर्भ (context) शून्यापासून पुन्हा तयार करतात. यामुळे त्यांची तर्कसाखळी (reasoning chain) आणि झालेली प्रगती नष्ट होते. परिणामी, तुम्हाला एक असा नम्र AI मिळतो जो परिस्थिती माहित असल्याचा केवळ आव आणतो.
Google Cloud चे तज्ज्ञ Addy Osmani आणि Shubham Saboo यांनी हे सुधारण्यासाठी पाच पॅटर्न (patterns) सुचवले आहेत. त्याचा तपशील खालीलप्रमाणे आहे:
Checkpoint-and-Resume तुमच्या एजंटला एका सर्व्हरप्रमाणे वागवा. कामाच्या प्रत्येक काही युनिट्सनंतर प्रगती (progress) सेव्ह करा. जर एखादा एजंट १,००० पैकी २०२ व्या टास्कला अपयशी ठरला, तर तो पुन्हा २०२ व्या टास्कपासून सुरू व्हायला हवा. शून्यापासून सुरुवात करू नका.
Delegated Approval मानवी मंजुरीसाठी Slack किंवा ईमेल वापरणे थांबवा. ही साधने संदर्भ (context) तोडतात. एजंटला त्याच ठिकाणी थांबवा (pause). पूर्ण स्टेट (state) सुरक्षित ठेवा जेणेकरून मानवी प्रतिसाद मिळाल्यावर तो त्वरित पुन्हा सुरू होईल. विनंत्या आणि त्रुटींसाठी (errors) एक स्ट्रक्चर्ड इनबॉक्स वापरा.
Memory-Layered Context लाँग-टर्म मेमरी (long-term memory) आणि वर्किंग मेमरी (working memory) वेगळी करा. लाँग-टर्म मेमरी विविध सेशन्समधील ज्ञान साठवते, तर वर्किंग मेमरी सध्याचा टास्क हाताळते. 'मेमरी ड्रिफ्ट' (memory drift) टाळणे आवश्यक आहे, जिथे एजंट्स चुकीच्या प्रकरणांतून (edge cases) वाईट सवयी शिकतात. चुकीचा डेटा रोखण्यासाठी आयडेंटिटी मॅनेजमेंट आणि गव्हर्नन्स लेयरचा (governance layer) वापर करा.
Ambient Processing सपोर्ट तिकिट्स किंवा डेटाबेसमधील बदल यांसारख्या डेटा स्ट्रीम्सवर लक्ष ठेवणारे एजंट्स तयार करा. एजंटमध्ये नियम हार्डकोड (hardcode) करू नका. नियम एका बाह्य गव्हर्नन्स लेयरमध्ये ठेवा. यामुळे, तुम्ही एकाच ठिकाणी नियम अपडेट करू शकता आणि संपूर्ण एजंट फ्लीट (fleet) त्यांचे पालन करेल.
Fleet Orchestration स्पेशालिस्ट एजंट्सना व्यवस्थापित करण्यासाठी एका कोऑर्डिनेटर एजंटचा (coordinator agent) वापर करा. प्रत्येक स्पेशालिस्टकडे स्वतःची टूल्स आणि ओळख (identity) असते. हे डिस्ट्रिब्युटेड सिस्टम्समध्ये (distributed systems) वापरल्या जाणाऱ्या 'वर्कर पॅटर्न'चे अनुसरण करते. यामुळे संपूर्ण सिस्टममध्ये बिघाड न करता तुम्ही एका स्पेशालिस्टला अपडेट करू शकता.
सर्वात मोठा धोका म्हणजे 'मेमरी ड्रिफ्ट' (memory drift).
लोक प्रॉम्ट्सवर (prompts) लक्ष केंद्रित करतात पण एजंटचे वर्तन काळानुसार कसे बदलते याकडे दुर्लक्ष करतात. जर एजंटने चुकीच्या किंवा विचित्र संवादातून काही शिकले, तर तो तुम्ही लिहिलेल्या कोडप्रमाणे काम करणे थांबवतो.
तुम्ही एजंट्सना मायक्रोसर्व्हिसेसप्रमाणे (microservices) वागवले पाहिजे. त्यांना ओळख (identity), रजिस्ट्री आणि कडक पॉलिसी अंमलबजावणीची (policy enforcement) गरज असते.
स्वतःला विचारा: माझ्या एजंटला न थांबता सर्वात मोठा कोणता टास्क पूर्ण करावा लागेल? जर याचे उत्तर तास किंवा दिवस असेल, तर तुम्हाला या पॅटर्नची गरज आहे.
तुमचा एजंट डेमो काम करतो, तुमचा एजंट काम करत नाही
आम्ही सर्वजण त्या परिस्थितीतून गेलो आहोत. तुम्ही एक AI एजंट तयार करता, त्याला काही टूल्स देता, एक प्रॉम्प्ट लिहिता आणि अचानक, ते जादू वाटते. ते प्रश्नांची उत्तरे देते, फंक्शन्स कॉल करते, ते भविष्यासारखे वाटते.
मग तुम्ही ते क्लायंटला दाखवता किंवा प्रोडक्शनमध्ये ठेवता आणि ते पूर्णपणे कोलमडून पडते.
का? कारण डेमो हा एक नियंत्रित (controlled) वातावरण असतो. प्रोडक्शन हे गोंधळाचे (chaos) असते.
डेमोचा सापळा (The Demo Trap)
डेमोमध्ये, सर्व काही योजनेनुसार चालते. तुम्हाला इनपुट माहित असते, तुम्हाला अपेक्षित आउटपुट माहित असते आणि तुम्हाला माहित असते की टूल्स उत्तम प्रतिसाद देतील. तुम्ही प्रत्यक्षात केवळ "हॅप्पी पाथ" (happy path) तपासत असता.
पण वास्तविक जगात, वापरकर्ते "हॅप्पी पाथ" फॉलो करत नाहीत. ते संदिग्ध प्रश्न विचारतात, ते चुकीचा डेटा देतात आणि ते अशा एज केसेस (edge cases) हाताळण्याची अपेक्षा करतात ज्याचा तुम्ही कधी विचारही केला नसेल.
द गॅप: डेमो विरुद्ध प्रोडक्शन (The Gap: Demo vs. Production)
| वैशिष्ट्य (Feature) | डेमो (Demo) | प्रोडक्शन (Production) |
|---|---|---|
| इनपुट (Input) | अंदाज लावण्यायोग्य आणि स्वच्छ | अनपेक्षित आणि विस्कळीत |
| टूल रिस्पॉन्स (Tool Responses) | नेहमी यशस्वी | फेल होऊ शकतात, टाइमआउट होऊ शकतात किंवा एरर देऊ शकतात |
| वापरकर्त्याचे वर्तन (User Behavior) | स्क्रिप्ट फॉलो करते | यादृच्छिक (Random) आणि असंरचित (Unstructured) |
| एरर हँडलिंग (Error Handling) | क्वचितच आवश्यक | जगण्यासाठी अत्यंत महत्त्वाचे |
एखादा एजंट "प्रोडक्शन-रेडी" (Production-Ready) कशासाठी असतो?
डेमोमधून प्रोडक्शन-ग्रेड एजंटकडे जाण्यासाठी, तुम्हाला चार मुख्य क्षेत्रांवर लक्ष केंद्रित करणे आवश्यक आहे:
१. मजबूत टूल कॉलिंग (Robust Tool Calling)
डेमोमध्ये, agent.call_tool("get_weather", {"city": "Mumbai"}) प्रत्येक वेळी काम करते. प्रोडक्शनमध्ये, LLM चुकीचे आर्ग्युमेंट्स (arguments) देऊ शकते किंवा API डाउन असू शकतो. तुमच्या एजंटला खालील गोष्टींची आवश्यकता आहे:
- टूल कॉल करण्यापूर्वी टूल आर्ग्युमेंट्सची पडताळणी करणे.
- API टाइमआउट आणि एरर्सना चांगल्या प्रकारे (gracefully) हाताळणे.
- अनंत लूपमध्ये (infinite loops) अडकल्याशिवाय हुशारीने पुन्हा प्रयत्न (retry) करणे.
२. एरर रिकव्हरी आणि ग्रेसफुल डिग्रेडेशन (Error Recovery and Graceful Degradation)
जेव्हा काहीतरी चुकते, तेव्हा डेमो एजंट सहसा थांबतो किंवा एरर मेसेज देतो. प्रोडक्शन एजंटने:
- पर्यायी दृष्टिकोन वापरण्याचा प्रयत्न केला पाहिजे.
- स्पष्टीकरणासाठी वापरकर्त्याला विचारले पाहिजे.
- रॉ स्टॅक ट्रेस (raw stack trace) देण्याऐवजी उपयुक्त प्रतिसाद दिला पाहिजे.
३. ऑब्झर्व्हेबिलिटी आणि ट्रेसिंग (Observability and Tracing)
तुम्ही जे पाहू शकत नाही, ते तुम्ही सुधारू शकत नाही. प्रोडक्शनमध्ये, एजंटने एखादा विशिष्ट निर्णय का घेतला हे तुम्हाला नक्की माहित असणे आवश्यक आहे. याचा अर्थ खालील गोष्टींची अंमलबजावणी करणे:
- प्रॉम्प्ट्स आणि कॉम्प्लिशनचे तपशीलवार लॉगिंग (logging).
- टूल कॉल्स आणि त्यांच्या लॅटन्सीचे (latency) ट्रेसिंग.
- हॅलुसिनेशन (hallucinations) किंवा अनपेक्षित वर्तनावर देखरेख (monitoring).
४. लॅटन्सी आणि UX (Latency and UX)
LLMs संथ असतात. जर तुमच्या एजंटला उत्तर द्यायला ३० सेकंद लागतात, तर तुमचा वापरकर्ता निघून जाईल. तुम्हाला खालील गोष्टी कराव्या लागतील:
- प्रगती दाखवण्यासाठी स्ट्रीमिंग (streaming) वापरा.
- मध्यवर्ती फीडबॅक द्या (उदा. "हवामान शोधत आहे...").
- अनावश्यक पायऱ्या कमी करण्यासाठी रिझनिंग चेन (reasoning chain) ऑप्टिमाइझ करा.
निष्कर्ष (Conclusion)
डेमो तयार करणे सोपे आहे. एक विश्वासार्ह एजंट तयार करणे कठीण आहे. केवळ "जादू" वर लक्ष केंद्रित करणे थांबवा आणि "रेझिलियन्स" (resilience) वर लक्ष केंद्रित करण्यास सुरुवात करा. डेमोमध्ये काम करणाऱ्या एजंट आणि तुमच्या वापरकर्त्यांसाठी काम करणाऱ्या एजंटमधील हाच फरक आहे.