{"title":"记忆打标签策略","slug":"memory-tagging-strategy","category":"llm-cookbook","summary":"如何为记忆打标签以实现高效搜索与过滤 — 可扩展的标签体系。","audience":["llm"],"tags":["cookbook","tagging","memory","strategy"],"difficulty":"intermediate","updated":"2026-06-27","word_count":168,"read_minutes":1,"lang":"zh","translated":true,"requested_lang":"zh","content_markdown":"\n# 记忆打标签策略\n\n标签是可扩展记忆检索的秘诀。本指南展示如何为记忆打标签，让正确的记忆在正确的时间被找到。\n\n## 为什么标签重要\n\n没有标签，你只有扁平的全文搜索。有了标签，你就有结构化导航：\n\n```bash\n# 无标签：搜索一切\nGET /memory/search?q=docker\n\n# 有标签：按项目 + 技术过滤\nGET /memory/search?q=deployment&tag=synapse&tag=docker\n```\n\n标签带来：\n\n- **快速过滤** — `GET /memory/by-tag?tag=production`\n- **范围搜索** — `?q=auth&tag=project-x`\n- **分组** — 找出某项目的所有 “mistake” 记忆\n- **交叉引用** — 共享标签的记忆相互关联\n\n## 标签体系\n\n### 项目标签\n\n用项目名作为标签：\n\n```\nsynapse, synapse-mcp, synapse-chat, synapse-sdk\n```\n\n### 技术标签\n\n用技术名：\n\n```\ndocker, kubernetes, postgres, fastify, react, typescript\n```\n\n### 主题标签\n\n用主题分类：\n\n```\ndeployment, ci-cd, auth, database, frontend, backend, security\n```\n\n### 状态标签\n\n用状态指示：\n\n```\nactive, completed, blocked, deprecated\n```\n\n### 类型标签\n\n用类型指示：\n\n```\ndecision, mistake, pattern, reference, todo\n```\n\n## 打标签规则\n\n### 规则 1：每条记忆 2-5 个标签\n\n太少 = 可发现性差。太多 = 噪声。\n\n```json\n// 好：3 个相关标签\n{ \"tags\": [\"synapse\", \"deployment\", \"docker\"] }\n\n// 坏：1 个标签（太窄）\n{ \"tags\": [\"synapse\"] }\n\n// 坏：10 个标签（噪声）\n{ \"tags\": [\"synapse\", \"deployment\", \"docker\", \"vps1\", \"2026\", \"june\", \"ssh\", \"git\", \"main\", \"production\"] }\n```\n\n### 规则 2：小写、连字符\n\n```\n✅ ci-cd, api-key, mind-key\n❌ CI-CD, APIKey, MindKey\n```\n\n### 规则 3：使用一致的词汇\n\n建立一套标签词汇并坚持使用：\n\n```\n# 项目词汇\nsynapse, synapse-mcp, synapse-chat\n\n# 不要写成：synapse_project, synapseProject, SYNAPSE\n```\n\n### 规则 4：按搜索意图打标签\n\n问自己：“我以后会怎么搜这条记忆？”\n\n```json\n// 存储部署决策\n{\n  \"content\": \"Decided to use Docker Swarm for Synapse deployment\",\n  \"tags\": [\"synapse\", \"deployment\", \"docker\", \"swarm\", \"decision\"]\n}\n\n// 你可能会搜索：?q=docker+swarm 或 ?tag=deployment\n```\n\n## 模式\n\n### 模式 1：项目 + 主题\n\n```json\n{ \"tags\": [\"synapse\", \"deployment\"] }\n{ \"tags\": [\"synapse\", \"auth\"] }\n{ \"tags\": [\"synapse-mcp\", \"tools\"] }\n```\n\n搜索：`?tag=synapse`（所有 Synapse 项目记忆）\n搜索：`?tag=synapse&q=deployment`（Synapse 的部署记忆）\n\n### 模式 2：类型 + 领域\n\n```json\n{ \"tags\": [\"mistake\", \"deployment\"] }\n{ \"tags\": [\"decision\", \"database\"] }\n{ \"tags\": [\"pattern\", \"auth\"] }\n```\n\n搜索：`?tag=mistake`（所有错误）\n搜索：`?tag=mistake&q=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\n搜索：`?tag=synapse`（所有 Synapse）\n搜索：`?tag=synapse-docs`（仅 docs 子项目）\n\n### 模式 4：状态跟踪\n\n```json\n// 活跃项目\n{ \"tags\": [\"synapse\", \"active\"], \"priority\": \"high\" }\n\n// 已完成项目\n{ \"tags\": [\"synapse-v1\", \"completed\"], \"priority\": \"low\" }\n\n// 阻塞中\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### 找出某领域的所有错误\n\n```bash\ncurl -H \"Authorization: Bearer $KEY\" \\\n     \".../memory/search?q=mistake&tag=deployment\"\n```\n\n### 找活跃工作\n\n```bash\ncurl -H \"Authorization: Bearer $KEY\" \\\n     \".../memory/by-tag?tag=active\"\n```\n\n### 找关于某技术的记忆\n\n```bash\ncurl -H \"Authorization: Bearer $KEY\" \\\n     \".../memory/search?q=postgres+performance&tag=database\"\n```\n\n## 标签维护\n\n### 定期审查\n\n```python\n# 找出使用少的标签（清理候选）\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### 合并标签\n\n如果有不一致的标签（`docker` 和 `Docker`），合并它们：\n\n```python\n# 找出所有带 \"Docker\" 标签的记忆\nmems = requests.get(f\"{URL}/memory/by-tag?tag=Docker\",\n    headers={\"Authorization\": f\"Bearer {KEY}\"}).json()\n\n# 把每条更新为 \"docker\"\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> - **尽早建立词汇表** — 从第 1 天起就用一致的标签\n> - **按搜索意图打标签** — 你以后会怎么找它？\n> - **2-5 个标签是最佳点** — 太少或太多都不好\n> - **小写 + 连字符** — `ci-cd` 而非 `CI/CD`\n> - **定期审查** — 合并重复、移除未用\n\n## 下一步\n\n- [记忆最佳实践](/docs/guides/memory-best-practices)\n- [FTS5 搜索](/docs/concepts/fts5-search)\n- [任务驱动工作流](/docs/llm-cookbook/task-driven-workflow)\n","content_html":"<h1>记忆打标签策略</h1>\n<p>标签是可扩展记忆检索的秘诀。本指南展示如何为记忆打标签，让正确的记忆在正确的时间被找到。</p>\n<h2>为什么标签重要</h2>\n<p>没有标签，你只有扁平的全文搜索。有了标签，你就有结构化导航：</p>\n<pre><code class=\"hljs language-bash\"><span class=\"hljs-comment\"># 无标签：搜索一切</span>\nGET /memory/search?q=docker\n\n<span class=\"hljs-comment\"># 有标签：按项目 + 技术过滤</span>\nGET /memory/search?q=deployment&amp;tag=synapse&amp;tag=docker</code></pre><p>标签带来：</p>\n<ul>\n<li><strong>快速过滤</strong> — <code>GET /memory/by-tag?tag=production</code></li>\n<li><strong>范围搜索</strong> — <code>?q=auth&amp;tag=project-x</code></li>\n<li><strong>分组</strong> — 找出某项目的所有 “mistake” 记忆</li>\n<li><strong>交叉引用</strong> — 共享标签的记忆相互关联</li>\n</ul>\n<h2>标签体系</h2>\n<h3>项目标签</h3>\n<p>用项目名作为标签：</p>\n<pre><code class=\"hljs language-plaintext\">synapse, synapse-mcp, synapse-chat, synapse-sdk</code></pre><h3>技术标签</h3>\n<p>用技术名：</p>\n<pre><code class=\"hljs language-plaintext\">docker, kubernetes, postgres, fastify, react, typescript</code></pre><h3>主题标签</h3>\n<p>用主题分类：</p>\n<pre><code class=\"hljs language-plaintext\">deployment, ci-cd, auth, database, frontend, backend, security</code></pre><h3>状态标签</h3>\n<p>用状态指示：</p>\n<pre><code class=\"hljs language-plaintext\">active, completed, blocked, deprecated</code></pre><h3>类型标签</h3>\n<p>用类型指示：</p>\n<pre><code class=\"hljs language-plaintext\">decision, mistake, pattern, reference, todo</code></pre><h2>打标签规则</h2>\n<h3>规则 1：每条记忆 2-5 个标签</h3>\n<p>太少 = 可发现性差。太多 = 噪声。</p>\n<pre><code class=\"hljs language-json\"><span class=\"hljs-comment\">// 好：3 个相关标签</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\">// 坏：1 个标签（太窄）</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\">// 坏：10 个标签（噪声）</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：小写、连字符</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>建立一套标签词汇并坚持使用：</p>\n<pre><code class=\"hljs language-plaintext\"># 项目词汇\nsynapse, synapse-mcp, synapse-chat\n\n# 不要写成：synapse_project, synapseProject, SYNAPSE</code></pre><h3>规则 4：按搜索意图打标签</h3>\n<p>问自己：“我以后会怎么搜这条记忆？”</p>\n<pre><code class=\"hljs language-json\"><span class=\"hljs-comment\">// 存储部署决策</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\">// 你可能会搜索：?q=docker+swarm 或 ?tag=deployment</span></code></pre><h2>模式</h2>\n<h3>模式 1：项目 + 主题</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>搜索：<code>?tag=synapse</code>（所有 Synapse 项目记忆）\n搜索：<code>?tag=synapse&amp;q=deployment</code>（Synapse 的部署记忆）</p>\n<h3>模式 2：类型 + 领域</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>搜索：<code>?tag=mistake</code>（所有错误）\n搜索：<code>?tag=mistake&amp;q=deployment</code>（部署错误）</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>搜索：<code>?tag=synapse</code>（所有 Synapse）\n搜索：<code>?tag=synapse-docs</code>（仅 docs 子项目）</p>\n<h3>模式 4：状态跟踪</h3>\n<pre><code class=\"hljs language-json\"><span class=\"hljs-comment\">// 活跃项目</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\">// 已完成项目</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\">// 阻塞中</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>找出某领域的所有错误</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>找活跃工作</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>找关于某技术的记忆</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>标签维护</h2>\n<h3>定期审查</h3>\n<pre><code class=\"hljs language-python\"><span class=\"hljs-comment\"># 找出使用少的标签（清理候选）</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>合并标签</h3>\n<p>如果有不一致的标签（<code>docker</code> 和 <code>Docker</code>），合并它们：</p>\n<pre><code class=\"hljs language-python\"><span class=\"hljs-comment\"># 找出所有带 &quot;Docker&quot; 标签的记忆</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\"># 把每条更新为 &quot;docker&quot;</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\">记忆最佳实践</a></li>\n<li><a href=\"/docs/concepts/fts5-search\">FTS5 搜索</a></li>\n<li><a href=\"/docs/llm-cookbook/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"]}