जिस पल स्थानीय LLM एजेंट संदर्भ से बाहर निकल जाता है, बातचीत समझ में नहीं आती। आठवां मोड़ एक फ़ाइल को संदर्भित करने का प्रयास करता है जिसे मॉडल पहले ही अपनी विंडो से हटा चुका है, टूल कॉल आउटपुट एक नियमित कदम पर 6000 टोकन खाता है, और अगला उत्तर एक योजना के बजाय एक माफी है। 7B या 13B मॉडल को घर पर चलाकर पचास कदम के माध्यम से एक कार्य पूरा करना मॉडल आकार के बारे में कम है और इस बारे में अधिक है कि विंडो में क्या प्रवेश करता है और बाहर निकलता है।
हमने सात एप्लिकेशन और लाइब्रेरी का परीक्षण किया जो स्थानीय LLM के आसपास संदर्भ का प्रबंधन करते हैं। कुछ मेमोरी स्टोर हैं जो सत्रों के बीच बने रहते हैं, कुछ प्रॉम्प्ट इंजन हैं जो ओवरफ्लो से पहले सारांशित करते हैं, और एक सही सेटिंग्स के साथ Ollama सर्वर ही है। नीचे दिया गया है कि 13B मॉडल के साथ 90 मिनट के कोडिंग सेशन के माध्यम से हमारे परीक्षण एजेंट को वास्तव में केंद्रित रखा गया था।
संदर्भ प्रबंधक में क्या देखना चाहिए
- स्वचालित सारांश। टूल को ध्यान देना चाहिए कि विंडो क्षमता के पास कब है और पुराने मोड़ को उद्देश्य खोए बिना रोल करें।
- फुलाए हुए इतिहास पर पुनर्प्राप्ति। एक फ़ाइल, एक दस्तावेज़, या एक पिछली चैट जिसे एम्बेडिंग द्वारा संदर्भित किया गया है, वही सामग्री प्रॉम्प्ट में वापस चिपकाए जाने से सस्ता है।
- सत्रों के बीच स्थायी स्मृति। एजेंट को यह याद रखना चाहिए कि आपने दो दिन पहले अपनी परियोजना के बारे में क्या कहा था बिना दोहराए।
- टूल कॉल टोकन अनुशासन। बड़े टूल आउटपुट (grep परिणाम, HTTP प्रतिक्रियाएं) को ट्रिम किया जाना चाहिए या अगले मोड़ में कच्चे में डाले जाने के बजाय हैंडल द्वारा संदर्भित किया जाना चाहिए।
- Ollama-native या OpenAI-संगत। टूल को अपने स्थानीय रनटाइम के समान प्रोटोकॉल बोलना चाहिए।
- केवल स्थानीय मोड। संदर्भ प्रबंधन के बारे में कुछ भी क्लाउड सेवा को कॉल करने की आवश्यकता नहीं होनी चाहिए।
त्वरित तुलना
| ऐप | सर्वश्रेष्ठ के लिए | लाइसेंस | निःशुल्क योजना | शुरुआती कीमत | रेटिंग |
|---|---|---|---|---|---|
| LangChain | संदर्भ ऑर्केस्ट्रेशन के लिए पूर्ण ढांचा | MIT | निःशुल्क | निःशुल्क | 4.5 |
| LlamaIndex | पुनर्प्राप्ति-प्रथम एजेंट | MIT | निःशुल्क | निःशुल्क | 4.6 |
| Mem0 | दीर्घकालीन मेमोरी स्टोर | Apache 2.0 | स्व-होस्ट निःशुल्क | लगभग $19/माह होस्ट किया गया | 4.5 |
| Chroma | एम्बेडेड वेक्टर डेटाबेस | Apache 2.0 | निःशुल्क | निःशुल्क | 4.5 |
| Continue | संदर्भ नियमों के साथ VS Code एजेंट | Apache 2.0 | निःशुल्क | निःशुल्क | 4.6 |
| Open WebUI | दस्तावेज़ और मेमोरी पाइपलाइन के साथ चैट UI | BSD-3 | निःशुल्क | निःशुल्क | 4.7 |
| Ollama | प्रति-मॉडल संदर्भ सेटिंग्स के साथ रनटाइम | MIT | निःशुल्क | निःशुल्क | 4.7 |
ऐप्स
1. LangChain — संदर्भ ऑर्केस्ट्रेशन के लिए सर्वश्रेष्ठ पूर्ण ढांचा
LangChain वह ढांचा है जिसकी ओर अधिकांश स्थानीय-LLM परियोजनाएं संदर्भ प्रबंधन एक वास्तविक समस्या बन जाने पर जाती हैं। टोकन सीमा के साथ बातचीत बफर, स्वचालित सारांश श्रृंखला, संदेश इतिहास दुकानें, और एक मेमोरी API जो किसी भी LLM प्रोटोकॉल में प्लग करती है, सभी प्रथम-श्रेणी आदिम हैं।
एक एजेंट के लिए जो उपकरणों के साथ कई मोड़ चलाता है, ConversationTokenBufferMemory MapReduceSummarize श्रृंखला के साथ विंडो को उड़ने से रोकता है। यह Ollama और llama.cpp सर्वर के साथ स्वच्छ रूप से एकीकृत होता है।
जहां यह खराब आता है: API सतह बहुत बड़ी है, और सबसे तेज़ रास्ता हमेशा स्पष्ट नहीं होता है। साप्ताहिक रिलीज़ कभी-कभी मामूली आयात को तोड़ते हैं। लंबी श्रृंखला को डीबग करने के लिए LangSmith UI या सावधान लॉगिंग की आवश्यकता होती है।
मूल्य निर्धारण:
- निःशुल्क: पूर्ण पुस्तकालय, MIT लाइसेंस
- भुगतान: LangSmith क्लाउड ट्रेसिंग स्तर लगभग $39/उपयोगकर्ता/माह से
प्लेटफॉर्म: Windows, macOS, Linux पर Python, JavaScript
डाउनलोड: LangChain
नीचे की लाइन: तब चुनें जब एजेंट को एक ही जगह पर कई आदिम (मेमोरी, पुनर्प्राप्ति, उपकरण रूटिंग) की आवश्यकता हो।
2. LlamaIndex — सर्वश्रेष्ठ पुनर्प्राप्ति-प्रथम एजेंट
LlamaIndex संदर्भ को एक प्रश्न समस्या के रूप में मानता है। पूरे दस्तावेज़ को प्रॉम्प्ट में पेस्ट करने के बजाय, यह एम्बेडिंग के साथ दस्तावेज़ को अनुक्रमित करता है और केवल पैराग्राफ खींचता है जिसे मॉडल इस मोड़ में चाहिए। परिणाम एक बहुत छोटी कार्य विंडो और एक बहुत लंबी प्रभावी मेमोरी है।
पुस्तकालय PDF, Markdown, कोड रिपोजिटरी, Notion और डेटाबेस के लिए कनेक्टर के साथ आता है। इसका ChatEngine आदिम प्रति मोड़ प्रासंगिक chunks को पुनः प्राप्त करते समय बातचीत की स्थिति को बनाए रखता है।
जहां यह खराब आता है: पुनर्प्राप्ति-भारी डिजाइन मानता है कि आपके पास अनुक्रमित करने के लिए दस्तावेज़ हैं। एक शुद्ध चैट एजेंट के लिए बाहरी कोपस के बिना, यह सादा मेमोरी बफर से अधिक सेटअप है।
मूल्य निर्धारण:
- निःशुल्क: MIT लाइसेंस
- भुगतान: LlamaCloud प्रबंधित होस्टिंग लगभग $50/माह से
प्लेटफॉर्म: Windows, macOS, Linux पर Python, TypeScript
डाउनलोड: LlamaIndex
नीचे की लाइन: सही विकल्प जब एजेंट का काम दस्तावेज़ों पर तर्क देना है एक रोलिंग चैट के बजाय।
3. Mem0 — सर्वश्रेष्ठ दीर्घकालीन मेमोरी स्टोर
Mem0 (पहले Embedchain) एक मेमोरी सेवा है जो एजेंट को सत्रों के बीच याद करने की क्षमता देने के लिए डिज़ाइन की गई है। यह बातचीत को निगल करता है, टिकाऊ तथ्य निकालता है, उन्हें अनुक्रमित करता है, और अगली प्रॉम्प्ट में प्रासंगिक को स्वचालित रूप से इंजेक्ट करता है। परिणाम एक एजेंट है जो आपके प्रोजेक्ट संरचना, कोडिंग शैली, या चल रहे कार्य को “याद रखता है” बिना उपयोगकर्ता को दोहराए।
स्व-होस्ट मोड स्थानीय Postgres या SQLite के विरुद्ध चलता है और Python क्लाइंट के माध्यम से पढ़ता और लिखता है। उन टीमों के लिए एक होस्ट किया गया स्तर मौजूद है जो बुनियादी ढांचा नहीं चलाना चाहते।
जहां यह खराब आता है: मेमोरी निष्कर्षण गुणवत्ता मॉडल पर निर्भर करती है। एक 7B मॉडल एक 13B या होस्ट किए गए frontier मॉडल की तुलना में अधिक शोर वाली मेमोरी पैदा करता है। अक्सर एक्सट्रैक्टर प्रॉम्प्ट के कुछ ट्यूनिंग की आवश्यकता होती है।
मूल्य निर्धारण:
- निःशुल्क: स्व-होस्ट Apache 2.0
- भुगतान: व्यक्तियों के लिए लगभग $19/माह से होस्ट किया गया, टीमों के लिए अधिक
प्लेटफॉर्म: Windows, macOS, Linux पर Python क्लाइंट; होस्ट किया गया API
डाउनलोड: Mem0
नीचे की लाइन: स्पष्ट विकल्प जब आप एजेंट को रिबूट के बीच अपने प्रोजेक्ट को याद रखना चाहते हैं।
4. Chroma — सर्वश्रेष्ठ एम्बेडेड वेक्टर डेटाबेस
Chroma एक छोटा, एम्बेडेड वेक्टर डेटाबेस है जो Python या JavaScript ऐप के साथ प्रक्रिया में चलता है। अपनी पसंद के मॉडल के साथ एक chunk को एम्बेड करें, इसे Chroma संग्रह में डालें, और बाद में इसे खींचने के लिए कोसाइन समानता द्वारा क्वेरी करें। कोई सर्वर नहीं, कोई क्लस्टर नहीं, कोई ऑप्स नहीं।
स्थानीय LLM संदर्भ प्रबंधन के लिए, Chroma LangChain और LlamaIndex में अधिकांश पुनर्प्राप्ति पैटर्न के तहत भंडारण परत है। यह उन मामलों के लिए एक हल्के सर्वर के रूप में भी चलता है जहां कई प्रक्रियाएं एक ही स्टोर साझा करती हैं।
जहां यह खराब आता है: पूर्ण मेमोरी ढांचा नहीं। आप पुनर्प्राप्ति तर्क को स्वयं तार करते हैं। बहुत बड़े संग्रह (लाखों chunks) पर क्वेरी विलंबता Qdrant और Milvus को पिछड़ता है।
मूल्य निर्धारण:
- निःशुल्क: Apache 2.0
- भुगतान: Chroma Cloud बीटा टीमों के लिए उपलब्ध
प्लेटफॉर्म: Python, JavaScript, Windows, macOS, Linux में प्रक्रिया में
डाउनलोड: Chroma
नीचे की लाइन: स्वच्छ विकल्प जब आपको बस सर्वर स्पिन किए बिना एम्बेडिंग संग्रहीत करने के लिए एक जगह की आवश्यकता होती है।
5. Continue — संदर्भ नियमों के साथ सर्वश्रेष्ठ VS Code एजेंट
Continue खुला स्रोत VS Code (और JetBrains) एक्सटेंशन है जो एक स्थानीय Ollama या llama.cpp उदाहरण को संपादक के अंदर कोडिंग एजेंट में बदल देता है। इसका config.yaml प्रति प्रोजेक्ट संदर्भ नियम सेट करता है: कौन सी फ़ाइलें स्वचालित रूप से शामिल करें, कौन सी सारांशित करें और कौन सी अनदेखी करें।
@ कमांड पैलेट नाम से विशिष्ट संदर्भ खींचता है: @file वर्तमान फ़ाइल के लिए, @codebase पूरे रिपो में सार्थक खोज के लिए, @docs बाहरी दस्तावेज़ के लिए। प्रत्येक @ संदर्भ एक नियंत्रित संदर्भ इंजेक्शन है एक चिपकाने के बजाय।
जहां यह खराब आता है: कॉन्फ़िगरेशन YAML-भारी है और ट्यून करने के लिए एक सेशन लगता है। कुछ पुनर्प्राप्ति कॉन्फ़िगरेशन छोटी फ़ाइलों की ओर बहुत अधिक पूर्वाग्रह करते हैं।
मूल्य निर्धारण:
- निःशुल्क: Apache 2.0
- भुगतान: Hub सुविधाएं (साझा सहायक, निजी हब) लगभग $10/उपयोगकर्ता/माह से
प्लेटफॉर्म: VS Code, JetBrains, Windows, macOS, Linux
डाउनलोड: Continue
नीचे की लाइन: सही विकल्प जब एजेंट आपके संपादक में रहता है और पूरे पेड़ के बजाय रिपो का सही हिस्सा चाहिए।
6. Open WebUI — दस्तावेज़ और मेमोरी पाइपलाइन के साथ सर्वश्रेष्ठ चैट UI
Open WebUI स्थानीय मॉडल के लिए ChatGPT-शैली फ्रंट एंड है जिसमें दो सुविधाएं हैं जो संदर्भ समस्याओं को सीधे हल करती हैं: दस्तावेज़ RAG पाइपलाइन और प्रति-उपयोगकर्ता मेमोरी। एक PDF अपलोड करें या URL पेस्ट करें, और Open WebUI चैट के दौरान chunks, embeds और retrieves करता है। मेमोरी पैनल उपयोगकर्ता को टिकाऊ नोट्स सहेजने देता है जिसे मॉडल प्रत्येक मोड़ पर परामर्श देता है।
Pipelines सुविधा आपको कस्टम फ़िल्टर (सारांश, संपादन, उपकरण रूटिंग) को स्वैप करने देती है जो मॉडल कॉल के पहले या बाद में चलते हैं। उन्नत उपयोगकर्ता Python में अपनी खुद की पाइपलाइन लिखते हैं और इसे प्लगइन फ़ोल्डर में डालते हैं।
जहां यह खराब आता है: सिरहीन नहीं। हर एजेंट पथ एक चैट विंडो में समाप्त होता है। स्वचालन-पहली वर्कफ़्लो इसके बजाय Continue या LangChain का उपयोग करते हैं।
मूल्य निर्धारण:
- निःशुल्क: BSD-3
- भुगतान: कोई नहीं; एंटरप्राइज समर्थन उपलब्ध
प्लेटफॉर्म: Docker, Kubernetes, Windows, macOS, Linux पर Python
डाउनलोड: Open WebUI
नीचे की लाइन: तब चुनें जब कोई व्यक्ति चैट कर रहा हो और “संदर्भ से बाहर निकलें” समस्या वास्तव में “संलग्नक और मेमोरी” समस्या है।
7. Ollama — प्रति-मॉडल संदर्भ सेटिंग्स के साथ सर्वश्रेष्ठ रनटाइम
Ollama स्थानीय मॉडल रनटाइम है जिससे इस पृष्ठ पर लगभग हर अन्य उपकरण बात करता है। संदर्भ प्रबंधन कहानी यहां एक ढांचा नहीं बल्कि दो ध्वज हैं: मॉडल फ़ाइल में num_ctx विंडो आकार को बढ़ाने के लिए, और कॉल के बीच KV कैश को RAM में रखने के लिए keep_alive पैरामीटर।
num_ctx को डिफॉल्ट 4096 से 13B मॉडल पर 32768 तक बढ़ाने से पहले “एजेंट भूल गया” रिपोर्ट का अधिकांश हिस्सा शांत रूप से हल हो जाता है। ट्रेड-ऑफ मेमोरी पदचिह्न और प्रति-टोकन थ्रूपुट है।
जहां यह खराब आता है: कोई मेमोरी नहीं, कोई पुनर्प्राप्ति नहीं, कोई सारांश नहीं। यह केवल वह रखता है जो आप प्रॉम्प्ट में भेजते हैं।
मूल्य निर्धारण:
- निःशुल्क: MIT
- भुगतान: कोई नहीं
प्लेटफॉर्म: Windows, macOS, Linux, ARM64
डाउनलोड: Ollama
नीचे की लाइन: पहले num_ctx सेट करें। फिर ऊपर दिए गए ढांचे तक पहुंचें। उसी क्रम में।
सही एक कैसे चुनें
- अगर आप 4096 टोकन पर एक कठोर दीवार से टकरा रहे हैं: Ollama। अपनी एप्लिकेशन को फिर से लिखने से पहले
num_ctxबदलें। - यदि आप एक ढांचा चाहते हैं जो मेमोरी, पुनर्प्राप्ति और उपकरण रूटिंग को कवर करता है: LangChain।
- यदि एजेंट दस्तावेज़ों पर सवालों के जवाब दे रहा है: LlamaIndex।
- यदि एजेंट को याद रखने की जरूरत है कि पिछले हफ्ते क्या हुआ: Mem0।
- यदि आप पहले से ही LangChain चला रहे हैं और बस एम्बेडिंग रखने के लिए कहीं की जरूरत है: Chroma।
- यदि एजेंट VS Code में रहता है: Continue।
- यदि कोई व्यक्ति चैट कर रहा है और अपलोड प्लस मेमोरी की जरूरत है: Open WebUI।
सामान्य प्रश्न
मेरा स्थानीय LLM एजेंट एक कार्य के बीच चीजें क्यों भूल जाता है?
हर मॉडल के पास प्रॉम्प्ट विंडो के लिए एक कठोर टोकन सीमा है। जब बातचीत, उपकरण आउटपुट और निर्देश उस सीमा से अधिक हो, तो रनटाइम चुप्पी से पहली टोकन को छोड़ देता है। एजेंट अभी भी उत्पन्न करता है, लेकिन कार्य का एक कटा हुआ दृश्य के साथ। मॉडल पर num_ctx बढ़ाएं और एक समर्थक जोड़ें जो पुराने मोड़ को एक संकुचित इतिहास में मोड़ता है।
संदर्भ प्रबंधन और मेमोरी में क्या अंतर है?
संदर्भ प्रबंधन वह है जो वर्तमान प्रॉम्प्ट विंडो में फिट बैठता है (आमतौर पर अल्पकालिक)। मेमोरी वह है जो प्रॉम्प्ट, सत्र और रीबूट (दीर्घकालिक) के बीच बनी रहती है। Mem0 और Open WebUI कवर मेमोरी; LangChain, LlamaIndex और Continue संदर्भ पर ध्यान केंद्रित करते हैं।
स्थानीय LLM कितना संदर्भ संभाल सकता है?
मॉडल और आपके RAM बजट पर निर्भर करता है। Llama 3.1 8B 128K टोकन का समर्थन करता है यदि रनटाइम इसे सम्मान करता है। व्यवहार में, 32K से 64K उपभोक्ता हार्डवेयर पर उचित विलंबता रखता है। बहुत लंबे संदर्भ भी perplexity बढ़ाते हैं, इसलिए ट्रिमिंग अक्सर पैडिंग से बेहतर होता है।
क्या ये उपकरण LM Studio और llama.cpp के साथ काम करते हैं?
LangChain, LlamaIndex, Continue और Open WebUI सभी OpenAI-संगत API बोलते हैं जो LM Studio और llama.cpp सर्वर उजागर करते हैं। Mem0 और Chroma भंडारण परतें हैं और किसी भी प्रदाता के साथ काम करती हैं जिसकी ओर आप उन्हें इंगित करते हैं।
क्या Mem0 खुली समग्र है?
हाँ। Mem0 का मुख्य पुस्तकालय Apache 2.0 है और स्व-होस्ट योग्य है। भुगतान की गई होस्ट की गई परत एक सुविधा परत है, OSS के लिए फाटक परत नहीं।
क्या मैं इसे Apple Silicon पर उपयोग कर सकता हूं?
सभी सात चयन Apple Silicon पर नेटिवली चलते हैं। Ollama, Continue और Open WebUI में प्रथम-श्रेणी ARM64 बिल्ड हैं। LangChain, LlamaIndex, Mem0 और Chroma Python या Node पुस्तकालय हैं और हर जगह काम करते हैं जहां Python या Node चलता है।