- Octomind, AI एजेंट्स का उपयोग करके Playwright में end-to-end tests को अपने-आप generate और modify करता है।
- शुरुआत में उसने LangChain framework का उपयोग किया, लेकिन समय के साथ LangChain का बहुत ऊँचा abstraction level समस्याएँ पैदा करने लगा।
LangChain की समस्याएँ
- LangChain का abstraction शुरुआत में उपयोगी था, लेकिन जैसे-जैसे requirements जटिल हुईं, code को समझना और maintain करना मुश्किल हो गया।
- LangChain की internal structure को समझने और debug करने में बहुत समय लगता था।
- उदाहरण के लिए, किसी साधारण English शब्द को Italian में translate करने वाले code में भी LangChain का उपयोग करने पर complexity बढ़ जाती है।
LangChain की abstraction समस्या
- LangChain कई abstractions को एक के ऊपर एक रखकर code की complexity बढ़ाता है।
- ये abstractions code को समझना और debug करना और कठिन बना देते हैं।
- उदाहरण के लिए, API से JSON data लाने जैसे सरल काम में भी LangChain का उपयोग करने पर complexity बढ़ जाती है।
डेवलपमेंट टीम पर प्रभाव
- जब टीम ने complex agent architecture लागू करने की कोशिश की, तो LangChain एक limiting factor बन गया।
- LangChain को हटाने के बाद, वे requirements के अनुसार अधिक स्वतंत्रता से coding कर सके।
क्या AI applications बनाने के लिए framework ज़रूरी है?
- LangChain शुरुआत में उपयोगी था, लेकिन लंबे समय में framework के बिना development करना बेहतर होता।
- ज़्यादातर AI applications को simple code और कुछ external packages के साथ पर्याप्त रूप से implement किया जा सकता है।
- जब तक agent usage patterns स्थापित नहीं हो जाते, तब तक simple approach अपनाने की सिफारिश की गई है।
modular building blocks के साथ तेज़ और संक्षिप्त development
- frameworks structure को enforce करते हैं, लेकिन AI applications में अभी established usage patterns नहीं हैं।
- modular building blocks approach simple low-level code को प्राथमिकता देती है और development speed बढ़ाती है।
- vector database जैसे modular components का उपयोग करके codebase को concise और adaptable रखा जा सकता है।
GN⁺ की राय
- LangChain की सीमाएँ: LangChain का ऊँचा abstraction शुरुआती दौर में उपयोगी हो सकता है, लेकिन जटिल requirements आने पर यह उल्टा बाधा बन सकता है।
- modular approach के फायदे: modular building blocks approach code को समझना और maintain करना आसान बनाती है, और development speed बढ़ाती है।
- framework की आवश्यकता पर पुनर्विचार: हर AI application के लिए framework ज़रूरी नहीं है; simple code और external packages से भी पर्याप्त implementation संभव है।
- development speed का महत्व: AI क्षेत्र में तेज़ experimentation और prototyping महत्वपूर्ण हैं, और frameworks इन्हें सीमित कर सकते हैं।
- भविष्य के agent usage patterns: जब तक agent usage patterns स्थापित नहीं हो जाते, तब तक simple approach बनाए रखना बेहतर है।
2 टिप्पणियां
कहते थे कि यह एक असफल आर्किटेक्चर है, अब इसे GeekNews में भी देख रहा हूँ।
Hacker News राय
पहला commercial LLM agent पिछले साल अक्टूबर/नवंबर में बनाया था: LangChain का उपयोग किए बिना agent को शुरू से खुद बनाना बेहतर नतीजे पाने में मददगार रहा।
LLM framework की जटिलता: LangChain जैसे LLM framework अक्सर Java या Python जैसी जटिलता ले आते हैं।
LangChain और ChatGPT की तुलना: LangChain, ChatGPT के आने से पहले बनाया गया था, लेकिन ChatGPT ने बेहतर conversational model दिया, जिससे LangChain की ज़रूरत कम हो गई।
LangChain की value पर बहस: LangChain ने developer और LLM के बीच रहने की कोशिश की, लेकिन उसने कोई ठोस value नहीं जोड़ी और अनावश्यक abstraction ले आया।
अच्छी abstraction और खराब abstraction: अच्छी abstraction application logic को संभालती है, जबकि खराब abstraction ज़रूरी कामों को छिपा देती है और insight कम कर देती है।
agent उपयोग की समस्या: content generation के लिए agent इस्तेमाल करने की बजाय sequential prompt का उपयोग करना ज़्यादा आसान और प्रभावी है।
Ragged framework का परिचय: Ragged को एक lightweight connector के रूप में पेश किया गया है, जो LLM से आसानी से जुड़ सकता है। यह ORM जैसी integrated interface देता है।
LangChain की सीमित उपयोगिता: LangChain का approach दिलचस्प है, लेकिन व्यवहार में LLM runtime library को सीधे इस्तेमाल करना ज़्यादा efficient है।
तेजी से बदलते agent framework: उपयोग में आ रहे agent framework बहुत तेजी से बदलते हैं, और version में छोटा बदलाव भी मौजूदा setup को तोड़ सकता है।
LangChain की जटिलता की समस्या: LangChain साधारण use case के लिए बहुत जटिल है, और जटिल use case में उसे ढालना मुश्किल है। कई बार सीधे coding करना बेहतर होता है।