इंटरनेटने ठरवले आहे की हे वर्ष एजंटचे आहे. LangGraph, CrewAI, आणि AutoGen ही प्रत्येक इंजिनिअरिंग रोडमॅपवरील नावे आहेत. टीम्स ऑर्केस्ट्रेशन लेयर्सची (orchestration layers) ताण-चाचणी करत आहेत, स्टेट मशीन्स (state machines) विरुद्ध रोल-प्ले (role-play) यावर चर्चा करत आहेत, आणि कोणती लायब्ररी शेवटी लार्ज लँग्वेज मॉडेल्सना (large language models) स्वायत्त (autonomous) बनवेल याची वाट पाहत आहेत.

येथे एक अस्वस्थ करणारा सत्य आहे: त्यातील बहुतेक तुलना अकाली आहेत. फ्रेमवर्क्स (frameworks) कठीण भाग नाहीत. कठीण भाग असा आहे की आपण आपल्या संज्ञा (terms) परिभाषित करणे थांबवले आहे. लोक आता प्रत्येक गोष्टीला 'एजंट' म्हणतात. 'टूल कॉल' (tool call) म्हणजे एजंट नाही. 'चॅटबॉट' (chatbot) म्हणजे एजंट नाही. या अस्ताव्यस्त व्याख्येमुळे थेट खराब इंजिनिअरिंग, अति-निर्मित (overbuilt) सिस्टम आणि प्रोडक्शन आउटेज (production outages) होतात, जे एका साध्या स्क्रिप्टने टाळता आले असते.

फ्रेमवर्क निवडण्यापूर्वी, तुम्ही प्रत्यक्षात काय बनवत आहात हे परिभाषित करा.

एजंट म्हणजे प्रत्यक्षात काय असते

एजंट त्याच्यावर चालणाऱ्या मॉडेलवरून किंवा तो किती API कॉल्स करतो यावरून परिभाषित होत नाही. एजंट त्याच्या वर्तनावरून (behavior) परिभाषित होतो. त्याचे एक स्पष्ट उद्दिष्ट असले पाहिजे. मानवाने आधीच मार्ग ठरवून न देता, पुढचे पाऊल काय असावे याचा निर्णय तो स्वतःला घेता आला पाहिजे. जेव्हा ते पाऊल चुकते, तेव्हा त्याने त्रुटी हाताळल्या पाहिजेत (handle failure). आणि त्याला कधी थांबायचे हे माहित असले पाहिजे.

एका सपोर्ट सिस्टमचा विचार करा जी येणारा ईमेल वाचते, त्याला रिफंड विनंती म्हणून वर्गीकृत करते, ऑर्डर नंबर काढते, शिपिंग डेटाबेसमध्ये क्वेरी करते, रिटर्न पॉलिसीची वेळ तपासते, प्रतिसादाचा मसुदा तयार करते आणि तिकीट 'रिझॉल्व्हड' (resolved) म्हणून मार्क करते. जर डेटाबेस टाइमआउट झाला, तर ती थांबते आणि पुन्हा प्रयत्न करते. जर पॉलिसी विंडो संदिग्ध असेल, तर ती मानवी मदतीसाठी फ्लॅग करते. जेव्हा प्रतिसाद पाठवला जातो, तेव्हा ती थांबते. तो एक एजंट आहे. केवळ एका LLM कॉलभोवती असलेले 'रॅपर' (wrapper) जे JSON परत करते, ते एजंट नाही, मार्केटिंग टीम त्यावर कितीही "agent" स्टिकर्स लावली तरीही.

हा फरक महत्त्वाचा आहे कारण गुंतागुंतीची एक किंमत असते. ज्या सिस्टमला स्वायत्ततेची (autonomy) गरज नाही, तिने त्यासाठी किंमत मोजू नये.

प्रोडक्शन AI चे खरे स्वरूप

सध्या प्रोडक्शनमध्ये चालणाऱ्या बहुतेक AI सिस्टम्स 'नॅरो' (narrow) आहेत. त्या एक गोष्ट चांगल्या प्रकारे करतात. त्या सपोर्ट तिकिटांचे रांगांमध्ये (queues) वर्गीकरण करतात. स्कॅन केलेल्या कागदपत्रांमधून एक्सपायरी डेट्स काढतात. ग्राहकांच्या प्रश्नांना अस्तित्वात असलेल्या नॉलेज बेस लेखांशी जुळवतात. ते सामान्य तर्क करणारे इंजिन (general reasoning engines) नाहीत, आणि तसे भासवणे हे अति-इंजिनिअरिंगच्या (overengineering) सर्वात वाईट प्रकाराकडे नेते.

यामुळे मॉडेल रिलीजच्या बाबतीत एक विध्वंसक वेड देखील निर्माण होते. टीम्स नवीनतम फाउंडेशन मॉडेलच्या मागे अशा प्रकारे धावतात जणू काही ते अस्ताव्यस्त आर्किटेक्चरची भरपाई करेल. ते करणार नाही. एरर हँडलिंगशिवाय एका ठिसूळ लूपमध्ये (brittle loop) चालणारे अधिक सक्षम मॉडेल केवळ अधिक आत्मविश्वासाने आणि अधिक सर्जनशील 'हॅलुसिनेशन'सह (hallucinations) अपयशी ठरेल. बेंचमार्कच्या मागे धावणे थांबवा. स्ट्रक्चरच्या (structure) मागे धावायला सुरुवात करा.

फ्रेमवर्क हे उत्पादन नाही

LangGraph तुम्हाला स्पष्ट स्टेट मशीन्स आणि सायकल देते. CrewAI हे रोल-बेस्ड ऑर्केस्ट्रेशनवर (role-based orchestration) भर देते जिथे एजंट्स व्यक्तिमत्व (personas) स्वीकारतात. AutoGen हे संवादात्मक एजंट्सवर (conversational agents) केंद्रित आहे जे समस्या सोडवण्यासाठी एकमेकांशी चॅट करतात. ही सर्व सक्षम साधने आहेत. ती कंट्रोल फ्लोसाठी (control flow) मूलभूतपणे भिन्न दृष्टिकोन देखील आहेत.

परंतु तुम्ही निवडलेले फ्रेमवर्क त्यामध्ये तुम्ही लागू केलेल्या पॅटर्नपेक्षा (patterns) कमी महत्त्वाचे आहे. मी अशा टीम्सना पाहिले आहे ज्यांनी केवळ Python आणि Redis वापरून अत्यंत भक्कम ऑटोमेशन तयार केले कारण त्यांनी सीमांचा (boundaries) आदर केला. मी अशा इतर टीम्सना पाहिले आहे ज्यांनी फॅन्सी ऑर्केस्ट्रेशनच्या वजनाखाली कोसळले कारण त्यांनी फ्रेमवर्कला डिझाइनचा पर्याय मानले.

जर तुमचे हँडऑफ्स (handoffs) अस्पष्ट असतील, तुमची टूल्स ठिसूळ असतील आणि तुमचे 'रिट्राय लॉजिक' (retry logic) अस्तित्वात नसेल, तर तुमच्या requirements.txt वरील लोगो तुम्हाला वाचवू शकणार नाही.

तीन गोष्टी ज्या खरोखर तुमच्या वेळेस पात्र आहेत

जर तुम्ही एजन्टिक सिस्टम्स (agentic systems) बनवत असाल, तर तुमचा प्रयत्न या तीन क्षेत्रांत केंद्रित करा.

Tool design. तुमचा एजंट कॉल करू शकणारे प्रत्येक फंक्शन हे इंटरफेसमध्ये गुंडाळलेली एक जबाबदारी (liability) आहे. त्यांना घट्ट (tightly) डिझाइन करा. इनपुट्सचे आक्रमकपणे प्रमाणीकरण (validate) करा. प्रत्यक्षात वाचता येतील असे एरर्स परत करा, केवळ 500 dumps नाही. एक चांगले टूल ते असते ज्याबद्दल काहीतरी चुकल्यास एजंट तर्क करू शकेल.

Failure handling. असे गृहीत धरा की प्रत्येक LLM