AI एजंट्सना निकामी करणाऱ्या ७ चुका
तुमचा AI एजंट टेस्टिंगमध्ये उत्तम काम करतो. तो वेगवान आणि अचूक आहे. मग तुम्ही तो डिप्लॉय करता. आणि सर्व काही निकामी होते. युजर्स टाइमआउट आणि एरर्सची तक्रार करतात.
लवचिक (resilient) AI एजंट्स तयार करण्यासाठी केवळ चांगल्या कोडची गरज नसते. तुम्हाला प्रोडक्शनमधील गुंतागुंतीच्या वास्तवाचा सामना करावा लागतो.
अधिक चांगले सिस्टम्स तयार करण्यासाठी या सात चुका टाळा:
- बाह्य API फेल्युअरकडे दुर्लक्ष करणे टाइमआउट किंवा रेट लिमिट्समुळे नेटवर्क रिक्वेस्ट फेल होतात.
- सर्व कॉल्स
try-catchब्लॉक्समध्ये गुंडाळा. - विशिष्ट टाइमआउट व्हॅल्यूज सेट करा.
- 'exponential backoff' सह 'retry logic' वापरा.
- फेल होणाऱ्या सर्व्हिसेससाठी 'circuit breakers' वापरा.
- फेल्युअरला 'binary' (हो किंवा नाही) मानणे अनेक डेव्हलपर्सना वाटते की सिस्टम एकतर काम करते किंवा करत नाही. प्रत्यक्षात, सिस्टमचे काही भाग फेल होतात तर इतर भाग सक्रिय राहतात.
- मल्टी-टियर फॉलबॅक स्ट्रॅटेजीज तयार करा.
- फीचर्स कमी असताना सिस्टम कशी काम करेल हे निश्चित करा.
- सिस्टमची कार्यक्षमता कमी (degraded state) असताना युजर्सना कळवा.
- किमान लॉगिंग (Minimal logging) जे दिसत नाही, ते तुम्ही सुधारू शकत नाही.
- वेगवेगळ्या लेव्हल्सवर लॉग करा: DEBUG, INFO, WARNING, आणि ERROR.
- युजर जर्नी ट्रॅक करण्यासाठी 'request IDs' वापरा.
- एरर रेट आणि रिस्पॉन्स टाइम ट्रॅक करा.
- सिस्टममधील विसंगतींसाठी (anomalies) अलर्ट सेट करा.
- फक्त "happy paths" टेस्ट करणे जर तुम्ही फक्त यशाची चाचणी घेतली, तर तुमच्या एजंटला दबावाखाली (stress) अपयश येईल.
- फेल्युअर टेस्ट करण्यासाठी 'chaos engineering' वापरा.
- टेस्ट दरम्यान मुद्दाम डिपेंडन्सीज फेल करा.
- नेटवर्क लॅटन्सी आणि स्लो सर्व्हिसेसचे सिम्युलेशन करा.
- चुकीच्या (malformed) डेटासह टेस्ट करा.
- एजंटची स्टेट (state) गमावणे क्रॅश झाल्यामुळे सर्व प्रगती (progress) नष्ट होऊ नये.
- महत्त्वाच्या टप्प्यांवर स्टेट सेव्ह करा.
- 'idempotent operations' वापरा.
- खंडित झालेले काम पुन्हा सुरू करण्यासाठी पुरेसा कॉन्टेक्स्ट साठवा.
- कॉन्फिगरेशन्स हार्डकोड करणे टाइमआउट किंवा API एंडपॉइंट्स बदलण्यासाठी पुन्हा डिप्लॉयमेंटची गरज भासू नये.
- सर्व सेटिंग्ससाठी 'environment variables' वापरा.
- कोडमध्ये बदल न करता थ्रेशोल्ड्स (thresholds) बदलता येतील असे करा.
- नवीन वर्तनासाठी (behaviors) 'feature flags' वापरा.
- सामान्य एरर हँडलिंग (Generic error handling) व्हॅलिडेशन एरर आणि नेटवर्क टाइमआउट यांवर वेगळ्या पद्धतीने प्रक्रिया करणे आवश्यक आहे.
- पुन्हा प्रयत्न करता येण्यासारखे (retriable) एरर्स आणि कायमस्वरूपी (permanent) एरर्स वेगळे करा.
- रेट लिमिट्ससारख्या तात्पुरत्या (transient) समस्यांसाठी पुन्हा प्रयत्न करा.
- ऑथेंटिकेशन फेल्युअरसारख्या कायमस्वरूपी समस्यांसाठी पुन्हा प्रयत्न करू नका.
लवचिकता (Resilience) म्हणजे वास्तवाचा अंदाज घेणे होय. तुमच्या सध्याच्या एजंट्सचे या त्रुटींच्या आधारे ऑडिट करून सुरुवात करा.
Optional learning community: https://t.me/GyaanSetuAi