<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>TencentDB Agent Memory on KnightLi的博客</title>
        <link>https://knightli.com/tags/tencentdb-agent-memory/</link>
        <description>Recent content in TencentDB Agent Memory on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <lastBuildDate>Wed, 15 Jul 2026 22:08:00 +0800</lastBuildDate><atom:link href="https://knightli.com/tags/tencentdb-agent-memory/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>TencentDB Agent Memory 怎么接入 OpenClaw：本地长期记忆、日志压缩与可追溯检索</title>
        <link>https://knightli.com/2026/07/15/tencentdb-agent-memory-openclaw-long-term-memory-offload-guide/</link>
        <pubDate>Wed, 15 Jul 2026 22:08:00 +0800</pubDate>
        
        <guid>https://knightli.com/2026/07/15/tencentdb-agent-memory-openclaw-long-term-memory-offload-guide/</guid>
        <description>&lt;p&gt;OpenClaw 的长任务一旦跨越多轮工具调用，通常会出现两个问题：上下文被日志塞满，或新会话又要重新解释项目约定。TencentDB Agent Memory 为 OpenClaw 提供本地长期记忆和短期日志压缩：默认使用 &lt;code&gt;SQLite + sqlite-vec&lt;/code&gt;，将长期信息分层整理；启用 offload 后，把完整工具输出保存到外部文件，仅向上下文注入精简的符号化状态。&lt;a class=&#34;link&#34; href=&#34;https://github.com/TencentCloud/TencentDB-Agent-Memory&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;项目官方仓库&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;本文只处理 OpenClaw 接入。关键目标不是“让 Agent 记住一切”，而是让它在需要时能找回事实，并让你能从高层摘要追溯到原始对话或工具日志。&lt;/p&gt;
&lt;h2 id=&#34;安装前先确认两件事&#34;&gt;安装前先确认两件事
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;当前 OpenClaw 已能正常启动和执行基本对话；先解决模型、权限或 Gateway 问题，再加记忆插件。&lt;/li&gt;
&lt;li&gt;你清楚本机数据的备份位置和访问边界。记忆里可能包含项目上下文、任务记录和工具输出，不应把它当作临时无关缓存。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;初次接入建议先只启用长期记忆，确认召回正确后再启用日志压缩。这样一旦出现错误，能明确判断是记忆抽取、检索还是 offload 配置造成的。&lt;/p&gt;
&lt;h2 id=&#34;安装并启用插件&#34;&gt;安装并启用插件
&lt;/h2&gt;&lt;p&gt;使用 OpenClaw 原生插件命令安装：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openclaw plugins install @tencentdb-agent-memory/memory-tencentdb
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openclaw gateway restart
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;后续升级也应使用 OpenClaw 的插件更新命令，避免语义版本范围导致插件被禁用：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openclaw plugins update @tencentdb-agent-memory/memory-tencentdb
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;在 &lt;code&gt;~/.openclaw/openclaw.json&lt;/code&gt; 启用：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;memory-tencentdb&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;enabled&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;官方 README 说明，默认后端是本地 &lt;code&gt;SQLite + sqlite-vec&lt;/code&gt;。启用后，插件会捕获对话、抽取记忆、聚合场景、生成 Persona，并在下一轮前做召回；它不需要为记忆功能额外调用外部 API。&lt;/p&gt;
&lt;h2 id=&#34;用一组可验证事实测试长期记忆&#34;&gt;用一组可验证事实测试长期记忆
&lt;/h2&gt;&lt;p&gt;不要仅问“你还记得我吗”。请做一个有答案、可复查的测试：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;第 1 轮：告诉 Agent 当前项目的包管理器、测试命令和一条明确的输出约定。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;第 2 轮：让它执行一个与这些约定相关的小任务。
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;新会话：询问测试命令和输出约定，并要求说明信息来源或不确定项。
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;通过标准不是它背出了更多内容，而是它能正确找回事实、不擅自补充不存在的信息。如果项目约定已经改变，应更新或清理旧记忆，而不是期待模型自动判断哪一条过期。&lt;/p&gt;
&lt;h2 id=&#34;启用短期日志压缩offload&#34;&gt;启用短期日志压缩（offload）
&lt;/h2&gt;&lt;p&gt;工具输出、搜索结果和错误栈通常是长任务 token 膨胀的主要来源。项目的 offload 功能会把完整日志移到外部文件，将压缩后的 Mermaid 状态图留在上下文中。官方要求 OpenClaw 与插件版本不低于 0.3.4。&lt;/p&gt;
&lt;p&gt;在插件配置中打开：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;memory-tencentdb&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;config&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;offload&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;enabled&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;然后注册 context engine 槽位，让 OpenClaw 将 context-offload 请求交给该插件：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;plugins&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;slots&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;contextEngine&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;memory-tencentdb&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;最后运行项目提供的补丁，使 &lt;code&gt;after-tool-call&lt;/code&gt; 消息可被卸载和恢复：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bash scripts/openclaw-after-tool-call-messages.patch.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;该补丁对每个 OpenClaw 安装只需运行一次；OpenClaw 升级后，需要重新应用。&lt;/p&gt;
&lt;h2 id=&#34;可追溯检索如何工作&#34;&gt;可追溯检索如何工作
&lt;/h2&gt;&lt;p&gt;日志压缩不应该等于丢失细节。TencentDB Agent Memory 的短期链路是：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;完整工具日志 → refs/*.md
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;              ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;步骤摘要 → jsonl 索引
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;              ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Mermaid 状态图（带 node_id）→ 注入 Agent 上下文
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;当 Agent 或你需要核实某个结论时，可沿 &lt;code&gt;node_id&lt;/code&gt; 从 Mermaid 状态图找到对应摘要和原始日志。长期记忆也遵循类似的下钻关系：&lt;code&gt;Persona → Scenario → Atom → Conversation&lt;/code&gt;。因此，排查“为什么 Agent 记错了”时，应先回到原始证据，而不是只修改最终摘要。&lt;/p&gt;
&lt;h2 id=&#34;启用后应该做的三项验收&#34;&gt;启用后应该做的三项验收
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;长期召回&lt;/strong&gt;：新会话中正确找回一条测试事实，并能承认不确定项。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;日志回溯&lt;/strong&gt;：执行一段多工具调用任务，确认压缩后仍能通过 &lt;code&gt;node_id&lt;/code&gt; 找到原始输出。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;失败保护&lt;/strong&gt;：故意让一个工具调用失败，检查错误信息、原始日志和下一轮恢复是否仍可理解。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果只看到上下文变短，却不能追溯原始信息，不应将 offload 用于重要生产任务。压缩的前提是可恢复，而不是减少 token 本身。&lt;/p&gt;
&lt;h2 id=&#34;配置与数据的安全边界&#34;&gt;配置与数据的安全边界
&lt;/h2&gt;&lt;p&gt;默认本地存储并不意味着可以忽略安全。建议：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;将记忆数据目录纳入加密备份与恢复演练。&lt;/li&gt;
&lt;li&gt;不要在对话、工具日志或 Persona 中放入不应长期保存的密钥。&lt;/li&gt;
&lt;li&gt;更新 OpenClaw 或插件后，先用测试会话确认记忆抽取、召回与 offload 没有退化。&lt;/li&gt;
&lt;li&gt;定期检查旧 Persona、场景和项目约定，清除已过期或敏感的信息。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如需同时部署 Hermes、Docker Gateway 或 OpenAI 兼容本地模型，可阅读 &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/07/15/tencentdb-agent-memory-local-deployment-ollama-guide/&#34; &gt;TencentDB Agent Memory 本地部署总览&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id=&#34;常见问题&#34;&gt;常见问题
&lt;/h2&gt;&lt;h3 id=&#34;启用后还是忘记项目约定先查哪里&#34;&gt;启用后还是忘记项目约定，先查哪里？
&lt;/h3&gt;&lt;p&gt;先确认插件已启用、Gateway 已重启、测试是否真的跨越新会话；再检查记忆抽取的触发时机与存储目录权限。不要用模糊描述测试，使用可验证的命令、路径或输出约定。&lt;/p&gt;
&lt;h3 id=&#34;offload-后为什么看不到完整日志&#34;&gt;offload 后为什么看不到完整日志？
&lt;/h3&gt;&lt;p&gt;完整日志应被保存到 &lt;code&gt;refs/*.md&lt;/code&gt; 等外部记录，不再全部注入上下文。通过 Mermaid 图中的 &lt;code&gt;node_id&lt;/code&gt; 和摘要索引回溯；若文件不存在或无法读取，先排查路径、权限和补丁是否已正确应用。&lt;/p&gt;
&lt;h3 id=&#34;是否必须启用-offload&#34;&gt;是否必须启用 offload？
&lt;/h3&gt;&lt;p&gt;不是。短任务或调试初期可以只使用长期记忆。只有当工具输出确实造成上下文膨胀，并且你已验证回溯链路完整时，再开启 offload。&lt;/p&gt;
&lt;h2 id=&#34;小结&#34;&gt;小结
&lt;/h2&gt;&lt;p&gt;接入 TencentDB Agent Memory 的安全顺序是：先安装并启用 OpenClaw 插件，用可验证事实测试长期召回，再按需打开 offload、注册 context engine、应用补丁，最后检查 &lt;code&gt;node_id&lt;/code&gt; 能否回到原始日志。这样得到的是可审计的本地记忆系统，而不是不可解释的自动摘要。&lt;/p&gt;
</description>
        </item>
        <item>
        <title>TencentDB Agent Memory 本地部署教程：长期记忆、日志压缩与可追溯召回</title>
        <link>https://knightli.com/2026/07/15/tencentdb-agent-memory-local-deployment-ollama-guide/</link>
        <pubDate>Wed, 15 Jul 2026 22:00:00 +0800</pubDate>
        
        <guid>https://knightli.com/2026/07/15/tencentdb-agent-memory-local-deployment-ollama-guide/</guid>
        <description>&lt;p&gt;本地 Agent 经常遇到两类相反的问题：会话一长，工具日志和上下文迅速挤满 token；会话一断，又要重新解释项目约定、偏好和已完成的工作。TencentDB Agent Memory 尝试把这两件事拆开处理：短期任务把冗长日志卸载并压缩，长期记忆把对话逐层整理为可召回的信息，同时保留回到原始证据的路径。&lt;a class=&#34;link&#34; href=&#34;https://github.com/TencentCloud/TencentDB-Agent-Memory&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;项目官方仓库&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;它并不是把全部聊天记录塞回提示词，而是使用“原始记录 → 原子事实 → 场景 → Persona”的长期记忆层次；短期侧则把工具输出保留在文件中，以 Mermaid 任务图和 &lt;code&gt;node_id&lt;/code&gt; 提供精简上下文与回溯入口。适合本地 Agent、OpenClaw、Hermes 及希望接入 OpenAI 兼容模型端点的场景。&lt;/p&gt;
&lt;h2 id=&#34;部署前先决定你要解决哪一类记忆问题&#34;&gt;部署前先决定：你要解决哪一类记忆问题
&lt;/h2&gt;&lt;p&gt;先把目标写清楚，配置会简单很多：&lt;/p&gt;
&lt;table&gt;
  &lt;thead&gt;
      &lt;tr&gt;
          &lt;th&gt;目标&lt;/th&gt;
          &lt;th&gt;优先启用的能力&lt;/th&gt;
          &lt;th&gt;先验证什么&lt;/th&gt;
      &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
      &lt;tr&gt;
          &lt;td&gt;跨会话记住项目约定和用户偏好&lt;/td&gt;
          &lt;td&gt;长期记忆与召回&lt;/td&gt;
          &lt;td&gt;是否能在下一轮正确找回历史事实&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;长任务中工具日志太长&lt;/td&gt;
          &lt;td&gt;短期 offload 与符号记忆&lt;/td&gt;
          &lt;td&gt;原始日志是否可通过 &lt;code&gt;node_id&lt;/code&gt; 回溯&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;本地运行且不想依赖外部记忆 API&lt;/td&gt;
          &lt;td&gt;SQLite + sqlite-vec 默认后端&lt;/td&gt;
          &lt;td&gt;数据目录、备份和权限是否可控&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
          &lt;td&gt;用 Ollama 或其他本地模型&lt;/td&gt;
          &lt;td&gt;OpenAI 兼容 Gateway 配置&lt;/td&gt;
          &lt;td&gt;容器/宿主机能否访问模型端点&lt;/td&gt;
      &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;不要一开始就打开全部功能。建议先完成长期记忆的写入与召回，再开启工具日志压缩；这样出现遗漏时，才容易判断是模型、检索、压缩还是网络路径的问题。&lt;/p&gt;
&lt;h2 id=&#34;方案一给-openclaw-加上本地长期记忆&#34;&gt;方案一：给 OpenClaw 加上本地长期记忆
&lt;/h2&gt;&lt;p&gt;官方 README 提供的 OpenClaw 路径最短。插件默认使用本地 &lt;code&gt;SQLite + sqlite-vec&lt;/code&gt;，不需要外部记忆 API：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openclaw plugins install @tencentdb-agent-memory/memory-tencentdb
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;openclaw gateway restart
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;在 &lt;code&gt;~/.openclaw/openclaw.json&lt;/code&gt; 中启用插件：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;memory-tencentdb&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;enabled&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;启用后，插件会负责捕获对话、抽取记忆、聚合场景、生成 Persona，并在下一轮前执行召回。此时先做一个小验证：连续完成几轮有明确事实的对话，重开会话后询问其中一个细节，确认 Agent 返回的是已保存事实，而不是自行猜测。&lt;/p&gt;
&lt;p&gt;如果你还没有准备好本地模型服务，可先从 &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/07/10/codex-ollama-local-model-errors-troubleshooting/&#34; &gt;Codex 本地大模型接入 Ollama 的排错顺序&lt;/a&gt; 检查服务、模型名称和运行环境是否对齐。&lt;/p&gt;
&lt;h2 id=&#34;按需打开短期日志压缩&#34;&gt;按需打开短期日志压缩
&lt;/h2&gt;&lt;p&gt;长任务中最容易膨胀的是搜索结果、命令输出和错误日志。TencentDB Agent Memory 的 offload 会把完整工具日志写到外部文件，只将带 &lt;code&gt;node_id&lt;/code&gt; 的精简 Mermaid 状态图放进上下文；需要细节时，Agent 可以再沿 &lt;code&gt;node_id&lt;/code&gt; 找回原始文本。&lt;/p&gt;
&lt;p&gt;OpenClaw 的官方示例要求版本不低于 0.3.4。先开启 offload：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;memory-tencentdb&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;config&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;offload&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;enabled&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;true&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;再注册 context engine 槽位：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;plugins&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;slots&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;      &lt;span class=&#34;nt&#34;&gt;&amp;#34;contextEngine&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;memory-tencentdb&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;最后执行项目提供的补丁，使 &lt;code&gt;after-tool-call&lt;/code&gt; 消息能够被正确卸载和恢复：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bash scripts/openclaw-after-tool-call-messages.patch.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;OpenClaw 升级后需要重新应用这个补丁。上线前用一次包含多轮工具调用的任务验证两件事：上下文是否变短，以及失败时能否从 Mermaid 图的 &lt;code&gt;node_id&lt;/code&gt; 回到对应原始日志。只有同时满足，压缩才没有牺牲排障能力。&lt;/p&gt;
&lt;h2 id=&#34;方案二用-docker-启动-hermes-memory-gateway&#34;&gt;方案二：用 Docker 启动 Hermes Memory Gateway
&lt;/h2&gt;&lt;p&gt;如果你使用 Hermes，官方 Docker 镜像会将 &lt;code&gt;hermes-agent&lt;/code&gt; 与 &lt;code&gt;memory_tencentdb&lt;/code&gt; provider 一起构建，Gateway 默认监听 &lt;code&gt;8420&lt;/code&gt;。在仓库根目录执行：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;12
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; docker/opensource
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker build -f Dockerfile.hermes -t hermes-memory .
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker run -d &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --name hermes-memory &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  --restart unless-stopped &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -p 8420:8420 &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -e &lt;span class=&#34;nv&#34;&gt;MODEL_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;your-api-key&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -e &lt;span class=&#34;nv&#34;&gt;MODEL_BASE_URL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;https://api.lkeap.cloud.tencent.com/v1&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -e &lt;span class=&#34;nv&#34;&gt;MODEL_NAME&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;deepseek-v3.2&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -e &lt;span class=&#34;nv&#34;&gt;MODEL_PROVIDER&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;custom&amp;#34;&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -v hermes_data:/opt/data &lt;span class=&#34;se&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  hermes-memory
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;启动后先检查健康状态：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl http://localhost:8420/health
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;返回 &lt;code&gt;{&amp;quot;status&amp;quot;:&amp;quot;ok&amp;quot;}&lt;/code&gt; 或 &lt;code&gt;{&amp;quot;status&amp;quot;:&amp;quot;degraded&amp;quot;}&lt;/code&gt; 说明 Gateway 已启动；&lt;code&gt;degraded&lt;/code&gt; 时不要直接投入长期任务，应先检查模型连接、存储卷与日志。&lt;/p&gt;
&lt;h2 id=&#34;与-ollama-对接时的正确边界&#34;&gt;与 Ollama 对接时的正确边界
&lt;/h2&gt;&lt;p&gt;项目的 &lt;code&gt;MODEL_PROVIDER=&amp;quot;custom&amp;quot;&lt;/code&gt; 用于 OpenAI 兼容端点。Ollama 提供兼容接口时，可以作为该 Gateway 的模型来源；但“记忆存储在本地”与“模型也完全本地”是两件不同的事，分别验证。&lt;/p&gt;
&lt;p&gt;在 Docker 中连接宿主机 Ollama 前，先确认端点可达。Windows/macOS Docker Desktop 通常可使用 &lt;code&gt;host.docker.internal&lt;/code&gt;；Linux 则需要按 Docker 网络方式配置宿主机网关。示意配置如下，具体模型名以你本机已拉取的模型为准：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;MODEL_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;ollama&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;MODEL_BASE_URL&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;http://host.docker.internal:11434/v1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;MODEL_NAME&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;qwen3&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;MODEL_PROVIDER&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;custom&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;先在相同网络位置测试 &lt;code&gt;/v1/models&lt;/code&gt; 或完成一个最小聊天请求，再启动长期记忆任务。若容器里把 &lt;code&gt;localhost&lt;/code&gt; 写成模型地址，实际指向的是容器自身，而不是运行 Ollama 的宿主机，这是最常见的连接错误。&lt;/p&gt;
&lt;p&gt;有关 OpenAI 兼容本地 API、Ollama、LM Studio 和 vLLM 的端点检查，可继续阅读 &lt;a class=&#34;link&#34; href=&#34;https://knightli.com/2026/07/11/use-local-llm-api-with-codex-ollama-lm-studio-vllm/&#34; &gt;本地大模型 API 给 Codex 使用教程&lt;/a&gt;。&lt;/p&gt;
&lt;h2 id=&#34;可追溯性为什么比自动总结更重要&#34;&gt;可追溯性为什么比“自动总结”更重要
&lt;/h2&gt;&lt;p&gt;不可逆总结看似节省 token，却可能把一个关键条件、失败原因或用户限制丢掉。这个项目将高层信息与底层证据保持关联：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Persona / Mermaid canvas
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Scenario / jsonl 索引
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        ↓
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;原始对话与工具日志（L0 / refs/*.md）
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;排查时不要只看最终摘要。若 Agent 记错了偏好或误判任务状态，应沿这条链路回到原始日志，判断是抽取错误、召回排序错误，还是原始输入本来就不完整。把原始资料、记忆索引和配置文件一起纳入备份，才能在迁移或升级时保留这种可验证性。&lt;/p&gt;
&lt;h2 id=&#34;基础安全与运维检查&#34;&gt;基础安全与运维检查
&lt;/h2&gt;&lt;p&gt;Hermes Gateway 暴露 capture、search、recall 等 HTTP 接口。官方默认按本地 sidecar 使用；如果要绑定非回环地址或让其他机器访问，必须加认证和来源限制。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;TDAI_GATEWAY_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;replace-with-a-long-random-secret&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;TDAI_CORS_ORIGINS&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;https://your-console.example&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;MEMORY_TENCENTDB_GATEWAY_API_KEY&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$TDAI_GATEWAY_API_KEY&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;然后确认 Gateway 与插件两侧使用同一个密钥。不要把 &lt;code&gt;8420&lt;/code&gt; 端口直接暴露到公网，也不要把 API key、记忆数据库或 &lt;code&gt;refs/*.md&lt;/code&gt; 一并提交进 Git。&lt;/p&gt;
&lt;p&gt;建议把下面几项纳入日常检查：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;为 SQLite 数据、挂载卷和记忆目录建立定期备份与恢复演练。&lt;/li&gt;
&lt;li&gt;记录插件、OpenClaw/Hermes、模型和 Docker 镜像版本，升级后先在测试会话验证召回。&lt;/li&gt;
&lt;li&gt;限制单次召回数量和注入字符预算，避免“记忆越多，上下文越重”。&lt;/li&gt;
&lt;li&gt;定期抽查高层 Persona 是否包含过期或敏感信息，并按自己的数据规则清理。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;常见问题&#34;&gt;常见问题
&lt;/h2&gt;&lt;h3 id=&#34;插件启用了为什么-agent-还是记不住&#34;&gt;插件启用了，为什么 Agent 还是记不住？
&lt;/h3&gt;&lt;p&gt;先确认是跨会话问题，而不是当前对话未完成。再检查插件是否已启用、记忆抽取触发频率、存储目录是否可写，以及下一轮召回是否因超时被跳过。不要只用一句模糊问题测试，最好用可验证的项目约定或事实。&lt;/p&gt;
&lt;h3 id=&#34;开启-offload-后是否再也看不到原始日志&#34;&gt;开启 offload 后，是否再也看不到原始日志？
&lt;/h3&gt;&lt;p&gt;不是。offload 的目标是把完整日志移出主上下文，而不是删除它。应通过 &lt;code&gt;node_id&lt;/code&gt;、索引和 &lt;code&gt;refs/*.md&lt;/code&gt; 回溯原始记录；若无法回溯，应停止将其用于重要任务并先修复存储路径或权限。&lt;/p&gt;
&lt;h3 id=&#34;ollama-接不上-gateway最先检查什么&#34;&gt;Ollama 接不上 Gateway，最先检查什么？
&lt;/h3&gt;&lt;p&gt;先区分宿主机和容器网络。容器中的 &lt;code&gt;localhost&lt;/code&gt; 不等于宿主机；再确认 Ollama 服务、模型名称、OpenAI 兼容 URL、端口和防火墙。用最小接口请求连通后，再排查记忆插件本身。&lt;/p&gt;
&lt;h2 id=&#34;小结&#34;&gt;小结
&lt;/h2&gt;&lt;p&gt;TencentDB Agent Memory 适合需要长期运行、又希望保持本地可控和可追溯的 Agent 工作流。先用默认 SQLite 后端跑通长期记忆，再按需开启日志 offload；本地模型接入则单独验证网络与 OpenAI 兼容端点。这样既能减少重复解释，也不会在压缩后失去定位问题的原始证据。&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
