<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>记忆系统 on AI博士 万戈</title>
        <link>https://www.yesmiracle.net/tags/%E8%AE%B0%E5%BF%86%E7%B3%BB%E7%BB%9F/</link>
        <description>Recent content in 记忆系统 on AI博士 万戈</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <lastBuildDate>Fri, 10 Jul 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://www.yesmiracle.net/tags/%E8%AE%B0%E5%BF%86%E7%B3%BB%E7%BB%9F/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>腾讯开源了一个让 AI Agent 不再失忆的大脑！TencentDB Agent Memory 四层记忆管线本地跑，Token 直降 61%！</title>
        <link>https://www.yesmiracle.net/post/20260710-tencentdb-agent-memory-local-memory/</link>
        <pubDate>Fri, 10 Jul 2026 00:00:00 +0000</pubDate>
        
        <guid>https://www.yesmiracle.net/post/20260710-tencentdb-agent-memory-local-memory/</guid>
        <description>&lt;img src="https://www.yesmiracle.net/post/20260710-tencentdb-agent-memory-local-memory/cover.svg" alt="Featured image of post 腾讯开源了一个让 AI Agent 不再失忆的大脑！TencentDB Agent Memory 四层记忆管线本地跑，Token 直降 61%！" /&gt;&lt;p&gt;如果你自己动手写过 AI Agent，你一定经历过这种崩溃：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;你跟 Agent 说「我用 TypeScript，项目用 Prisma + PostgreSQL，部署走 Jenkins」——它照做了，你满意地关了会话。&lt;/p&gt;
&lt;p&gt;第二天打开新会话，它又问你：「请问您用什么编程语言？需要什么数据库？」&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;你的 Agent 得了一种叫「会话间失忆症」的病。&lt;/strong&gt; 每次对话都从零开始，仿佛你们从未认识。&lt;/p&gt;
&lt;p&gt;这个问题的根源很明确：AI Agent 的上下文窗口天生就是「一次性」的。会话结束，记忆清零。你要么每次重新喂上下文（累死），要么把所有历史硬塞进上下文（贵死）。&lt;/p&gt;
&lt;p&gt;而今天要聊的这个开源项目，用一种非常优雅的方式解决了这个问题——&lt;/p&gt;
&lt;h2 id=&#34;腾讯云扔了个王炸&#34;&gt;腾讯云扔了个王炸&lt;/h2&gt;
&lt;p&gt;2026 年 7 月，腾讯云开源了 &lt;strong&gt;TencentDB Agent Memory&lt;/strong&gt;，一个完全本地运行的 AI Agent 记忆系统。短短几周，GitHub Star 已经突破 &lt;strong&gt;7800+&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;它不是又一个「把对话切碎扔进向量库」的 RAG 方案。它构建了一个 &lt;strong&gt;四层记忆金字塔&lt;/strong&gt;，模仿人类认知的组织方式：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;L0 对话 → L1 原子事实 → L2 场景模式 → L3 人格画像&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;每一层都是上一层的提炼和升华——从上往下可以追溯证据，从下往上可以压缩理解。&lt;/p&gt;
&lt;p&gt;基准测试的数据相当硬核：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Token 消耗降低 61%&lt;/strong&gt;（WideSearch 测试：221M → 86M）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;任务成功率提升 52%&lt;/strong&gt;（WideSearch：33% → 50%）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SWE-bench 准确率从 58.4% 提升到 64.2%&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PersonaMem（长期人格记忆）准确率从 48% 飙升到 76%&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;而且这些数据不是单次测试跑出来的——是连续 50 轮长任务迭代的真实结果。&lt;/p&gt;
&lt;h2 id=&#34;四层金字塔为什么比扁平向量库强&#34;&gt;四层金字塔：为什么比扁平向量库强？&lt;/h2&gt;
&lt;p&gt;先说说为什么传统方案不行。&lt;/p&gt;
&lt;p&gt;大多数 Agent 记忆系统用的是一个很粗暴的逻辑：把对话切成块 → 向量化 → 扔进向量数据库 → 按相似度检索。&lt;/p&gt;
&lt;p&gt;这就像把你的书架上的书全部撕成碎片，然后说「没关系，我可以用语义搜索找到任何一页」。技术上可行，但丢失了结构——你不知道哪些信息属于同一个领域，哪些是偏好，哪些是一次性细节。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TencentDB Agent Memory 的四层架构是这样工作的：&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id=&#34;l0--对话层conversation&#34;&gt;L0 — 对话层（Conversation）&lt;/h3&gt;
&lt;p&gt;原始对话记录，一字不差地保存。这是你的「地面真相」——每一个交互的完整原始凭证。&lt;/p&gt;
&lt;h3 id=&#34;l1--原子层atom&#34;&gt;L1 — 原子层（Atom）&lt;/h3&gt;
&lt;p&gt;从对话中提取的&lt;strong&gt;离散事实&lt;/strong&gt;。不加工、不归纳、不推测：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;「用户偏好 TypeScript 而非 JavaScript」&lt;/li&gt;
&lt;li&gt;「项目使用 PostgreSQL，端口 5432」&lt;/li&gt;
&lt;li&gt;「用户使用 Zod 做数据验证」&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些是知识的最小单位，像乐高积木一样可复用。&lt;/p&gt;
&lt;h3 id=&#34;l2--场景层scenario&#34;&gt;L2 — 场景层（Scenario）&lt;/h3&gt;
&lt;p&gt;把相关的原子事实组合成&lt;strong&gt;场景记忆&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;「当使用 HotelPlus API 时，用户遵循以下编码规范……」&lt;/li&gt;
&lt;li&gt;「在做前端组件时，用户偏好 Server Component」&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这是「上下文」的抽象——当 Agent 进入某个场景，它能自动关联该场景下所有相关事实。&lt;/p&gt;
&lt;h3 id=&#34;l3--人格层persona&#34;&gt;L3 — 人格层（Persona）&lt;/h3&gt;
&lt;p&gt;最高层，概括用户的&lt;strong&gt;工作风格和长期偏好&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;「清洁架构倡导者，TypeScript 优先，偏好 Server Component」&lt;/li&gt;
&lt;li&gt;「CI/CD 走 Jenkins，数据库用 PostgreSQL」&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Agent 大部分时间里只需要访问这一层就能正常工作。只有需要细节时才往下钻。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;渐进式披露（Progressive Disclosure）&lt;/strong&gt; 是整个架构最巧妙的地方。Agent 不需要每次都搜索整个向量库——它在人格层就能做出 90% 的正确判断，只有在特定场景下才需要去原子层挖细节。&lt;/p&gt;
&lt;h2 id=&#34;符号化短时记忆mermaid-画布的黑魔法&#34;&gt;符号化短时记忆：Mermaid 画布的黑魔法&lt;/h2&gt;
&lt;p&gt;长任务中最大的 Token 消耗大户是什么？&lt;/p&gt;
&lt;p&gt;不是用户的指令。是 &lt;strong&gt;Verbose 中间产物&lt;/strong&gt;——搜索结果、代码输出、错误追踪、工具调用响应。这些东西轻松吃掉几十万 Token。&lt;/p&gt;
&lt;p&gt;TencentDB Agent Memory 用了一个非常聪明的招数：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;卸载（Offload）&lt;/strong&gt;：完整的大段工具输出写入外部文件（refs/*.md）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;编码（Encode）&lt;/strong&gt;：把任务状态转换编码成 Mermaid 图语法——精准到 LLM 能解析，精简到人类能看懂&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;注入（Inject）&lt;/strong&gt;：只有轻量的 Mermaid 任务图（几百 Token）留在 Agent 上下文里&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;召回（Recall）&lt;/strong&gt;：需要验证细节时，通过 Mermaid 图的 node_id 瞬间找回原始文本&lt;/li&gt;
&lt;/ol&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Logs(100K+ tokens) → Offload → External Files(refs/*.md)
                 → Encode → Mermaid Canvas(with node_id)
                 → Inject ~200 tokens → Agent Context
                 → Recall via node_id → Files
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;这就是那 &lt;strong&gt;61% Token 削减&lt;/strong&gt; 的幕后功臣。Agent 不再在页面级的原始日志里游泳，而是看着一张干净的任务地图，按需下钻。&lt;/p&gt;
&lt;h2 id=&#34;全链路可追溯没有信息丢失的压缩&#34;&gt;全链路可追溯：没有信息丢失的压缩&lt;/h2&gt;
&lt;p&gt;每次我听到「记忆系统自动总结」，我的第一反应都是：&lt;strong&gt;总结错了怎么办？&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;传统方法用有损压缩——你把对话总结了，细节就再也找不回来了。这是一种「信我，我帮你记住了」的黑箱方案。&lt;/p&gt;
&lt;p&gt;TencentDB Agent Memory 的答案是 &lt;strong&gt;确定性的可追溯路径&lt;/strong&gt;：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;人格层/画布 → 场景层/JSONL 索引 → L0 原始对话/原始文件&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;每个抽象层都带着指向源的链接。如果人格层说「用户偏好 TypeScript」，你可以一路追溯回当时说这句话的那段原始对话。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;没有信息丢失。&lt;/strong&gt; 每个知识点都有一个「回乡证」。&lt;/p&gt;
&lt;p&gt;这对企业级应用来说是个超级大加分——审计合规不再是问题。&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;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# OpenClaw 用户&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;openclaw plugins install @tencentdb-agent-memory/memory-tencentdb
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;openclaw gateway restart
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# Hermes Agent 用户&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;docker run -d &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;&lt;/span&gt;  --name hermes-memory &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;&lt;/span&gt;  -p 8420:8420 &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;&lt;/span&gt;  -e MODEL_API_KEY&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;your-api-key&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;&lt;/span&gt;  -v hermes_data:/opt/data &lt;span style=&#34;color:#ae81ff&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;&lt;/span&gt;  hermes-memory
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;默认后端是 &lt;strong&gt;本地 SQLite + sqlite-vec&lt;/strong&gt;。不需要 PostgreSQL、不需要 Redis、不需要任何外部基础设施。安装即用。&lt;/p&gt;
&lt;p&gt;当然，生产环境如果要上规模，也可以配置 TencentDB 或其他后端。但开箱即用的体验对个人开发者来说非常友好。&lt;/p&gt;
&lt;h2 id=&#34;三个值得关注的细节&#34;&gt;三个值得关注的细节&lt;/h2&gt;
&lt;h3 id=&#34;1-框架集成已经做了落地&#34;&gt;1. 框架集成已经做了落地&lt;/h3&gt;
&lt;p&gt;目前官方支持 &lt;strong&gt;OpenClaw&lt;/strong&gt;（作为插件）和 &lt;strong&gt;Hermes Agent&lt;/strong&gt;（Docker 或手动安装）。但架构是框架无关的——核心只是对 LLM 调用做了一层记忆注入拦截，理论上任何 Agent 框架都能接入。&lt;/p&gt;
&lt;h3 id=&#34;2-不只是记住而是理解模式&#34;&gt;2. 不只是「记住」，而是「理解模式」&lt;/h3&gt;
&lt;p&gt;市面上很多记忆系统只是把历史对话存起来，下次搜索相似片段。TencentDB Agent Memory 做的事更像是 &lt;strong&gt;模式提取&lt;/strong&gt;——它不记你说了什么，它记你「通常怎么做」。&lt;/p&gt;
&lt;p&gt;当你开始一个新项目，它不会去搜「以前有个类似项目怎么做」，而是直接应用它已经学到的你的人格：TypeScript + Server Component + Zod + Prisma + Jenkins。&lt;/p&gt;
&lt;h3 id=&#34;3-连续-50-轮测试不退化&#34;&gt;3. 连续 50 轮测试不退化&lt;/h3&gt;
&lt;p&gt;我特别留意了它们的测试方式——SWE-bench 连续跑 50 个任务，模拟真实世界的长对话场景。这是很多「演示级」记忆系统做不到的。记忆系统最怕的就是「越用越膨肚」——上下文越来越大，检索越来越慢。这个四层架构在长任务场景下 Token 反而越用越少（因为短期记忆被符号化卸载了）。&lt;/p&gt;
&lt;h2 id=&#34;写在最后&#34;&gt;写在最后&lt;/h2&gt;
&lt;p&gt;AI Agent 在 2026 年的最大的瓶颈已经不是模型能力了——模型够聪明，但 &lt;strong&gt;Agent 没有持久记忆&lt;/strong&gt; 让它每次都得重新认识你。&lt;/p&gt;
&lt;p&gt;TencentDB Agent Memory 的开源，标志着一个重要的转折点：&lt;strong&gt;记忆正在从「附加功能」变成「基础设施」&lt;/strong&gt;。就像数据库之于 Web 应用、缓存之于微服务一样——没有记忆的 Agent，不配叫 Agent。&lt;/p&gt;
&lt;p&gt;腾讯云这一步棋走得很有意思。它不是去卷另一个大模型，而是去修 Agent 工程化的「下水道」。这恰恰是最务实、也最被低估的方向。&lt;/p&gt;
&lt;p&gt;而你，现在就可以在你的 Agent 上装上这个记忆系统。两行命令，零基础设施，7800+ 开发者在 GitHub 上已经验证过了。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;让 Agent 记住该记住的，你才能做真正重要的判断。&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;项目地址：&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;github.com/TencentCloud/tencentdb-agent-memory&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
