{"title":"मेमोरी सर्वोत्तम अभ्यास","slug":"memory-best-practices","category":"guides","summary":"प्रभावी रिकॉल के लिए मेमोरीज़ को कैसे संरचित करें — श्रेणियाँ, कुंजी, टैग, प्राथमिकताएँ।","audience":["human","llm"],"tags":["guide","memory","best-practices","patterns"],"difficulty":"intermediate","updated":"2026-06-27","word_count":701,"read_minutes":4,"lang":"hi","translated":true,"requested_lang":"hi","content_markdown":"\n# मेमोरी सर्वोत्तम अभ्यास\n\nआप मेमोरीज़ को जैसे संरचित करते हैं, वे उतनी ही उपयोगी होती हैं। यह गाइड श्रेणीबद्ध करने, टैग करने और प्राथमिकता देने के पैटर्न को कवर करती है ताकि LLM सही समय पर सही जानकारी को रिकॉल कर सके।\n\n## श्रेणियाँ: सबसे विशिष्ट चुनें\n\n| श्रेणी | उपयोग | उदाहरण |\n|----------|---------|---------|\n| `identity` | उपयोगकर्ता नाम, भूमिका, संपर्क जानकारी | `\"user_name\": \"Michael Schäfer\"` |\n| `preference` | पसंद, नापसंद, कार्य शैली | `\"communication\": \"Prefers concise responses\"` |\n| `fact` | सत्यापित योग्य तथ्य | `\"office_location\": \"Berlin, Germany\"` |\n| `project` | प्रोजेक्ट स्थिति, निर्णय | `\"project_synapse\": \"v1.5.0 deployed\"` |\n| `skill` | उपयोगकर्ता के कौशल | `\"skill_python\": \"Advanced, 10+ years\"` |\n| `mistake` | टालने योग्य पिछली त्रुटियाँ | `\"mistake_npm_version\": \"Always bump version\"` |\n| `context` | सत्र-संबंधित संदर्भ | `\"current_focus\": \"Working on docs system\"` |\n| `note` | विविध नोट्स | `\"note_idea\": \"Try Redis for caching\"` |\n\n> [!TIP]\n> संदेह होने पर, सत्यापित योग्य जानकारी के लिए `fact` का उपयोग करें और बाकी सब के लिए `note` का उपयोग करें।\n> अति-श्रेणीबद्ध न करें — एक भ्रमित करने वाले `context` से एक स्पष्ट `fact` बेहतर है।\n\n## कुंजी: सार्थक पहचानकर्ता\n\n`key` फ़ील्ड मेमोरी का पहचानकर्ता है। सार्थक, स्थिर कुंजी का उपयोग करें:\n\n**अच्छी कुंजी:**\n- `user_name`\n- `project_synapse_status`\n- `preference_communication_style`\n- `mistake_npm_version_bump`\n\n**खराब कुंजी:**\n- `mem_001` (सार्थक नहीं)\n- `temp` (वर्णनात्मक नहीं)\n- `2026-06-27-note` (तारीख रिकॉल में मदद नहीं करती)\n\n### कुंजी नामकरण सम्मेलन\n\n- `snake_case` (अंडरस्कोर के साथ लोअरकेस)\n- श्रेणी के साथ उपसर्ग करें: `preference_*`, `project_*`, `mistake_*`\n- वर्णनात्मक संज्ञाओं का उपयोग करें, क्रियाओं का नहीं\n- 50 अक्षरों के भीतर रखें\n\n## टैग: खोज और फ़िल्टरिंग के लिए\n\nटैग तेज़ फ़िल्टरिंग और खोज सक्षम करते हैं। प्रत्येक मेमोरी में 2-5 टैग जोड़ें:\n\n```json\n{\n  \"category\": \"project\",\n  \"key\": \"project_synapse_status\",\n  \"content\": \"Synapse v1.5.0 deployed. Next: v1.6.0 with docs system.\",\n  \"tags\": [\"synapse\", \"deployment\", \"status\", \"v1.5.0\"]\n}\n```\n\n### टैग पैटर्न\n\n- **प्रोजेक्ट नाम**: `synapse`, `synapse-mcp`, `synapse-chat`\n- **विषय**: `deployment`, `ci`, `database`, `auth`\n- **स्थिति**: `active`, `completed`, `blocked`\n- **प्राथमिकता संकेतक**: `urgent`, `long-term`\n\n> [!NOTE]\n> टैग केस-असंवेदनशील होते हैं। सुसंगतता के लिए लोअरकेस का उपयोग करें।\n\n## प्राथमिकताएँ: यथार्थवादी बनें\n\n| प्राथमिकता | उपयोग | % मेमोरीज़ |\n|----------|---------|---------------|\n| `critical` | उपयोगकर्ता पहचान, कानूनी जानकारी, अपरिवर्तनीय निर्णय | ~5% |\n| `high` | सक्रिय प्रोजेक्ट, महत्वपूर्ण प्राथमिकताएँ | ~20% |\n| `normal` | अधिकांश तथ्य, नोट्स, संदर्भ | ~65% |\n| `low` | क्षणिक, जानना-अच्छा-लगता-है | ~10% |\n\n> [!WARNING]\n> सब कुछ `critical` चिह्नित न करें। यदि सब कुछ महत्वपूर्ण है, तो कुछ भी महत्वपूर्ण नहीं है।\n> `critical` को उन चीज़ों के लिए आरक्षित रखें जिन्हें भूलने पर वास्तविक नुक़सान हो।\n\n## कब स्टोर करें और कब नहीं\n\n### हमेशा स्टोर करें\n\n- उपयोगकर्ता पहचान (नाम, ईमेल, भूमिका)\n- दीर्घकालिक प्राथमिकताएँ\n- प्रोजेक्ट निर्णय और तर्क\n- पिछली गलतियाँ और सीखे गए सबक\n- उपयोगकर्ता को दी गई प्रतिबद्धताएँ\n\n### स्टोर न करें\n\n- क्षणिक स्थिति (इसके बजाय वेरिएबल का उपयोग करें)\n- शब्दशः वार्तालाप इतिहास (चैट सिस्टम इसे संभालता है)\n- संवेदनशील डेटा (पासवर्ड, API कुंजी)\n- आसानी से प्राप्त होने वाले तथ्य (वर्तमान तारीख, फ़ाइल सामग्री)\n- क्षणिक संदर्भ (`context` श्रेणी का निम्न प्राथमिकता के साथ उपयोग करें)\n\n## मेमोरीज़ अपडेट करना\n\nसमान `category` + `key` के साथ POST `/memory` मौजूदा मेमोरी को अपडेट करता है:\n\n```python\n# Initial store\nstore(\"project\", \"project_synapse_status\", \"v1.4.0 deployed\", priority=\"high\")\n\n# Later: update with same key\nstore(\"project\", \"project_synapse_status\", \"v1.5.0 deployed. CI green.\", priority=\"high\")\n```\n\n> [!TIP]\n> स्थिर कुंजी का उपयोग करें ताकि आप डुप्लिकेट बनाए बिना अपडेट कर सकें। LLM\n> को जानकारी बदलने पर नई मेमोरी बनाने के बजाय समान कुंजी को पुनः POST करना चाहिए।\n\n## मेमोरी जीवनचक्र\n\n```\nCreate → Active → Stale → Archive → Delete\n```\n\n- **Create**: पूर्ण संदर्भ के साथ POST /memory\n- **Active**: बार-बार रिकॉल करें, आवश्यकतानुसार अपडेट करें\n- **Stale**: अभी भी प्रासंगिक लेकिन सक्रिय रूप से उपयोग नहीं (कम प्राथमिकता?)\n- **Archive**: प्राथमिकता `low` पर सेट करें, ऐतिहासिक संदर्भ के लिए रखें\n- **Delete**: अब प्रासंगिक न होने पर DELETE /memory/:id\n\n### आवधिक सफ़ाई\n\n```python\n# Find memories not updated in 90 days\nold_memories = requests.get(\n    f\"{URL}/memory/search?q=*\",\n    headers={\"Authorization\": f\"Bearer {KEY}\"}\n)\n\nfor mem in old_memories[\"results\"]:\n    if is_stale(mem, days=90):\n        # Either delete or lower priority\n        if is_obsolete(mem):\n            delete_memory(mem[\"id\"])\n        else:\n            update_memory(mem[\"id\"], priority=\"low\")\n```\n\n## पैटर्न: मेमोरी इनहेरिटेंस\n\nपदानुक्रमित संदर्भ के लिए (प्रोजेक्ट → उप-प्रोजेक्ट → कार्य):\n\n```python\n# Parent project\nstore(\"project\", \"project_synapse\", \"Main Synapse project\", \n      tags=[\"synapse\", \"parent\"], priority=\"high\")\n\n# Sub-project (tags link to parent)\nstore(\"project\", \"project_synapse_docs\", \"Docs system for Synapse\",\n      tags=[\"synapse\", \"docs\", \"synapse-parent\"], priority=\"high\")\n\n# Specific task (tags link to sub-project)\nstore(\"project\", \"task_docs_loader\", \"Implement docs-loader.ts\",\n      tags=[\"synapse\", \"docs\", \"task\"], priority=\"normal\")\n```\n\nफिर LLM सभी संबंधित मेमोरीज़ खोजने के लिए `q=synapse+docs` सर्च कर सकता है।\n\n## पैटर्न: निर्णय लॉग\n\nतर्क के साथ निर्णय स्टोर करें ताकि LLM उन्हें पुनः विवादित न करे:\n\n```python\nstore(\"fact\", \"decision_postgres_over_sqlite\",\n      \"Chose PostgreSQL over SQLite for production. Reason: concurrent writes, \"\n      \"FTS5 native support, better backup story. Date: 2026-06-15. Decided by: Michael.\",\n      tags=[\"decision\", \"database\", \"postgres\", \"sqlite\"],\n      priority=\"high\")\n```\n\n## पैटर्न: गलती से बचाव\n\nविशिष्ट बचाव निर्देशों के साथ गलतियाँ स्टोर करें:\n\n```python\nstore(\"mistake\", \"mistake_forget_version_bump\",\n      \"Forgot to bump package.json version after changes. npm publish failed. \"\n      \"FIX: Always run `npm version patch` before pushing. \"\n      \"CI fails with 'version already exists' if you forget.\",\n      tags=[\"npm\", \"ci\", \"publish\", \"version\"],\n      priority=\"high\")\n```\n\n## बचने योग्य एंटी-पैटर्न\n\n> [!WARNING]\n> - **वार्तालाप लॉग स्टोर करना** — चैट सिस्टम इसे संभालता है\n> - **संपूर्ण फ़ाइलें स्टोर करना** — स्क्रिप्ट स्टोर या बाहरी स्टोरेज का उपयोग करें\n> - **क्षणिक स्थिति स्टोर करना** — वेरिएबल का उपयोग करें\n> - **सीक्रेट्स स्टोर करना** — पर्यावरण वेरिएबल का उपयोग करें\n> - **मेमोरीज़ डुप्लिकेट करना** — स्थिर कुंजी का उपयोग करें\n> - **अति-टैगिंग** — प्रति मेमोरी 2-5 टैग आदर्श हैं\n> - **सब कुछ महत्वपूर्ण है** — प्राथमिकताओं में यथार्थवादी रहें\n\n## अगले कदम\n\n- [Memory API](/docs/api/memory)\n- [Persistent LLM Agent](/docs/guides/persistent-llm-agent)\n- [Memory Tagging Strategy](/docs/llm-cookbook/memory-tagging-strategy)\n","content_html":"<h1>मेमोरी सर्वोत्तम अभ्यास</h1>\n<p>आप मेमोरीज़ को जैसे संरचित करते हैं, वे उतनी ही उपयोगी होती हैं। यह गाइड श्रेणीबद्ध करने, टैग करने और प्राथमिकता देने के पैटर्न को कवर करती है ताकि LLM सही समय पर सही जानकारी को रिकॉल कर सके।</p>\n<h2>श्रेणियाँ: सबसे विशिष्ट चुनें</h2>\n<table>\n<thead>\n<tr>\n<th>श्रेणी</th>\n<th>उपयोग</th>\n<th>उदाहरण</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>identity</code></td>\n<td>उपयोगकर्ता नाम, भूमिका, संपर्क जानकारी</td>\n<td><code>&quot;user_name&quot;: &quot;Michael Schäfer&quot;</code></td>\n</tr>\n<tr>\n<td><code>preference</code></td>\n<td>पसंद, नापसंद, कार्य शैली</td>\n<td><code>&quot;communication&quot;: &quot;Prefers concise responses&quot;</code></td>\n</tr>\n<tr>\n<td><code>fact</code></td>\n<td>सत्यापित योग्य तथ्य</td>\n<td><code>&quot;office_location&quot;: &quot;Berlin, Germany&quot;</code></td>\n</tr>\n<tr>\n<td><code>project</code></td>\n<td>प्रोजेक्ट स्थिति, निर्णय</td>\n<td><code>&quot;project_synapse&quot;: &quot;v1.5.0 deployed&quot;</code></td>\n</tr>\n<tr>\n<td><code>skill</code></td>\n<td>उपयोगकर्ता के कौशल</td>\n<td><code>&quot;skill_python&quot;: &quot;Advanced, 10+ years&quot;</code></td>\n</tr>\n<tr>\n<td><code>mistake</code></td>\n<td>टालने योग्य पिछली त्रुटियाँ</td>\n<td><code>&quot;mistake_npm_version&quot;: &quot;Always bump version&quot;</code></td>\n</tr>\n<tr>\n<td><code>context</code></td>\n<td>सत्र-संबंधित संदर्भ</td>\n<td><code>&quot;current_focus&quot;: &quot;Working on docs system&quot;</code></td>\n</tr>\n<tr>\n<td><code>note</code></td>\n<td>विविध नोट्स</td>\n<td><code>&quot;note_idea&quot;: &quot;Try Redis for caching&quot;</code></td>\n</tr>\n</tbody></table>\n<div class=\"callout callout-ok\">संदेह होने पर, सत्यापित योग्य जानकारी के लिए `fact` का उपयोग करें और बाकी सब के लिए `note` का उपयोग करें।\nअति-श्रेणीबद्ध न करें — एक भ्रमित करने वाले `context` से एक स्पष्ट `fact` बेहतर है।</div><h2>कुंजी: सार्थक पहचानकर्ता</h2>\n<p><code>key</code> फ़ील्ड मेमोरी का पहचानकर्ता है। सार्थक, स्थिर कुंजी का उपयोग करें:</p>\n<p><strong>अच्छी कुंजी:</strong></p>\n<ul>\n<li><code>user_name</code></li>\n<li><code>project_synapse_status</code></li>\n<li><code>preference_communication_style</code></li>\n<li><code>mistake_npm_version_bump</code></li>\n</ul>\n<p><strong>खराब कुंजी:</strong></p>\n<ul>\n<li><code>mem_001</code> (सार्थक नहीं)</li>\n<li><code>temp</code> (वर्णनात्मक नहीं)</li>\n<li><code>2026-06-27-note</code> (तारीख रिकॉल में मदद नहीं करती)</li>\n</ul>\n<h3>कुंजी नामकरण सम्मेलन</h3>\n<ul>\n<li><code>snake_case</code> (अंडरस्कोर के साथ लोअरकेस)</li>\n<li>श्रेणी के साथ उपसर्ग करें: <code>preference_*</code>, <code>project_*</code>, <code>mistake_*</code></li>\n<li>वर्णनात्मक संज्ञाओं का उपयोग करें, क्रियाओं का नहीं</li>\n<li>50 अक्षरों के भीतर रखें</li>\n</ul>\n<h2>टैग: खोज और फ़िल्टरिंग के लिए</h2>\n<p>टैग तेज़ फ़िल्टरिंग और खोज सक्षम करते हैं। प्रत्येक मेमोरी में 2-5 टैग जोड़ें:</p>\n<pre><code class=\"hljs language-json\"><span class=\"hljs-punctuation\">{</span>\n  <span class=\"hljs-attr\">&quot;category&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;project&quot;</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;key&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;project_synapse_status&quot;</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;content&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;Synapse v1.5.0 deployed. Next: v1.6.0 with docs system.&quot;</span><span class=\"hljs-punctuation\">,</span>\n  <span class=\"hljs-attr\">&quot;tags&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-punctuation\">[</span><span class=\"hljs-string\">&quot;synapse&quot;</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-string\">&quot;deployment&quot;</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-string\">&quot;status&quot;</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-string\">&quot;v1.5.0&quot;</span><span class=\"hljs-punctuation\">]</span>\n<span class=\"hljs-punctuation\">}</span></code></pre><h3>टैग पैटर्न</h3>\n<ul>\n<li><strong>प्रोजेक्ट नाम</strong>: <code>synapse</code>, <code>synapse-mcp</code>, <code>synapse-chat</code></li>\n<li><strong>विषय</strong>: <code>deployment</code>, <code>ci</code>, <code>database</code>, <code>auth</code></li>\n<li><strong>स्थिति</strong>: <code>active</code>, <code>completed</code>, <code>blocked</code></li>\n<li><strong>प्राथमिकता संकेतक</strong>: <code>urgent</code>, <code>long-term</code></li>\n</ul>\n<div class=\"callout callout-note\">टैग केस-असंवेदनशील होते हैं। सुसंगतता के लिए लोअरकेस का उपयोग करें।</div><h2>प्राथमिकताएँ: यथार्थवादी बनें</h2>\n<table>\n<thead>\n<tr>\n<th>प्राथमिकता</th>\n<th>उपयोग</th>\n<th>% मेमोरीज़</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>critical</code></td>\n<td>उपयोगकर्ता पहचान, कानूनी जानकारी, अपरिवर्तनीय निर्णय</td>\n<td>~5%</td>\n</tr>\n<tr>\n<td><code>high</code></td>\n<td>सक्रिय प्रोजेक्ट, महत्वपूर्ण प्राथमिकताएँ</td>\n<td>~20%</td>\n</tr>\n<tr>\n<td><code>normal</code></td>\n<td>अधिकांश तथ्य, नोट्स, संदर्भ</td>\n<td>~65%</td>\n</tr>\n<tr>\n<td><code>low</code></td>\n<td>क्षणिक, जानना-अच्छा-लगता-है</td>\n<td>~10%</td>\n</tr>\n</tbody></table>\n<div class=\"callout callout-warn\">सब कुछ `critical` चिह्नित न करें। यदि सब कुछ महत्वपूर्ण है, तो कुछ भी महत्वपूर्ण नहीं है।\n`critical` को उन चीज़ों के लिए आरक्षित रखें जिन्हें भूलने पर वास्तविक नुक़सान हो।</div><h2>कब स्टोर करें और कब नहीं</h2>\n<h3>हमेशा स्टोर करें</h3>\n<ul>\n<li>उपयोगकर्ता पहचान (नाम, ईमेल, भूमिका)</li>\n<li>दीर्घकालिक प्राथमिकताएँ</li>\n<li>प्रोजेक्ट निर्णय और तर्क</li>\n<li>पिछली गलतियाँ और सीखे गए सबक</li>\n<li>उपयोगकर्ता को दी गई प्रतिबद्धताएँ</li>\n</ul>\n<h3>स्टोर न करें</h3>\n<ul>\n<li>क्षणिक स्थिति (इसके बजाय वेरिएबल का उपयोग करें)</li>\n<li>शब्दशः वार्तालाप इतिहास (चैट सिस्टम इसे संभालता है)</li>\n<li>संवेदनशील डेटा (पासवर्ड, API कुंजी)</li>\n<li>आसानी से प्राप्त होने वाले तथ्य (वर्तमान तारीख, फ़ाइल सामग्री)</li>\n<li>क्षणिक संदर्भ (<code>context</code> श्रेणी का निम्न प्राथमिकता के साथ उपयोग करें)</li>\n</ul>\n<h2>मेमोरीज़ अपडेट करना</h2>\n<p>समान <code>category</code> + <code>key</code> के साथ POST <code>/memory</code> मौजूदा मेमोरी को अपडेट करता है:</p>\n<pre><code class=\"hljs language-python\"><span class=\"hljs-comment\"># Initial store</span>\nstore(<span class=\"hljs-string\">&quot;project&quot;</span>, <span class=\"hljs-string\">&quot;project_synapse_status&quot;</span>, <span class=\"hljs-string\">&quot;v1.4.0 deployed&quot;</span>, priority=<span class=\"hljs-string\">&quot;high&quot;</span>)\n\n<span class=\"hljs-comment\"># Later: update with same key</span>\nstore(<span class=\"hljs-string\">&quot;project&quot;</span>, <span class=\"hljs-string\">&quot;project_synapse_status&quot;</span>, <span class=\"hljs-string\">&quot;v1.5.0 deployed. CI green.&quot;</span>, priority=<span class=\"hljs-string\">&quot;high&quot;</span>)</code></pre><div class=\"callout callout-ok\">स्थिर कुंजी का उपयोग करें ताकि आप डुप्लिकेट बनाए बिना अपडेट कर सकें। LLM\nको जानकारी बदलने पर नई मेमोरी बनाने के बजाय समान कुंजी को पुनः POST करना चाहिए।</div><h2>मेमोरी जीवनचक्र</h2>\n<pre><code class=\"hljs language-plaintext\">Create → Active → Stale → Archive → Delete</code></pre><ul>\n<li><strong>Create</strong>: पूर्ण संदर्भ के साथ POST /memory</li>\n<li><strong>Active</strong>: बार-बार रिकॉल करें, आवश्यकतानुसार अपडेट करें</li>\n<li><strong>Stale</strong>: अभी भी प्रासंगिक लेकिन सक्रिय रूप से उपयोग नहीं (कम प्राथमिकता?)</li>\n<li><strong>Archive</strong>: प्राथमिकता <code>low</code> पर सेट करें, ऐतिहासिक संदर्भ के लिए रखें</li>\n<li><strong>Delete</strong>: अब प्रासंगिक न होने पर DELETE /memory/:id</li>\n</ul>\n<h3>आवधिक सफ़ाई</h3>\n<pre><code class=\"hljs language-python\"><span class=\"hljs-comment\"># Find memories not updated in 90 days</span>\nold_memories = requests.get(\n    <span class=\"hljs-string\">f&quot;<span class=\"hljs-subst\">{URL}</span>/memory/search?q=*&quot;</span>,\n    headers={<span class=\"hljs-string\">&quot;Authorization&quot;</span>: <span class=\"hljs-string\">f&quot;Bearer <span class=\"hljs-subst\">{KEY}</span>&quot;</span>}\n)\n\n<span class=\"hljs-keyword\">for</span> mem <span class=\"hljs-keyword\">in</span> old_memories[<span class=\"hljs-string\">&quot;results&quot;</span>]:\n    <span class=\"hljs-keyword\">if</span> is_stale(mem, days=<span class=\"hljs-number\">90</span>):\n        <span class=\"hljs-comment\"># Either delete or lower priority</span>\n        <span class=\"hljs-keyword\">if</span> is_obsolete(mem):\n            delete_memory(mem[<span class=\"hljs-string\">&quot;id&quot;</span>])\n        <span class=\"hljs-keyword\">else</span>:\n            update_memory(mem[<span class=\"hljs-string\">&quot;id&quot;</span>], priority=<span class=\"hljs-string\">&quot;low&quot;</span>)</code></pre><h2>पैटर्न: मेमोरी इनहेरिटेंस</h2>\n<p>पदानुक्रमित संदर्भ के लिए (प्रोजेक्ट → उप-प्रोजेक्ट → कार्य):</p>\n<pre><code class=\"hljs language-python\"><span class=\"hljs-comment\"># Parent project</span>\nstore(<span class=\"hljs-string\">&quot;project&quot;</span>, <span class=\"hljs-string\">&quot;project_synapse&quot;</span>, <span class=\"hljs-string\">&quot;Main Synapse project&quot;</span>, \n      tags=[<span class=\"hljs-string\">&quot;synapse&quot;</span>, <span class=\"hljs-string\">&quot;parent&quot;</span>], priority=<span class=\"hljs-string\">&quot;high&quot;</span>)\n\n<span class=\"hljs-comment\"># Sub-project (tags link to parent)</span>\nstore(<span class=\"hljs-string\">&quot;project&quot;</span>, <span class=\"hljs-string\">&quot;project_synapse_docs&quot;</span>, <span class=\"hljs-string\">&quot;Docs system for Synapse&quot;</span>,\n      tags=[<span class=\"hljs-string\">&quot;synapse&quot;</span>, <span class=\"hljs-string\">&quot;docs&quot;</span>, <span class=\"hljs-string\">&quot;synapse-parent&quot;</span>], priority=<span class=\"hljs-string\">&quot;high&quot;</span>)\n\n<span class=\"hljs-comment\"># Specific task (tags link to sub-project)</span>\nstore(<span class=\"hljs-string\">&quot;project&quot;</span>, <span class=\"hljs-string\">&quot;task_docs_loader&quot;</span>, <span class=\"hljs-string\">&quot;Implement docs-loader.ts&quot;</span>,\n      tags=[<span class=\"hljs-string\">&quot;synapse&quot;</span>, <span class=\"hljs-string\">&quot;docs&quot;</span>, <span class=\"hljs-string\">&quot;task&quot;</span>], priority=<span class=\"hljs-string\">&quot;normal&quot;</span>)</code></pre><p>फिर LLM सभी संबंधित मेमोरीज़ खोजने के लिए <code>q=synapse+docs</code> सर्च कर सकता है।</p>\n<h2>पैटर्न: निर्णय लॉग</h2>\n<p>तर्क के साथ निर्णय स्टोर करें ताकि LLM उन्हें पुनः विवादित न करे:</p>\n<pre><code class=\"hljs language-python\">store(<span class=\"hljs-string\">&quot;fact&quot;</span>, <span class=\"hljs-string\">&quot;decision_postgres_over_sqlite&quot;</span>,\n      <span class=\"hljs-string\">&quot;Chose PostgreSQL over SQLite for production. Reason: concurrent writes, &quot;</span>\n      <span class=\"hljs-string\">&quot;FTS5 native support, better backup story. Date: 2026-06-15. Decided by: Michael.&quot;</span>,\n      tags=[<span class=\"hljs-string\">&quot;decision&quot;</span>, <span class=\"hljs-string\">&quot;database&quot;</span>, <span class=\"hljs-string\">&quot;postgres&quot;</span>, <span class=\"hljs-string\">&quot;sqlite&quot;</span>],\n      priority=<span class=\"hljs-string\">&quot;high&quot;</span>)</code></pre><h2>पैटर्न: गलती से बचाव</h2>\n<p>विशिष्ट बचाव निर्देशों के साथ गलतियाँ स्टोर करें:</p>\n<pre><code class=\"hljs language-python\">store(<span class=\"hljs-string\">&quot;mistake&quot;</span>, <span class=\"hljs-string\">&quot;mistake_forget_version_bump&quot;</span>,\n      <span class=\"hljs-string\">&quot;Forgot to bump package.json version after changes. npm publish failed. &quot;</span>\n      <span class=\"hljs-string\">&quot;FIX: Always run `npm version patch` before pushing. &quot;</span>\n      <span class=\"hljs-string\">&quot;CI fails with &#x27;version already exists&#x27; if you forget.&quot;</span>,\n      tags=[<span class=\"hljs-string\">&quot;npm&quot;</span>, <span class=\"hljs-string\">&quot;ci&quot;</span>, <span class=\"hljs-string\">&quot;publish&quot;</span>, <span class=\"hljs-string\">&quot;version&quot;</span>],\n      priority=<span class=\"hljs-string\">&quot;high&quot;</span>)</code></pre><h2>बचने योग्य एंटी-पैटर्न</h2>\n<div class=\"callout callout-warn\"></div><h2>अगले कदम</h2>\n<ul>\n<li><a href=\"/docs/api/memory\">Memory API</a></li>\n<li><a href=\"/docs/guides/persistent-llm-agent\">Persistent LLM Agent</a></li>\n<li><a href=\"/docs/llm-cookbook/memory-tagging-strategy\">Memory Tagging Strategy</a></li>\n</ul>\n","urls":{"html":"/docs/guides/memory-best-practices","text":"/docs/guides/memory-best-practices?format=text","json":"/docs/guides/memory-best-practices?format=json","llm":"/docs/guides/memory-best-practices?format=llm"},"translations_available":["en","zh","hi","es","fr","ar","pt","ru","ja","de","it","ko","nl","pl","tr","sv","vi","th","id","uk"]}