---
read_when:
    - आप समझना चाहते हैं कि memory_search कैसे काम करता है
    - आप एक एम्बेडिंग प्रदाता चुनना चाहते हैं
    - आप खोज की गुणवत्ता को बेहतर बनाना चाहते हैं
summary: एम्बेडिंग और हाइब्रिड पुनर्प्राप्ति का उपयोग करके मेमोरी खोज प्रासंगिक नोट्स कैसे ढूँढती है
title: मेमोरी खोज
x-i18n:
    generated_at: "2026-07-27T19:33:25Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 32
    provider: openai
    source_hash: b2bd28b63ac55a2a890ed70a3015f76f1c7fbaa792b17a6ead51f4c8712fbd2d
    source_path: concepts/memory-search.md
    workflow: 16
---

`memory_search` आपकी मेमोरी फ़ाइलों से प्रासंगिक नोट्स खोजता है, भले ही उनकी
शब्दावली मूल पाठ से अलग हो। यह मेमोरी को छोटे भागों में बाँटता है और
उन्हें एम्बेडिंग, कीवर्ड या दोनों से खोजता है।

## त्वरित शुरुआत

OpenClaw डिफ़ॉल्ट रूप से OpenAI एम्बेडिंग का उपयोग करता है। किसी अन्य प्रदाता का उपयोग करने के लिए, उसे
स्पष्ट रूप से सेट करें:

```json5
{
  memory: {
    search: {
      provider: "openai", // या "gemini", "voyage", "mistral", "bedrock", "local", "ollama", "lmstudio", "github-copilot", "openai-compatible"
    },
  },
}
```

`provider` किसी कस्टम `models.providers.<id>` प्रविष्टि (उदाहरण के लिए
`ollama-5080`) का संदर्भ भी दे सकता है, बशर्ते वह प्रविष्टि `api` को `"ollama"` या
मेमोरी एम्बेडिंग अडैप्टर वाले किसी अन्य प्रदाता आईडी पर सेट करे।

बिना API कुंजी के स्थानीय एम्बेडिंग के लिए, आधिकारिक llama.cpp प्रदाता
Plugin इंस्टॉल करें और `provider: "local"` सेट करें:

```bash
openclaw plugins install @openclaw/llama-cpp-provider
```

स्रोत चेकआउट के लिए अभी भी नेटिव बिल्ड अनुमोदन आवश्यक है: `pnpm approve-builds`, फिर
`pnpm rebuild node-llama-cpp`।

कुछ OpenAI-संगत एम्बेडिंग एंडपॉइंट को असममित `input_type`
लेबल चाहिए होते हैं, जैसे खोजों के लिए `"query"` और इंडेक्स किए गए
खंडों के लिए `"document"`/`"passage"`। इन्हें `queryInputType` और `documentInputType` से सेट करें; देखें
[मेमोरी कॉन्फ़िगरेशन संदर्भ](/hi/reference/memory-config#provider-specific-config)।

## समर्थित प्रदाता

| प्रदाता           | आईडी                | API कुंजी आवश्यक | टिप्पणियाँ                           |
| ----------------- | ------------------- | ---------------- | ------------------------------------ |
| Bedrock           | `bedrock`           | नहीं             | AWS क्रेडेंशियल शृंखला का उपयोग करता है |
| DeepInfra         | `deepinfra`         | हाँ              | डिफ़ॉल्ट मॉडल `BAAI/bge-m3`         |
| Gemini            | `gemini`            | हाँ              | इमेज/ऑडियो इंडेक्सिंग का समर्थन करता है |
| GitHub Copilot    | `github-copilot`    | नहीं             | आपकी Copilot सदस्यता का उपयोग करता है |
| स्थानीय           | `local`             | नहीं             | GGUF मॉडल, ~0.6 GB स्वतः डाउनलोड       |
| LM Studio         | `lmstudio`          | नहीं             | स्थानीय/स्व-होस्टेड सर्वर              |
| Mistral           | `mistral`           | हाँ              |                                      |
| Ollama            | `ollama`            | नहीं             | स्थानीय/स्व-होस्टेड सर्वर              |
| OpenAI            | `openai`            | हाँ              | डिफ़ॉल्ट                              |
| OpenAI-संगत       | `openai-compatible` | आमतौर पर         | सामान्य `/v1/embeddings` एंडपॉइंट    |
| Voyage            | `voyage`            | हाँ              |                                      |

## खोज कैसे काम करती है

OpenClaw दो पुनर्प्राप्ति पथ समानांतर रूप से चलाता है और परिणामों को मर्ज करता है:

```mermaid
flowchart LR
    Q["क्वेरी"] --> E["एम्बेडिंग"]
    Q --> T["टोकनाइज़"]
    E --> VS["वेक्टर खोज"]
    T --> BM["BM25 खोज"]
    VS --> M["भारित मर्ज"]
    BM --> M
    M --> R["शीर्ष परिणाम"]
```

- **वेक्टर खोज** समान अर्थ का मिलान करती है ("gateway host" का मिलान "वह
  मशीन जिस पर OpenClaw चल रहा है" से होता है)।
- **BM25 कीवर्ड खोज** सटीक शब्दों (आईडी, त्रुटि स्ट्रिंग, कॉन्फ़िगरेशन
  कुंजियाँ) का मिलान करती है।
- **फ़ाइल नाम खोज** पथों को नोट के मुख्य भाग से अलग इंडेक्स करती है। सटीक पूर्ण
  पथ, बेसनाम और फ़ाइल नाम स्टेम को आंशिक पथ मिलानों से ऊँची रैंक मिलती है,
  जबकि स्निपेट और मुख्य भाग के कीवर्ड स्कोर अभी भी नोट की सामग्री से आते हैं।

यदि केवल एक पथ उपलब्ध है, तो वही अकेले चलता है।

**केवल-FTS मोड।** एम्बेडिंग को जानबूझकर अक्षम करने और केवल कीवर्ड से खोजने के लिए
`provider: "none"` सेट करें। `provider` को सेट न करने या `"auto"` पर सेट करने से
भी, यदि कोई एम्बेडिंग प्रमाणीकरण कॉन्फ़िगर नहीं है, बिना त्रुटि दिए केवल-कीवर्ड रैंकिंग पर फ़ॉलबैक होता है,
और विफल होने पर `provider: "local"` (GGUF/llama.cpp
प्रदाता) भी ऐसा ही करता है।

**स्पष्ट रूप से चुना गया प्रदाता अनुपलब्ध है।** यदि आप किसी अन्य प्रदाता का नाम स्पष्ट रूप से देते हैं
(उदाहरण के लिए `openai`, `ollama`, `gemini`) और वह अनुरोध के समय
अनुपलब्ध हो जाता है (अमान्य प्रमाणीकरण, नेटवर्क विफलता), तो `memory_search` चुपचाप केवल-FTS परिणामों पर
अवनत होने के बजाय मेमोरी को अनुपलब्ध बताता है। इससे खराब कॉन्फ़िगर किया गया
प्रदाता दिखाई देता रहता है। जानबूझकर केवल-FTS पुनर्स्मरण के लिए `provider: "none"` सेट करें,
या सिमेंटिक रैंकिंग पुनर्स्थापित करने के लिए प्रदाता/प्रमाणीकरण कॉन्फ़िगरेशन ठीक करें।

## खोज गुणवत्ता में सुधार

दो वैकल्पिक सुविधाएँ लंबे नोट इतिहास में सहायता करती हैं।

### समयानुसार क्षय

पुराने नोट धीरे-धीरे अपना रैंकिंग भार खोते हैं, ताकि हाल की जानकारी पहले दिखाई दे।
डिफ़ॉल्ट 30-दिन की अर्ध-आयु के साथ, पिछले महीने के नोट को उसके
मूल भार का 50% स्कोर मिलता है। `MEMORY.md` और `memory/` के अंतर्गत अन्य बिना-तारीख वाली फ़ाइलें
सदाबहार हैं और उनका कभी क्षय नहीं होता; केवल तारीख वाली `memory/YYYY-MM-DD.md` फ़ाइलों का क्षय होता है।

<Tip>
यदि आपके एजेंट के पास कई महीनों के दैनिक नोट हैं और पुरानी जानकारी
हाल के संदर्भ से लगातार ऊँची रैंक पा रही है, तो इसे सक्षम करें।
</Tip>

### MMR (विविधता)

अनावश्यक रूप से दोहराए गए परिणाम कम करता है। यदि पाँच नोट एक ही राउटर कॉन्फ़िगरेशन का उल्लेख करते हैं,
तो MMR सुनिश्चित करता है कि शीर्ष परिणाम दोहराव के बजाय अलग-अलग विषयों को समाहित करें।

<Tip>
यदि `memory_search` अलग-अलग दैनिक नोटों से लगभग समान स्निपेट लगातार लौटा रहा है,
तो इसे सक्षम करें।
</Tip>

### दोनों सक्षम करें

```json5
{
  memory: {
    search: {
      query: {
        hybrid: {
          mmr: { enabled: true },
          temporalDecay: { enabled: true },
        },
      },
    },
  },
}
```

## मल्टीमोडल मेमोरी

`gemini-embedding-2-preview` के साथ, आप Markdown के साथ इमेज और ऑडियो को भी
इंडेक्स कर सकते हैं। यह केवल `memory.search.extraPaths` के अंतर्गत फ़ाइलों पर लागू होता है; डिफ़ॉल्ट
मेमोरी रूट (`MEMORY.md`, `memory/*.md`) केवल Markdown रहते हैं। खोज क्वेरी
टेक्स्ट ही रहती हैं, लेकिन वे दृश्य और ऑडियो सामग्री से मेल खाती हैं। सेटअप के लिए
[मेमोरी कॉन्फ़िगरेशन संदर्भ](/hi/reference/memory-config#multimodal-memory-gemini)
देखें।

## सत्र मेमोरी खोज

सत्र ट्रांसक्रिप्ट से सटीक पूर्ण-पाठ पुनर्स्मरण के लिए, [`sessions_search`](/hi/concepts/session-search)
का उपयोग करें और फिर `sessions_history` से परिणाम खोलें। सत्र-मेमोरी खोज सिमेंटिक,
प्रयोगात्मक पूरक बनी रहती है।

वैकल्पिक रूप से सत्र ट्रांसक्रिप्ट इंडेक्स करें, ताकि `memory_search` पिछली
बातचीत को याद कर सके। यह स्वैच्छिक है: `experimental.sessionMemory: true` सेट करें और
`sources` में `"sessions"` जोड़ें (डिफ़ॉल्ट `sources`, `["memory"]` है)।

सत्र हिट `tools.sessions.visibility` का पालन करते हैं: डिफ़ॉल्ट `"tree"`
वर्तमान सत्र, उसके द्वारा बनाए गए सत्र और परिवेशी समूह जागरूकता के माध्यम से देखे गए
समान-एजेंट समूह सत्रों को उजागर करता है। `session.dmScope: "main"` के साथ, बहु-उपयोगकर्ता
DM सेटअप उस मुख्य सत्र को साझा करता है, इसलिए वहाँ रूट किए गए उपयोगकर्ता उसके देखे गए समूहों की सामग्री
को याद कर सकते हैं। DM पृथक्करण के लिए प्रति-पीयर `dmScope` का उपयोग करें, या
परिवेशी रूप से देखे गए सत्रों को पढ़ने से बाहर रहने के लिए दृश्यता को `"self"` पर सेट करें। अन्य
असंबंधित समान-एजेंट सत्रों के लिए अभी भी `"agent"` दृश्यता आवश्यक है।

QMD बैकएंड का उपयोग करते समय, `memory.qmd.sessions.enabled: true` भी सेट करें, ताकि
ट्रांसक्रिप्ट QMD संग्रह में निर्यात हों; केवल `experimental.sessionMemory`
और `sources` ट्रांसक्रिप्ट को QMD में निर्यात नहीं करते। देखें
[कॉन्फ़िगरेशन संदर्भ](/hi/reference/memory-config#session-memory-search-experimental)।

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

**कोई परिणाम नहीं?** इंडेक्स जाँचने के लिए `openclaw memory status` चलाएँ। यदि वह खाली है, तो
`openclaw memory index --force` चलाएँ।

**केवल कीवर्ड मिलान?** संभव है कि आपका एम्बेडिंग प्रदाता कॉन्फ़िगर न हो। जाँचें
`openclaw memory status --deep`।

**स्थानीय एम्बेडिंग का समय समाप्त हो जाता है?** `ollama`, `lmstudio`, और `local` अधिक लंबे
प्रदाता-स्वामित्व वाले बैच समय-सीमा का उपयोग करते हैं। प्रदाता की स्थिति जाँचें और
`openclaw memory index --force` फिर चलाएँ।

**CJK टेक्स्ट नहीं मिला?** FTS इंडेक्स को
`openclaw memory index --force` से फिर बनाएँ।

## संबंधित

- [मेमोरी अवलोकन](/hi/concepts/memory)
- [Active Memory](/hi/concepts/active-memory)
- [अंतर्निहित मेमोरी इंजन](/hi/concepts/memory-builtin)
- [मेमोरी कॉन्फ़िगरेशन संदर्भ](/hi/reference/memory-config)
