{"title":"กลยุทธ์การ Tag Memory","slug":"memory-tagging-strategy","category":"llm-cookbook","summary":"วิธี tag memory เพื่อการค้นหาและกรองที่มีประสิทธิภาพ — ระบบ tagging ที่ scale ได้","audience":["llm"],"tags":["cookbook","tagging","memory","strategy"],"difficulty":"intermediate","updated":"2026-06-27","word_count":251,"read_minutes":1,"lang":"th","translated":true,"requested_lang":"th","content_markdown":"\n# กลยุทธ์การ Tag Memory\n\ntag เป็นความลับของการดึง memory ที่ scale ได้ คู่มือนี้แสดงวิธี tag memory เพื่อให้ตัวที่ถูกต้องกลับมาในเวลาที่เหมาะสม\n\n## ทำไม tag ถึงสำคัญ\n\nไม่มี tag คุณมีแค่ full-text search แบบ flat มี tag คุณมีการนำทางที่มีโครงสร้าง:\n\n```bash\n# Without tags: search everything\nGET /memory/search?q=docker\n\n# With tags: filter by project + technology\nGET /memory/search?q=deployment&tag=synapse&tag=docker\n```\n\ntag เปิดใช้งาน:\n\n- **การกรองที่รวดเร็ว** — `GET /memory/by-tag?tag=production`\n- **Scoped search** — `?q=auth&tag=project-x`\n- **การจัดกลุ่ม** — หา memory \"mistake\" ทั้งหมดของโปรเจกต์\n- **การอ้างอิงข้าม** — memory ที่แชร์ tag เกี่ยวข้องกัน\n\n## Schema Tagging\n\n### Project tag\n\nใช้ชื่อโปรเจกต์เป็น tag:\n\n```\nsynapse, synapse-mcp, synapse-chat, synapse-sdk\n```\n\n### Technology tag\n\nใช้ชื่อเทคโนโลยี:\n\n```\ndocker, kubernetes, postgres, fastify, react, typescript\n```\n\n### Topic tag\n\nใช้หมวดหมู่หัวข้อ:\n\n```\ndeployment, ci-cd, auth, database, frontend, backend, security\n```\n\n### Status tag\n\nใช้ตัวบ่งชี้สถานะ:\n\n```\nactive, completed, blocked, deprecated\n```\n\n### Type tag\n\nใช้ตัวบ่งชี้ประเภท:\n\n```\ndecision, mistake, pattern, reference, todo\n```\n\n## กฎการ Tag\n\n### กฎ 1: 2-5 tag ต่อ memory\n\ntag น้อยเกินไป = ความสามารถในการค้นพบต่ำ tag มากเกินไป = noise\n\n```json\n// Good: 3 relevant tags\n{ \"tags\": [\"synapse\", \"deployment\", \"docker\"] }\n\n// Bad: 1 tag (too narrow)\n{ \"tags\": [\"synapse\"] }\n\n// Bad: 10 tags (noise)\n{ \"tags\": [\"synapse\", \"deployment\", \"docker\", \"vps1\", \"2026\", \"june\", \"ssh\", \"git\", \"main\", \"production\"] }\n```\n\n### กฎ 2: ตัวพิมพ์เล็ก, ใช้ hyphen\n\n```\n✅ ci-cd, api-key, mind-key\n❌ CI-CD, APIKey, MindKey\n```\n\n### กฎ 3: ใช้คำศัพท์ที่สม่ำเสมอ\n\nกำหนดคำศัพท์ tagging และยึดติดกับมัน:\n\n```\n# Project vocabulary\nsynapse, synapse-mcp, synapse-chat\n\n# NOT: synapse_project, synapseProject, SYNAPSE\n```\n\n### กฎ 4: Tag ด้วยเจตนาการค้นหา\n\nถาม: \"ฉันจะค้นหา memory นี้อย่างไร?\"\n\n```json\n// Storing a deployment decision\n{\n  \"content\": \"Decided to use Docker Swarm for Synapse deployment\",\n  \"tags\": [\"synapse\", \"deployment\", \"docker\", \"swarm\", \"decision\"]\n}\n\n// You'll likely search: ?q=docker+swarm or ?tag=deployment\n```\n\n## รูปแบบ\n\n### รูปแบบ 1: Project + Topic\n\n```json\n{ \"tags\": [\"synapse\", \"deployment\"] }\n{ \"tags\": [\"synapse\", \"auth\"] }\n{ \"tags\": [\"synapse-mcp\", \"tools\"] }\n```\n\nSearch: `?tag=synapse` (memory โปรเจกต์ Synapse ทั้งหมด)\nSearch: `?tag=synapse&q=deployment` (memory deployment ใน Synapse)\n\n### รูปแบบ 2: Type + Domain\n\n```json\n{ \"tags\": [\"mistake\", \"deployment\"] }\n{ \"tags\": [\"decision\", \"database\"] }\n{ \"tags\": [\"pattern\", \"auth\"] }\n```\n\nSearch: `?tag=mistake` (mistake ทั้งหมด)\nSearch: `?tag=mistake&q=deployment` (mistake deployment)\n\n### รูปแบบ 3: ลำดับชั้น\n\nสำหรับโปรเจกต์ย่อยในโปรเจกต์:\n\n```json\n{ \"tags\": [\"synapse\", \"synapse-docs\", \"markdown\"] }\n{ \"tags\": [\"synapse\", \"synapse-mcp\", \"mcp\"] }\n{ \"tags\": [\"synapse\", \"synapse-admin\", \"ui\"] }\n```\n\nSearch: `?tag=synapse` (Synapse ทั้งหมด)\nSearch: `?tag=synapse-docs` (เฉพาะโปรเจกต์ย่อย docs)\n\n### รูปแบบ 4: ติดตามสถานะ\n\n```json\n// Active project\n{ \"tags\": [\"synapse\", \"active\"], \"priority\": \"high\" }\n\n// Completed project\n{ \"tags\": [\"synapse-v1\", \"completed\"], \"priority\": \"low\" }\n\n// Blocked\n{ \"tags\": [\"synapse-v2\", \"blocked\"], \"priority\": \"high\" }\n```\n\n## กรณีใช้งานทั่วไป\n\n### หาการตัดสินใจทั้งหมดเกี่ยวกับโปรเจกต์\n\n```bash\ncurl -H \"Authorization: Bearer $KEY\" \\\n     \".../memory/search?q=decision&tag=synapse\"\n```\n\n### หา mistake ทั้งหมดใน domain\n\n```bash\ncurl -H \"Authorization: Bearer $KEY\" \\\n     \".../memory/search?q=mistake&tag=deployment\"\n```\n\n### หางานที่ active\n\n```bash\ncurl -H \"Authorization: Bearer $KEY\" \\\n     \".../memory/by-tag?tag=active\"\n```\n\n### หา memory เกี่ยวกับเทคโนโลยี\n\n```bash\ncurl -H \"Authorization: Bearer $KEY\" \\\n     \".../memory/search?q=postgres+performance&tag=database\"\n```\n\n## การบำรุงรักษา tag\n\n### ตรวจสอบเป็นคาบ\n\n```python\n# Find rarely-used tags (candidates for cleanup)\ntags = requests.get(f\"{URL}/memory/tags\",\n    headers={\"Authorization\": f\"Bearer {KEY}\"}).json()\n\nfor tag, count in tags.items():\n    if count < 2:\n        print(f\"Rare tag: {tag} ({count} memories)\")\n```\n\n### การรวม tag\n\nหากคุณมี tag ไม่สม่ำเสมอ (`docker` และ `Docker`) ให้รวม:\n\n```python\n# Find all memories with \"Docker\" tag\nmems = requests.get(f\"{URL}/memory/by-tag?tag=Docker\",\n    headers={\"Authorization\": f\"Bearer {KEY}\"}).json()\n\n# Update each to use \"docker\" instead\nfor mem in mems[\"results\"]:\n    tags = [t.lower() for t in mem[\"tags\"]]\n    update_memory(mem[\"id\"], tags=list(set(tags)))\n```\n\n## แนวทางปฏิบัติที่ดีที่สุด\n\n> [!TIP]\n> - **กำหนดคำศัพท์ตั้งแต่เริ่ม** — tag สม่ำเสมอตั้งแต่วันแรก\n> - **Tag ด้วยเจตนาการค้นหา** — คุณจะหาสิ่งนี้อย่างไรในภายหลัง?\n> - **2-5 tag เป็นจุดที่เหมาะ** — น้อยหรือมากเกินไปไม่ดี\n> - **ตัวพิมพ์เล็ก + hyphen** — `ci-cd` ไม่ใช่ `CI/CD`\n> - **ตรวจสอบเป็นคาบ** — รวมซ้ำ, ลบที่ไม่ใช้\n\n## ขั้นตอนถัดไป\n\n- [Memory Best Practices](/docs/guides/memory-best-practices)\n- [FTS5 Search](/docs/concepts/fts5-search)\n- [Task-Driven Workflow](/docs/llm-cookbook/task-driven-workflow)\n","content_html":"<h1>กลยุทธ์การ Tag Memory</h1>\n<p>tag เป็นความลับของการดึง memory ที่ scale ได้ คู่มือนี้แสดงวิธี tag memory เพื่อให้ตัวที่ถูกต้องกลับมาในเวลาที่เหมาะสม</p>\n<h2>ทำไม tag ถึงสำคัญ</h2>\n<p>ไม่มี tag คุณมีแค่ full-text search แบบ flat มี tag คุณมีการนำทางที่มีโครงสร้าง:</p>\n<pre><code class=\"hljs language-bash\"><span class=\"hljs-comment\"># Without tags: search everything</span>\nGET /memory/search?q=docker\n\n<span class=\"hljs-comment\"># With tags: filter by project + technology</span>\nGET /memory/search?q=deployment&amp;tag=synapse&amp;tag=docker</code></pre><p>tag เปิดใช้งาน:</p>\n<ul>\n<li><strong>การกรองที่รวดเร็ว</strong> — <code>GET /memory/by-tag?tag=production</code></li>\n<li><strong>Scoped search</strong> — <code>?q=auth&amp;tag=project-x</code></li>\n<li><strong>การจัดกลุ่ม</strong> — หา memory &quot;mistake&quot; ทั้งหมดของโปรเจกต์</li>\n<li><strong>การอ้างอิงข้าม</strong> — memory ที่แชร์ tag เกี่ยวข้องกัน</li>\n</ul>\n<h2>Schema Tagging</h2>\n<h3>Project tag</h3>\n<p>ใช้ชื่อโปรเจกต์เป็น tag:</p>\n<pre><code class=\"hljs language-plaintext\">synapse, synapse-mcp, synapse-chat, synapse-sdk</code></pre><h3>Technology tag</h3>\n<p>ใช้ชื่อเทคโนโลยี:</p>\n<pre><code class=\"hljs language-plaintext\">docker, kubernetes, postgres, fastify, react, typescript</code></pre><h3>Topic tag</h3>\n<p>ใช้หมวดหมู่หัวข้อ:</p>\n<pre><code class=\"hljs language-plaintext\">deployment, ci-cd, auth, database, frontend, backend, security</code></pre><h3>Status tag</h3>\n<p>ใช้ตัวบ่งชี้สถานะ:</p>\n<pre><code class=\"hljs language-plaintext\">active, completed, blocked, deprecated</code></pre><h3>Type tag</h3>\n<p>ใช้ตัวบ่งชี้ประเภท:</p>\n<pre><code class=\"hljs language-plaintext\">decision, mistake, pattern, reference, todo</code></pre><h2>กฎการ Tag</h2>\n<h3>กฎ 1: 2-5 tag ต่อ memory</h3>\n<p>tag น้อยเกินไป = ความสามารถในการค้นพบต่ำ tag มากเกินไป = noise</p>\n<pre><code class=\"hljs language-json\"><span class=\"hljs-comment\">// Good: 3 relevant tags</span>\n<span class=\"hljs-punctuation\">{</span> <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;docker&quot;</span><span class=\"hljs-punctuation\">]</span> <span class=\"hljs-punctuation\">}</span>\n\n<span class=\"hljs-comment\">// Bad: 1 tag (too narrow)</span>\n<span class=\"hljs-punctuation\">{</span> <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-punctuation\">}</span>\n\n<span class=\"hljs-comment\">// Bad: 10 tags (noise)</span>\n<span class=\"hljs-punctuation\">{</span> <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;docker&quot;</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-string\">&quot;vps1&quot;</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-string\">&quot;2026&quot;</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-string\">&quot;june&quot;</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-string\">&quot;ssh&quot;</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-string\">&quot;git&quot;</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-string\">&quot;main&quot;</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-string\">&quot;production&quot;</span><span class=\"hljs-punctuation\">]</span> <span class=\"hljs-punctuation\">}</span></code></pre><h3>กฎ 2: ตัวพิมพ์เล็ก, ใช้ hyphen</h3>\n<pre><code class=\"hljs language-plaintext\">✅ ci-cd, api-key, mind-key\n❌ CI-CD, APIKey, MindKey</code></pre><h3>กฎ 3: ใช้คำศัพท์ที่สม่ำเสมอ</h3>\n<p>กำหนดคำศัพท์ tagging และยึดติดกับมัน:</p>\n<pre><code class=\"hljs language-plaintext\"># Project vocabulary\nsynapse, synapse-mcp, synapse-chat\n\n# NOT: synapse_project, synapseProject, SYNAPSE</code></pre><h3>กฎ 4: Tag ด้วยเจตนาการค้นหา</h3>\n<p>ถาม: &quot;ฉันจะค้นหา memory นี้อย่างไร?&quot;</p>\n<pre><code class=\"hljs language-json\"><span class=\"hljs-comment\">// Storing a deployment decision</span>\n<span class=\"hljs-punctuation\">{</span>\n  <span class=\"hljs-attr\">&quot;content&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;Decided to use Docker Swarm for Synapse deployment&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;docker&quot;</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-string\">&quot;swarm&quot;</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-string\">&quot;decision&quot;</span><span class=\"hljs-punctuation\">]</span>\n<span class=\"hljs-punctuation\">}</span>\n\n<span class=\"hljs-comment\">// You&#x27;ll likely search: ?q=docker+swarm or ?tag=deployment</span></code></pre><h2>รูปแบบ</h2>\n<h3>รูปแบบ 1: Project + Topic</h3>\n<pre><code class=\"hljs language-json\"><span class=\"hljs-punctuation\">{</span> <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-punctuation\">}</span>\n<span class=\"hljs-punctuation\">{</span> <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;auth&quot;</span><span class=\"hljs-punctuation\">]</span> <span class=\"hljs-punctuation\">}</span>\n<span class=\"hljs-punctuation\">{</span> <span class=\"hljs-attr\">&quot;tags&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-punctuation\">[</span><span class=\"hljs-string\">&quot;synapse-mcp&quot;</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-string\">&quot;tools&quot;</span><span class=\"hljs-punctuation\">]</span> <span class=\"hljs-punctuation\">}</span></code></pre><p>Search: <code>?tag=synapse</code> (memory โปรเจกต์ Synapse ทั้งหมด)\nSearch: <code>?tag=synapse&amp;q=deployment</code> (memory deployment ใน Synapse)</p>\n<h3>รูปแบบ 2: Type + Domain</h3>\n<pre><code class=\"hljs language-json\"><span class=\"hljs-punctuation\">{</span> <span class=\"hljs-attr\">&quot;tags&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-punctuation\">[</span><span class=\"hljs-string\">&quot;mistake&quot;</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-string\">&quot;deployment&quot;</span><span class=\"hljs-punctuation\">]</span> <span class=\"hljs-punctuation\">}</span>\n<span class=\"hljs-punctuation\">{</span> <span class=\"hljs-attr\">&quot;tags&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-punctuation\">[</span><span class=\"hljs-string\">&quot;decision&quot;</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-string\">&quot;database&quot;</span><span class=\"hljs-punctuation\">]</span> <span class=\"hljs-punctuation\">}</span>\n<span class=\"hljs-punctuation\">{</span> <span class=\"hljs-attr\">&quot;tags&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-punctuation\">[</span><span class=\"hljs-string\">&quot;pattern&quot;</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-string\">&quot;auth&quot;</span><span class=\"hljs-punctuation\">]</span> <span class=\"hljs-punctuation\">}</span></code></pre><p>Search: <code>?tag=mistake</code> (mistake ทั้งหมด)\nSearch: <code>?tag=mistake&amp;q=deployment</code> (mistake deployment)</p>\n<h3>รูปแบบ 3: ลำดับชั้น</h3>\n<p>สำหรับโปรเจกต์ย่อยในโปรเจกต์:</p>\n<pre><code class=\"hljs language-json\"><span class=\"hljs-punctuation\">{</span> <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;synapse-docs&quot;</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-string\">&quot;markdown&quot;</span><span class=\"hljs-punctuation\">]</span> <span class=\"hljs-punctuation\">}</span>\n<span class=\"hljs-punctuation\">{</span> <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;synapse-mcp&quot;</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-string\">&quot;mcp&quot;</span><span class=\"hljs-punctuation\">]</span> <span class=\"hljs-punctuation\">}</span>\n<span class=\"hljs-punctuation\">{</span> <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;synapse-admin&quot;</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-string\">&quot;ui&quot;</span><span class=\"hljs-punctuation\">]</span> <span class=\"hljs-punctuation\">}</span></code></pre><p>Search: <code>?tag=synapse</code> (Synapse ทั้งหมด)\nSearch: <code>?tag=synapse-docs</code> (เฉพาะโปรเจกต์ย่อย docs)</p>\n<h3>รูปแบบ 4: ติดตามสถานะ</h3>\n<pre><code class=\"hljs language-json\"><span class=\"hljs-comment\">// Active project</span>\n<span class=\"hljs-punctuation\">{</span> <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;active&quot;</span><span class=\"hljs-punctuation\">]</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-attr\">&quot;priority&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;high&quot;</span> <span class=\"hljs-punctuation\">}</span>\n\n<span class=\"hljs-comment\">// Completed project</span>\n<span class=\"hljs-punctuation\">{</span> <span class=\"hljs-attr\">&quot;tags&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-punctuation\">[</span><span class=\"hljs-string\">&quot;synapse-v1&quot;</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-string\">&quot;completed&quot;</span><span class=\"hljs-punctuation\">]</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-attr\">&quot;priority&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;low&quot;</span> <span class=\"hljs-punctuation\">}</span>\n\n<span class=\"hljs-comment\">// Blocked</span>\n<span class=\"hljs-punctuation\">{</span> <span class=\"hljs-attr\">&quot;tags&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-punctuation\">[</span><span class=\"hljs-string\">&quot;synapse-v2&quot;</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-string\">&quot;blocked&quot;</span><span class=\"hljs-punctuation\">]</span><span class=\"hljs-punctuation\">,</span> <span class=\"hljs-attr\">&quot;priority&quot;</span><span class=\"hljs-punctuation\">:</span> <span class=\"hljs-string\">&quot;high&quot;</span> <span class=\"hljs-punctuation\">}</span></code></pre><h2>กรณีใช้งานทั่วไป</h2>\n<h3>หาการตัดสินใจทั้งหมดเกี่ยวกับโปรเจกต์</h3>\n<pre><code class=\"hljs language-bash\">curl -H <span class=\"hljs-string\">&quot;Authorization: Bearer <span class=\"hljs-variable\">$KEY</span>&quot;</span> \\\n     <span class=\"hljs-string\">&quot;.../memory/search?q=decision&amp;tag=synapse&quot;</span></code></pre><h3>หา mistake ทั้งหมดใน domain</h3>\n<pre><code class=\"hljs language-bash\">curl -H <span class=\"hljs-string\">&quot;Authorization: Bearer <span class=\"hljs-variable\">$KEY</span>&quot;</span> \\\n     <span class=\"hljs-string\">&quot;.../memory/search?q=mistake&amp;tag=deployment&quot;</span></code></pre><h3>หางานที่ active</h3>\n<pre><code class=\"hljs language-bash\">curl -H <span class=\"hljs-string\">&quot;Authorization: Bearer <span class=\"hljs-variable\">$KEY</span>&quot;</span> \\\n     <span class=\"hljs-string\">&quot;.../memory/by-tag?tag=active&quot;</span></code></pre><h3>หา memory เกี่ยวกับเทคโนโลยี</h3>\n<pre><code class=\"hljs language-bash\">curl -H <span class=\"hljs-string\">&quot;Authorization: Bearer <span class=\"hljs-variable\">$KEY</span>&quot;</span> \\\n     <span class=\"hljs-string\">&quot;.../memory/search?q=postgres+performance&amp;tag=database&quot;</span></code></pre><h2>การบำรุงรักษา tag</h2>\n<h3>ตรวจสอบเป็นคาบ</h3>\n<pre><code class=\"hljs language-python\"><span class=\"hljs-comment\"># Find rarely-used tags (candidates for cleanup)</span>\ntags = requests.get(<span class=\"hljs-string\">f&quot;<span class=\"hljs-subst\">{URL}</span>/memory/tags&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>}).json()\n\n<span class=\"hljs-keyword\">for</span> tag, count <span class=\"hljs-keyword\">in</span> tags.items():\n    <span class=\"hljs-keyword\">if</span> count &lt; <span class=\"hljs-number\">2</span>:\n        <span class=\"hljs-built_in\">print</span>(<span class=\"hljs-string\">f&quot;Rare tag: <span class=\"hljs-subst\">{tag}</span> (<span class=\"hljs-subst\">{count}</span> memories)&quot;</span>)</code></pre><h3>การรวม tag</h3>\n<p>หากคุณมี tag ไม่สม่ำเสมอ (<code>docker</code> และ <code>Docker</code>) ให้รวม:</p>\n<pre><code class=\"hljs language-python\"><span class=\"hljs-comment\"># Find all memories with &quot;Docker&quot; tag</span>\nmems = requests.get(<span class=\"hljs-string\">f&quot;<span class=\"hljs-subst\">{URL}</span>/memory/by-tag?tag=Docker&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>}).json()\n\n<span class=\"hljs-comment\"># Update each to use &quot;docker&quot; instead</span>\n<span class=\"hljs-keyword\">for</span> mem <span class=\"hljs-keyword\">in</span> mems[<span class=\"hljs-string\">&quot;results&quot;</span>]:\n    tags = [t.lower() <span class=\"hljs-keyword\">for</span> t <span class=\"hljs-keyword\">in</span> mem[<span class=\"hljs-string\">&quot;tags&quot;</span>]]\n    update_memory(mem[<span class=\"hljs-string\">&quot;id&quot;</span>], tags=<span class=\"hljs-built_in\">list</span>(<span class=\"hljs-built_in\">set</span>(tags)))</code></pre><h2>แนวทางปฏิบัติที่ดีที่สุด</h2>\n<div class=\"callout callout-ok\"></div><h2>ขั้นตอนถัดไป</h2>\n<ul>\n<li><a href=\"/docs/guides/memory-best-practices\">Memory Best Practices</a></li>\n<li><a href=\"/docs/concepts/fts5-search\">FTS5 Search</a></li>\n<li><a href=\"/docs/llm-cookbook/task-driven-workflow\">Task-Driven Workflow</a></li>\n</ul>\n","urls":{"html":"/docs/llm-cookbook/memory-tagging-strategy","text":"/docs/llm-cookbook/memory-tagging-strategy?format=text","json":"/docs/llm-cookbook/memory-tagging-strategy?format=json","llm":"/docs/llm-cookbook/memory-tagging-strategy?format=llm"},"translations_available":["en","zh","hi","es","fr","ar","pt","ru","ja","de","it","ko","nl","pl","tr","sv","vi","th","id","uk"]}