यह क्या प्रदान करता है
- FTS5 पूर्ण-पाठ इंडेक्सिंग (BM25 स्कोरिंग) के माध्यम से कीवर्ड खोज।
- किसी भी समर्थित प्रदाता की एम्बेडिंग के माध्यम से वेक्टर खोज।
- सर्वोत्तम परिणामों के लिए दोनों को संयोजित करने वाली हाइब्रिड खोज।
- चीनी, जापानी और कोरियाई के लिए ट्राइग्राम टोकनाइज़ेशन के माध्यम से CJK समर्थन।
- डेटाबेस के भीतर वेक्टर क्वेरी के लिए sqlite-vec त्वरण (वैकल्पिक)।
आरंभ करना
डिफ़ॉल्ट रूप से, बिल्ट-इन इंजन OpenAI एम्बेडिंग का उपयोग करता है। यदिOPENAI_API_KEY या
models.providers.openai.apiKey पहले से कॉन्फ़िगर है, तो वेक्टर खोज
बिना किसी अतिरिक्त मेमोरी कॉन्फ़िगरेशन के काम करती है।
किसी प्रदाता को स्पष्ट रूप से सेट करने के लिए:
local.modelPath को किसी GGUF फ़ाइल की ओर इंगित करें:
समर्थित एम्बेडिंग प्रदाता
OpenAI से किसी अन्य प्रदाता पर स्विच करने के लिए
memory.search.provider सेट करें।
इंडेक्सिंग कैसे काम करती है
OpenClawMEMORY.md और memory/*.md को खंडों में इंडेक्स करता है (डिफ़ॉल्ट रूप से 80-टोकन
ओवरलैप के साथ 400 टोकन) और उन्हें प्रति-एजेंट SQLite डेटाबेस में संग्रहीत करता है।
- इंडेक्स स्थान: स्वामी एजेंट का डेटाबेस
~/.openclaw/agents/<agentId>/agent/openclaw-agent.sqliteपर - भंडारण रखरखाव: SQLite WAL साइडकार को आवधिक और शटडाउन चेकपॉइंट के माध्यम से सीमित रखा जाता है।
- फ़ाइल निगरानी: मेमोरी फ़ाइलों में परिवर्तन डीबाउंस किए गए पुनः-इंडेक्स को ट्रिगर करते हैं (डिफ़ॉल्ट 1.5s)।
- स्वचालित पुनः-इंडेक्स: एम्बेडिंग प्रदाता, मॉडल, चंकिंग कॉन्फ़िगरेशन, कॉन्फ़िगर किए गए स्रोत या दायरा बदलने पर इंडेक्स स्वचालित रूप से फिर से बनता है।
- माँग पर पुनः-इंडेक्स:
openclaw memory index --force
आप
memory.search.extraPaths के साथ कार्यस्थान के बाहर की Markdown फ़ाइलों को भी
इंडेक्स कर सकते हैं। कॉन्फ़िगरेशन संदर्भ
देखें।कब उपयोग करें
अधिकांश उपयोगकर्ताओं के लिए बिल्ट-इन इंजन सही विकल्प है:- बिना किसी अतिरिक्त निर्भरता के तुरंत काम करता है।
- कीवर्ड और वेक्टर खोज को अच्छी तरह संभालता है।
- सभी एम्बेडिंग प्रदाताओं का समर्थन करता है।
- हाइब्रिड खोज दोनों पुनर्प्राप्ति दृष्टिकोणों की सर्वोत्तम विशेषताओं को संयोजित करती है।
समस्या निवारण
मेमोरी खोज अक्षम है?openclaw memory status जाँचें। यदि कोई प्रदाता
नहीं मिलता है, तो किसी प्रदाता को स्पष्ट रूप से सेट करें या API कुंजी जोड़ें।
स्थानीय प्रदाता नहीं मिला? पुष्टि करें कि स्थानीय पथ मौजूद है और यह चलाएँ:
local प्रदाता ID का उपयोग करते हैं।
जब आप स्थानीय एम्बेडिंग चाहते हों, तो memory.search.provider: "local" सेट करें।
परिणाम पुराने हैं? फिर से बनाने के लिए openclaw memory index --force चलाएँ। दुर्लभ
विशेष स्थितियों में वॉचर परिवर्तनों को चूक सकता है।
sqlite-vec लोड नहीं हो रहा है? OpenClaw स्वचालित रूप से प्रक्रिया के भीतर कोसाइन
समानता का उपयोग करने लगता है। openclaw memory status --deep स्थानीय
वेक्टर स्टोर को एम्बेडिंग प्रदाता से अलग रिपोर्ट करता है, इसलिए Vector store: unavailable sqlite-vec लोडिंग की ओर इंगित करता है, जबकि Embeddings: unavailable
प्रदाता/प्रमाणीकरण या मॉडल की तत्परता की ओर इंगित करता है। विशिष्ट लोड
त्रुटि के लिए लॉग जाँचें।