{"title":"Bellek En İyi Uygulamaları","slug":"memory-best-practices","category":"guides","summary":"Etkili geri çağırma için bellekleri nasıl yapılandırırsınız — kategoriler, anahtarlar, etiketler, öncelikler.","audience":["human","llm"],"tags":["guide","memory","best-practices","patterns"],"difficulty":"intermediate","updated":"2026-06-27","word_count":581,"read_minutes":3,"lang":"tr","translated":true,"requested_lang":"tr","content_markdown":"\n# Bellek En İyi Uygulamaları\n\nBellekleri nasıl yapılandırdığınız ne kadar yararlı olduklarını belirler. Bu rehber, LLM'in doğru zamanda doğru bilgiyi geri çağırabilmesi için kategorize etme, etiketleme ve önceliklendirme desenlerini kapsar.\n\n## Kategoriler: En Spesifiği Seçin\n\n| Kategori | Kullanım | Örnek |\n|----------|---------|---------|\n| `identity` | Kullanıcı adı, rol, iletişim bilgisi | `\"user_name\": \"Michael Schäfer\"` |\n| `preference` | Beğeniler, beğenmemeler, çalışma tarzı | `\"communication\": \"Prefers concise responses\"` |\n| `fact` | Doğrulanabilir bilgiler | `\"office_location\": \"Berlin, Germany\"` |\n| `project` | Proje durumu, kararlar | `\"project_synapse\": \"v1.5.0 deployed\"` |\n| `skill` | Kullanıcının becerileri | `\"skill_python\": \"Advanced, 10+ years\"` |\n| `mistake` | Kaçınılacak geçmiş hatalar | `\"mistake_npm_version\": \"Always bump version\"` |\n| `context` | Oturumla ilgili bağlam | `\"current_focus\": \"Working on docs system\"` |\n| `note` | Çeşitli notlar | `\"note_idea\": \"Try Redis for caching\"` |\n\n> [!TIP]\n> Şüphede kaldığınızda, doğrulanabilir bilgiler için `fact`, diğer her şey için `note` kullanın. Aşırı kategorize etmeyin — kafa karıştırıcı bir `context`'ten daha iyi net bir `fact`.\n\n## Anahtarlar: Anlamlı Tanımlayıcılar\n\n`key` alanı belleğin tanımlayıcısıdır. Anlamlı, kararlı anahtarlar kullanın:\n\n**İyi anahtarlar:**\n- `user_name`\n- `project_synapse_status`\n- `preference_communication_style`\n- `mistake_npm_version_bump`\n\n**Kötü anahtarlar:**\n- `mem_001` (anlamlı değil)\n- `temp` (tanımlayıcı değil)\n- `2026-06-27-note` (tarih geri çağırmaya yardımcı olmaz)\n\n### Anahtar adlandırma kuralları\n\n- `snake_case` (alt çizgili küçük harf)\n- Kategori ile önekleyin: `preference_*`, `project_*`, `mistake_*`\n- Fiil değil, tanımlayıcı isim kullanın\n- 50 karakterin altında tutun\n\n## Etiketler: Arama ve Filtreleme İçin\n\nEtiketler hızlı filtreleme ve arama sağlar. Bellek başına 2-5 etiket ekleyin:\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### Etiket desenleri\n\n- **Proje adları**: `synapse`, `synapse-mcp`, `synapse-chat`\n- **Konular**: `deployment`, `ci`, `database`, `auth`\n- **Durum**: `active`, `completed`, `blocked`\n- **Öncelik göstergeleri**: `urgent`, `long-term`\n\n> [!NOTE]\n> Etiketler büyük/küçük harf duyarsızdır. Tutarlılık için küçük harf kullanın.\n\n## Öncelikler: Gerçekçi Olun\n\n| Öncelik | Kullanım | Belleklerin %'si |\n|----------|---------|---------------|\n| `critical` | Kullanıcı kimliği, yasal bilgiler, geri alınamaz kararlar | ~5% |\n| `high` | Aktif projeler, önemli tercihler | ~20% |\n| `normal` | Çoğu bilgi, not, bağlam | ~65% |\n| `low` | Geçici, bilmek güzel | ~10% |\n\n> [!WARNING]\n> Her şeyi `critical` olarak işaretlemeyin. Her şey kritikse, hiçbir şey kritik değildir. `critical`'ı unutulursa gerçek zarara yol açacak şeyler için ayırın.\n\n## Ne Zaman Saklama, Ne Zaman Saklamama\n\n### Her zaman sakla\n\n- Kullanıcı kimliği (ad, e-posta, rol)\n- Uzun vadeli tercihler\n- Proje kararları ve gerekçeler\n- Geçmiş hatalar ve alınan dersler\n- Kullanıcıya verilen taahütler\n\n### Saklama\n\n- Geçici durum (bunun yerine değişkenler kullanın)\n- Birebir sohbet geçmişi (sohbet sistemi bunu ele alır)\n- Hassas veriler (parolalar, API anahtarları)\n- Kolayca türetilebilir bilgiler (mevcut tarih, dosya içerikleri)\n- Geçici bağlam (düşük öncelikli `context` kategorisini kullanın)\n\n## Bellekleri Güncelleme\n\nAynı `category` + `key` ile `POST /memory` mevcut belleği günceller:\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> Yinelenen oluşturmadan güncelleyebilmeniz için kararlı anahtarlar kullanın. LLM, bilgiler değiştikçe yeni bellekler oluşturmak yerine aynı anahtarı yeniden POST yapmalıdır.\n\n## Bellek Yaşam Döngüsü\n\n```\nCreate → Active → Stale → Archive → Delete\n```\n\n- **Create**: Tam bağlamla POST /memory\n- **Active**: Sık geri çağır, gerektiğinde güncelle\n- **Stale**: Hala ilgili ama aktif kullanılmıyor (düşük öncelik?)\n- **Archive**: Önceliği `low` yap, tarihsel referans için tut\n- **Delete**: Artık ilgili değilse DELETE /memory/:id\n\n### Periyodik temizlik\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## Desen: Bellek Kalıtımı\n\nHiyerarşik bağlam için (proje → alt proje → görev):\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\nLLM daha sonra `q=synapse+docs` arayarak tüm ilgili bellekleri bulabilir.\n\n## Desen: Karar Günlüğü\n\nKararları gerekçeleriyle saklayın, böylece LLM onları yeniden tartışmaz:\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## Desen: Hata Önleme\n\nHataları özel önleme talimatlarıyla saklayı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## Kaçınılacak Anti-Desenler\n\n> [!WARNING]\n> - **Sohbet günlüklerini saklama** — sohbet sistemi bunu ele alır\n> - **Tam dosyaları saklama** — betik deposu veya harici depolama kullanın\n> - **Geçici durumu saklama** — değişkenler kullanın\n> - **Gizli bilgileri saklama** — ortam değişkenleri kullanın\n> - **Bellekleri çoğaltma** — kararlı anahtarlar kullanın\n> - **Aşırı etiketleme** — bellek başına 2-5 etiket idealdir\n> - **Her şey kritik** — önceliklerde gerçekçi olun\n\n## Sonraki Adımlar\n\n- [Memory API](/docs/api/memory)\n- [Kalıcı LLM Ajanı](/docs/guides/persistent-llm-agent)\n- [Bellek Etiketleme Stratejisi](/docs/llm-cookbook/memory-tagging-strategy)\n","content_html":"<h1>Bellek En İyi Uygulamaları</h1>\n<p>Bellekleri nasıl yapılandırdığınız ne kadar yararlı olduklarını belirler. Bu rehber, LLM&#39;in doğru zamanda doğru bilgiyi geri çağırabilmesi için kategorize etme, etiketleme ve önceliklendirme desenlerini kapsar.</p>\n<h2>Kategoriler: En Spesifiği Seçin</h2>\n<table>\n<thead>\n<tr>\n<th>Kategori</th>\n<th>Kullanım</th>\n<th>Örnek</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>identity</code></td>\n<td>Kullanıcı adı, rol, iletişim bilgisi</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>Beğeniler, beğenmemeler, çalışma tarzı</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>Doğrulanabilir bilgiler</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>Proje durumu, kararlar</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>Kullanıcının becerileri</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>Kaçınılacak geçmiş hatalar</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>Oturumla ilgili bağlam</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>Çeşitli notlar</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\">Şüphede kaldığınızda, doğrulanabilir bilgiler için `fact`, diğer her şey için `note` kullanın. Aşırı kategorize etmeyin — kafa karıştırıcı bir `context`'ten daha iyi net bir `fact`.</div><h2>Anahtarlar: Anlamlı Tanımlayıcılar</h2>\n<p><code>key</code> alanı belleğin tanımlayıcısıdır. Anlamlı, kararlı anahtarlar kullanın:</p>\n<p><strong>İyi anahtarlar:</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>Kötü anahtarlar:</strong></p>\n<ul>\n<li><code>mem_001</code> (anlamlı değil)</li>\n<li><code>temp</code> (tanımlayıcı değil)</li>\n<li><code>2026-06-27-note</code> (tarih geri çağırmaya yardımcı olmaz)</li>\n</ul>\n<h3>Anahtar adlandırma kuralları</h3>\n<ul>\n<li><code>snake_case</code> (alt çizgili küçük harf)</li>\n<li>Kategori ile önekleyin: <code>preference_*</code>, <code>project_*</code>, <code>mistake_*</code></li>\n<li>Fiil değil, tanımlayıcı isim kullanın</li>\n<li>50 karakterin altında tutun</li>\n</ul>\n<h2>Etiketler: Arama ve Filtreleme İçin</h2>\n<p>Etiketler hızlı filtreleme ve arama sağlar. Bellek başına 2-5 etiket ekleyin:</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>Etiket desenleri</h3>\n<ul>\n<li><strong>Proje adları</strong>: <code>synapse</code>, <code>synapse-mcp</code>, <code>synapse-chat</code></li>\n<li><strong>Konular</strong>: <code>deployment</code>, <code>ci</code>, <code>database</code>, <code>auth</code></li>\n<li><strong>Durum</strong>: <code>active</code>, <code>completed</code>, <code>blocked</code></li>\n<li><strong>Öncelik göstergeleri</strong>: <code>urgent</code>, <code>long-term</code></li>\n</ul>\n<div class=\"callout callout-note\">Etiketler büyük/küçük harf duyarsızdır. Tutarlılık için küçük harf kullanın.</div><h2>Öncelikler: Gerçekçi Olun</h2>\n<table>\n<thead>\n<tr>\n<th>Öncelik</th>\n<th>Kullanım</th>\n<th>Belleklerin %&#39;si</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>critical</code></td>\n<td>Kullanıcı kimliği, yasal bilgiler, geri alınamaz kararlar</td>\n<td>~5%</td>\n</tr>\n<tr>\n<td><code>high</code></td>\n<td>Aktif projeler, önemli tercihler</td>\n<td>~20%</td>\n</tr>\n<tr>\n<td><code>normal</code></td>\n<td>Çoğu bilgi, not, bağlam</td>\n<td>~65%</td>\n</tr>\n<tr>\n<td><code>low</code></td>\n<td>Geçici, bilmek güzel</td>\n<td>~10%</td>\n</tr>\n</tbody></table>\n<div class=\"callout callout-warn\">Her şeyi `critical` olarak işaretlemeyin. Her şey kritikse, hiçbir şey kritik değildir. `critical`'ı unutulursa gerçek zarara yol açacak şeyler için ayırın.</div><h2>Ne Zaman Saklama, Ne Zaman Saklamama</h2>\n<h3>Her zaman sakla</h3>\n<ul>\n<li>Kullanıcı kimliği (ad, e-posta, rol)</li>\n<li>Uzun vadeli tercihler</li>\n<li>Proje kararları ve gerekçeler</li>\n<li>Geçmiş hatalar ve alınan dersler</li>\n<li>Kullanıcıya verilen taahütler</li>\n</ul>\n<h3>Saklama</h3>\n<ul>\n<li>Geçici durum (bunun yerine değişkenler kullanın)</li>\n<li>Birebir sohbet geçmişi (sohbet sistemi bunu ele alır)</li>\n<li>Hassas veriler (parolalar, API anahtarları)</li>\n<li>Kolayca türetilebilir bilgiler (mevcut tarih, dosya içerikleri)</li>\n<li>Geçici bağlam (düşük öncelikli <code>context</code> kategorisini kullanın)</li>\n</ul>\n<h2>Bellekleri Güncelleme</h2>\n<p>Aynı <code>category</code> + <code>key</code> ile <code>POST /memory</code> mevcut belleği günceller:</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\">Yinelenen oluşturmadan güncelleyebilmeniz için kararlı anahtarlar kullanın. LLM, bilgiler değiştikçe yeni bellekler oluşturmak yerine aynı anahtarı yeniden POST yapmalıdır.</div><h2>Bellek Yaşam Döngüsü</h2>\n<pre><code class=\"hljs language-plaintext\">Create → Active → Stale → Archive → Delete</code></pre><ul>\n<li><strong>Create</strong>: Tam bağlamla POST /memory</li>\n<li><strong>Active</strong>: Sık geri çağır, gerektiğinde güncelle</li>\n<li><strong>Stale</strong>: Hala ilgili ama aktif kullanılmıyor (düşük öncelik?)</li>\n<li><strong>Archive</strong>: Önceliği <code>low</code> yap, tarihsel referans için tut</li>\n<li><strong>Delete</strong>: Artık ilgili değilse DELETE /memory/:id</li>\n</ul>\n<h3>Periyodik temizlik</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>Desen: Bellek Kalıtımı</h2>\n<p>Hiyerarşik bağlam için (proje → alt proje → görev):</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 daha sonra <code>q=synapse+docs</code> arayarak tüm ilgili bellekleri bulabilir.</p>\n<h2>Desen: Karar Günlüğü</h2>\n<p>Kararları gerekçeleriyle saklayın, böylece LLM onları yeniden tartışmaz:</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>Desen: Hata Önleme</h2>\n<p>Hataları özel önleme talimatlarıyla saklayın:</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>Kaçınılacak Anti-Desenler</h2>\n<div class=\"callout callout-warn\"></div><h2>Sonraki Adımlar</h2>\n<ul>\n<li><a href=\"/docs/api/memory\">Memory API</a></li>\n<li><a href=\"/docs/guides/persistent-llm-agent\">Kalıcı LLM Ajanı</a></li>\n<li><a href=\"/docs/llm-cookbook/memory-tagging-strategy\">Bellek Etiketleme Stratejisi</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"]}