Sessions and memory

अंतर्निर्मित मेमोरी इंजन

बिल्ट-इन इंजन डिफ़ॉल्ट मेमोरी बैकएंड है। यह आपके मेमोरी इंडेक्स को प्रति-एजेंट SQLite डेटाबेस में संग्रहीत करता है और आरंभ करने के लिए किसी अतिरिक्त निर्भरता की आवश्यकता नहीं होती।

यह क्या प्रदान करता है

  • FTS5 पूर्ण-पाठ इंडेक्सिंग (BM25 स्कोरिंग) के माध्यम से कीवर्ड खोज
  • किसी भी समर्थित प्रदाता की एम्बेडिंग के माध्यम से वेक्टर खोज
  • सर्वोत्तम परिणामों के लिए दोनों को संयोजित करने वाली हाइब्रिड खोज
  • चीनी, जापानी और कोरियाई के लिए ट्राइग्राम टोकनाइज़ेशन के माध्यम से CJK समर्थन
  • डेटाबेस के भीतर वेक्टर क्वेरी के लिए sqlite-vec त्वरण (वैकल्पिक)।

आरंभ करना

डिफ़ॉल्ट रूप से, बिल्ट-इन इंजन OpenAI एम्बेडिंग का उपयोग करता है। यदि OPENAI_API_KEY या models.providers.openai.apiKey पहले से कॉन्फ़िगर है, तो वेक्टर खोज बिना किसी अतिरिक्त मेमोरी कॉन्फ़िगरेशन के काम करती है।

किसी प्रदाता को स्पष्ट रूप से सेट करने के लिए:

json5
{  memory: {    search: {      provider: "openai",    },  },}

एम्बेडिंग प्रदाता के बिना, केवल कीवर्ड खोज उपलब्ध होती है।

स्थानीय GGUF एम्बेडिंग का उपयोग अनिवार्य करने के लिए, आधिकारिक llama.cpp प्रदाता Plugin इंस्टॉल करें, फिर local.modelPath को किसी GGUF फ़ाइल की ओर इंगित करें:

bash
openclaw plugins install @openclaw/llama-cpp-provider
json5
{  memory: {    search: {      provider: "local",      fallback: "none",      local: {        modelPath: "~/.node-llama-cpp/models/embeddinggemma-300m-qat-Q8_0.gguf",      },    },  },}

समर्थित एम्बेडिंग प्रदाता

प्रदाता ID टिप्पणियाँ
Bedrock bedrock AWS क्रेडेंशियल शृंखला का उपयोग करता है
DeepInfra deepinfra डिफ़ॉल्ट: BAAI/bge-m3
Gemini gemini मल्टीमॉडल (चित्र + ऑडियो) का समर्थन करता है
GitHub Copilot github-copilot आपकी Copilot सदस्यता का उपयोग करता है
LM Studio lmstudio स्थानीय/स्व-होस्टेड
स्थानीय local @openclaw/llama-cpp-provider
Mistral mistral
Ollama ollama स्थानीय/स्व-होस्टेड
OpenAI openai डिफ़ॉल्ट: text-embedding-3-small
OpenAI-संगत openai-compatible सामान्य /v1/embeddings एंडपॉइंट
Voyage voyage

OpenAI से किसी अन्य प्रदाता पर स्विच करने के लिए memory.search.provider सेट करें।

इंडेक्सिंग कैसे काम करती है

OpenClaw MEMORY.md और memory/*.md को खंडों में इंडेक्स करता है (डिफ़ॉल्ट रूप से 80-टोकन ओवरलैप के साथ 400 टोकन) और उन्हें प्रति-एजेंट SQLite डेटाबेस में संग्रहीत करता है।

  • इंडेक्स स्थान: स्वामी एजेंट का डेटाबेस ~/.openclaw/agents/<agentId>/agent/openclaw-agent.sqlite पर
  • भंडारण रखरखाव: SQLite WAL साइडकार को आवधिक और शटडाउन चेकपॉइंट के माध्यम से सीमित रखा जाता है।
  • फ़ाइल निगरानी: मेमोरी फ़ाइलों में परिवर्तन डीबाउंस किए गए पुनः-इंडेक्स को ट्रिगर करते हैं (डिफ़ॉल्ट 1.5s)।
  • स्वचालित पुनः-इंडेक्स: एम्बेडिंग प्रदाता, मॉडल, चंकिंग कॉन्फ़िगरेशन, कॉन्फ़िगर किए गए स्रोत या दायरा बदलने पर इंडेक्स स्वचालित रूप से फिर से बनता है।
  • माँग पर पुनः-इंडेक्स: openclaw memory index --force

कब उपयोग करें

अधिकांश उपयोगकर्ताओं के लिए बिल्ट-इन इंजन सही विकल्प है:

  • बिना किसी अतिरिक्त निर्भरता के तुरंत काम करता है।
  • कीवर्ड और वेक्टर खोज को अच्छी तरह संभालता है।
  • सभी एम्बेडिंग प्रदाताओं का समर्थन करता है।
  • हाइब्रिड खोज दोनों पुनर्प्राप्ति दृष्टिकोणों की सर्वोत्तम विशेषताओं को संयोजित करती है।

यदि आपको पुनः-रैंकिंग, क्वेरी विस्तार की आवश्यकता है या आप कार्यस्थान के बाहर की डायरेक्टरियों को इंडेक्स करना चाहते हैं, तो QMD पर स्विच करने पर विचार करें।

यदि आप स्वचालित उपयोगकर्ता मॉडलिंग के साथ सत्रों के बीच बनी रहने वाली मेमोरी चाहते हैं, तो Honcho पर विचार करें।

समस्या निवारण

मेमोरी खोज अक्षम है? openclaw memory status जाँचें। यदि कोई प्रदाता नहीं मिलता है, तो किसी प्रदाता को स्पष्ट रूप से सेट करें या API कुंजी जोड़ें।

स्थानीय प्रदाता नहीं मिला? पुष्टि करें कि स्थानीय पथ मौजूद है और यह चलाएँ:

bash
openclaw memory status --deep --agent mainopenclaw memory index --force --agent main

स्वतंत्र CLI कमांड और Gateway, दोनों समान local प्रदाता ID का उपयोग करते हैं। जब आप स्थानीय एम्बेडिंग चाहते हों, तो memory.search.provider: "local" सेट करें।

परिणाम पुराने हैं? फिर से बनाने के लिए openclaw memory index --force चलाएँ। दुर्लभ विशेष स्थितियों में वॉचर परिवर्तनों को चूक सकता है।

sqlite-vec लोड नहीं हो रहा है? OpenClaw स्वचालित रूप से प्रक्रिया के भीतर कोसाइन समानता का उपयोग करने लगता है। openclaw memory status --deep स्थानीय वेक्टर स्टोर को एम्बेडिंग प्रदाता से अलग रिपोर्ट करता है, इसलिए Vector store: unavailable sqlite-vec लोडिंग की ओर इंगित करता है, जबकि Embeddings: unavailable प्रदाता/प्रमाणीकरण या मॉडल की तत्परता की ओर इंगित करता है। विशिष्ट लोड त्रुटि के लिए लॉग जाँचें।

कॉन्फ़िगरेशन

एम्बेडिंग प्रदाता सेटअप, हाइब्रिड खोज ट्यूनिंग (भार, MMR, समय-संबंधी क्षय), बैच इंडेक्सिंग, मल्टीमॉडल मेमोरी, sqlite-vec, अतिरिक्त पथ और अन्य सभी कॉन्फ़िगरेशन विकल्पों के लिए मेमोरी कॉन्फ़िगरेशन संदर्भ देखें।

संबंधित

Was this useful?
On this page

On this page