摘要: 本文讨论怎么给 AI Agent 加上“长期记忆”,让它记住用户偏好、项目背景和过去的经验,而不是每次对话都从零开始;并借 GitHub 上最近很热的 Hindsight 等开源项目,梳理记忆层该怎么选。最重要的结论是:长期记忆不是“把聊天记录存下来”,而是写入、检索、整理三件事;个人和小项目可以先从最简单的本地记忆起步,等遇到“换个说法就找不到”“记忆越来越乱”这类问题,再上 Hindsight、Mem0、Graphiti、Letta 这类专门的记忆系统。选型之前,先用自己的数据做一个小评测集,比看任何厂商的榜单都可靠。本文适合正在搭建 Agent、个人 AI 助手或 AI 应用的开发者。读完本文,你能看懂几类主流记忆方案的区别,用附带的零依赖代码给 Agent 加上第一版记忆,并用评测脚本衡量任何记忆系统在你数据上的表现。
配套项目源码:下载 Agent 长期记忆代码与评测工具包(ZIP)。解压后按 README 使用记忆层代码与评测脚本。
核心结论
给 Agent 加长期记忆值得做,但不要一上来就上最重的方案;先用自己的数据评测,再按需求升级。
- 记忆是三件事,不是一个数据库。Hindsight 官方文档把记忆操作归纳为三步:retain(写入,用模型抽取事实、实体、时间和关系)、recall(检索)和 reflect(在已有记忆上推理,形成新的认识)。
- 关键词检索的最大短板是“换个说法”。我们用附带的零依赖记忆层做了 12 个问题的评测,只靠关键词检索命中 7 个(58%),没命中的 5 个全是换了说法的问题,比如问“用什么编程语言”,记忆里写的是“Python”。
- 主流开源方案各有侧重。第三方对比普遍认为:Mem0 上手最快、适合按用户做个性化记忆;Graphiti(Zep 的开源引擎)擅长随时间变化的事实;Letta 是带记忆的完整 Agent 运行时;Hindsight 主打让 Agent 从经验中学习。
- Hindsight 值得关注,但榜单要带着问号看。其 GitHub 仓库采用 MIT 许可、约 2.2 万星,支持一个 Docker 容器部署;仓库说明自身基准成绩经研究合作方独立复现,同时标注其他系统的分数为厂商自报。
- 记忆也是隐私资产。记忆层会长期保存用户信息,必须做好隔离、脱敏、可删除和审计。
背景与主要变化
2026 年,Agent 的瓶颈正在从“会不会用工具”转向“记不记得住”。9 月下旬的 AI 开源趋势日报把记忆持久化列为新前沿,Hindsight 这类项目在 GitHub 上持续走热。
为什么记忆突然重要?因为 Agent 开始长期工作了。一个每天帮你处理邮件、写代码、跑流程的 Agent,如果每次都要重新告诉它“我不吃辣”“服务器在哪”“上次那个方案为什么没用”,它就永远只是一个聪明但健忘的实习生。
在记忆这件事上,常见做法大致经历了四个阶段,下表做了一个简化对照(编辑归纳):
| 做法 | 怎么记 | 优点 | 主要问题 |
|---|---|---|---|
| 把历史对话全塞进上下文 | 不做处理,原样保留 | 实现最简单 | 上下文有上限,成本随对话增长,旧信息被稀释 |
| 常驻说明文件(AGENTS.md 等) | 人工维护一份固定说明 | 稳定、可控 | 只适合相对固定的项目知识,不会自动更新 |
| 向量检索(RAG 式记忆) | 把内容切块、向量化,按相似度检索 | 能处理“换个说法” | 不区分事实新旧,容易召回过时或矛盾的信息 |
| 专门的记忆层 | 用模型抽取事实,结合向量、关键词、图谱和时间检索,并持续整理 | 能记住变化、能去重、能从经验中总结 | 部署更重,写入要调用模型,有成本和延迟 |
专门的记忆层之所以兴起,是因为它解决了向量检索的几个老问题。以 Hindsight 为例,官方文档说明其检索同时运行四种策略:语义向量、BM25 关键词、实体与时间及因果关联的图谱检索、时间范围过滤,结果合并后再重排。它还会在后台把相关事实整合为“观察”(observations),新证据到来时对原有认识进行补充或修正,而不是简单覆盖。
核心功能拆解
不管选哪个记忆系统,拆开看都绕不开四个环节:写什么、怎么检索、怎么整理、怎么隔离。理解这四个环节,你就能看懂任何记忆方案的设计取舍。

环节一:写入——记什么比怎么存更重要
最常见的错误是把所有对话原样存下来。好的写入会先提炼:这句话里有没有值得长期记住的事实?是关于用户的、关于世界的,还是 Agent 自己的经验?Hindsight 在写入时用模型抽取关键事实、时间、实体和关系;它把记忆分为世界事实、Agent 自身经验、整合后的观察和心智模型几类。
写入环节还必须过滤敏感信息。Hindsight 提供一个可选的“记忆防护”策略,官方说明它会按 45 种模式扫描密钥和个人敏感信息,匹配后脱敏或直接拒绝写入。
环节二:检索——单一策略总有盲区
关键词检索精确但不懂同义,向量检索懂语义但会召回“看起来相似其实过时”的内容,图谱擅长关系推理,时间过滤擅长“上个月发生了什么”。所以成熟的记忆层普遍采用混合检索,再用重排模型排序。本文后面的实测会直观展示单一关键词检索的盲区。
环节三:整理——记忆需要“新陈代谢”
用户上个月说在出差,这个月回来了;项目上周用 Hexo,这周迁到了 WordPress。记忆如果只增不改,很快就会自相矛盾。第三方对比文章指出,Graphiti 的核心优势就在于对事实的有效时间建模,能区分“什么时候为真”;Letta 则以可自我编辑的记忆块著称。附带的零依赖实现提供了一个最朴素的办法:给临时信息设置过期时间。
环节四:隔离——一个用户一个“脑子”
多用户应用里,最不能出的错是 A 用户的记忆出现在 B 用户的回答里。Hindsight 用“记忆库”(bank)做隔离,官方说明一个 bank 对应一个用户、Agent 或项目,库与库之间严格隔离。附带实现用 scope 做同样的事。
适用人群与使用场景
需要长期记忆的,是“会和同一个人或同一个项目反复打交道”的 Agent。一次性问答、无状态的工具调用,不需要记忆层。
以下几类场景最值得加(编辑判断,不代表官方结论):
- 个人 AI 助手:记住你的偏好、作息、常用工具和正在进行的事情。数据量小,从轻量方案起步即可。
- 编程 Agent:记住项目约定、踩过的坑和上次没做完的工作。Hindsight 官方提供了面向 Claude Code、Codex、Cursor 等编程工具的一键集成,站内的 Claude Code 教程 介绍了这类工具的基础用法。
- 客服与销售 Agent:按客户记住历史问题和偏好。用户多、隔离要求高,适合成熟的记忆系统。
- 长期运行的业务 Agent:需要从成功和失败中总结经验,例如“哪类方案通常会被客户拒绝”。这正是 Hindsight 主打的“从经验中学习”方向。
- 知识库与个人笔记:如果你已经有一套自建知识库,可以把它作为 Agent 记忆的一个来源。站内的 知识库相关教程 可以参考。
不需要上重型记忆层的情况也要说清楚:Hindsight 自己的文档就提到,它可以用于 n8n 这类简单工作流,但对这类应用可能过于重量级。如果你的需求只是记住十几条固定偏好,一份常驻说明文件就够了。
安装、配置或使用步骤
推荐的路线是三步走:先用零依赖的本地记忆跑通流程,再用评测集衡量效果,最后按需要升级到专门的记忆系统。
- 下载 agent-memory-starter 并运行测试。它只用 Python 标准库,不需要安装任何依赖:
cd agent-memory-starter
python3 test_memory.py
- 理解它的检索方式。英文按单词切分,中文按相邻两个字切分,这样“西湖”“骑行”这类短词也能匹配。核心分词函数如下:
def tokens(text: str):
"""英文按单词,中文按相邻两字切分,兼顾“西湖”“骑行”这类短词。"""
text = text.lower()
out = re.findall(r"[a-z0-9_]+", text)
for run in re.findall(r"[\u4e00-\u9fff]+", text):
out += [run] if len(run) == 1 else [run[i:i + 2] for i in range(len(run) - 1)]
return out
- 在 Agent 里接入 retain 和 recall。基本模式是:每轮对话开始前,用用户的问题调用 recall,把返回的记忆放进上下文;对话结束后,把值得长期保存的新事实用 retain 写入。每个用户使用独立的 scope。
- 准备你自己的评测集。参照
eval_set.json的格式,写 10 到 30 条你的 Agent 应该记住的事实,再写一组用户可能会问的问题,每个问题标注正确答案应包含的关键词。问题要刻意换说法,这才能测出真实水平。 - 运行评测:
python3 eval_memory.py eval_set.json --k 3
- 根据评测结果决定是否升级。如果换说法的问题大量失败,或者记忆数量增长后结果越来越乱,就该评估专门的记忆系统了。
- 试用 Hindsight(可选)。官方 README 给出的推荐方式是一个 Docker 容器,自带嵌入式 PostgreSQL,API 在 8888 端口、管理界面在 9999 端口。官方说明它支持 25 种以上的模型服务商,包括 DeepSeek 和本地的 Ollama;写入时需要调用大模型抽取事实,所以要配置模型的 API Key。
- 把新系统接入同一套评测。
eval_memory.py的后端只需要实现 retain 和 recall 两个方法,就可以用同一份评测集对比不同记忆系统。
实际工作流示例
我们用一份 12 个问题的示例评测集,测试了附带记忆层在两种写法下的表现。这组测试的价值不在分数本身,而在于它清楚地展示了关键词记忆的盲区在哪里。

测试一:只用关键词检索
我们写入了 10 条关于虚构用户“张伟”的事实(编程语言、口味、服务器、回答偏好、孩子年级等),然后提了 12 个问题。结果 top-3 命中 7 个,命中率 58%。
没命中的 5 个问题很有代表性:问“他平时用什么编程语言”,记忆里写的是“主要写 Python 和 TypeScript”,两者没有共同的词;问“推荐餐厅时要注意什么口味”,记忆里是“不吃辣,喜欢清淡的杭帮菜”;问“服务器在哪家”,记忆里写的是“VPS”;问“他住在哪个城市”,记忆里是“在杭州做独立开发”;问“他关心哪些 AI 搜索引擎”,记忆里写的是“希望文章被豆包和 Kimi 引用”。这就是关键词检索的天然盲区:人会换着说法问,机器只认字面。
测试二:写入时补充标签
我们给其中 5 条事实补上了标签,例如给“不吃辣”那条加上“口味、饮食、餐厅”。重新评测后,12 个问题全部命中,只取第一条结果也全部命中。
但必须说清楚:这些标签是我们在已经知道问题的情况下写的,所以 100% 只能证明“补充同义词”这个机制有效,不代表真实场景的准确率。在真实使用中,你无法预知用户未来会怎么问。这正是专门记忆系统的价值所在:它们在写入时用大模型自动抽取实体和概念,检索时再叠加语义向量,本质上是把“补标签”这件事自动化、规模化了。
其他测试
6 项单元测试全部通过:中文检索、不同用户的记忆互不可见、写入含 API Key 的内容时自动脱敏且审计日志留有记录、过期记忆不再被检索、删除操作必须指定目标(防止误删整个用户的记忆)、空内容拒绝写入。
成本估算
以下为示例计算,非官方数据。零依赖本地记忆没有模型调用成本,检索全部在本地完成。专门的记忆层写入时通常要调用大模型抽取事实:假设每条对话写入时消耗约 1500 个输入 token 和 300 个输出 token,一个每天 200 轮对话的个人助手,每月约 900 万输入 token 和 180 万输出 token。若使用每百万 token 输入 1 元、输出 4 元的低价模型,每月约 9 + 7.2 = 16.2 元。实际消耗取决于记忆系统的实现和所选模型,Hindsight 也支持本地模型以进一步降低成本。站内的 API 降本实测 可以帮你估算模型费用。
对比与选型建议
选记忆层,先想清楚你要解决的是哪类问题:个性化偏好、随时间变化的事实、完整的 Agent 运行时,还是从经验中学习。
| 方案 | 定位 | 许可与部署 | 更适合谁 |
|---|---|---|---|
| 零依赖本地记忆(本文附带) | 关键词检索 + 隔离 + 脱敏 | 单个 Python 文件,本地 SQLite | 个人助手原型、学习记忆层原理 |
| Hindsight | 从经验中学习,写入、检索、反思三步 | MIT;可单容器自托管,也有云服务 | 长期运行、需要总结经验的 Agent |
| Mem0 | 按用户做个性化记忆,接入快 | 开源库 + 托管平台 | 需要快速给应用加“记住用户”的团队 |
| Graphiti(Zep 引擎) | 时序知识图谱,记录事实何时为真 | Apache-2.0;需要图数据库 | 事实经常变化、需要追溯的场景 |
| Letta(原 MemGPT) | 带记忆的完整 Agent 运行时 | Apache-2.0;可自托管服务 | 想要整套 Agent 框架而不只是记忆层 |
| Cognee | 图谱与向量结合的记忆平台 | Apache-2.0 | 需要组织级知识图谱的团队 |
说明:Hindsight 的许可、部署方式与功能来自其官方仓库;其他方案的定位与许可来自多篇第三方对比文章,相关项目迭代很快,使用前请以各自官方仓库为准。
几条选型建议(编辑判断,不代表官方结论):
- 用自己的数据评测,不要只看榜单。记忆系统的公开成绩大多由厂商自己发布,测试条件各不相同。Hindsight 的 README 也明确标注,除其自身成绩外,其他系统的分数为厂商自报。
- 从轻到重,逐步升级。先用常驻说明文件和轻量记忆解决八成问题,确认瓶颈后再引入重型系统。
- 看自托管的真实成本。有的方案只需一个容器,有的需要外部图数据库和向量库。第三方对比文章指出,Hindsight 和 Cognee 这类内置存储的方案自托管最简单。
- 想了解更多 Agent 构建方法,可以看站内的 AI Agent 专题。
风险、限制与注意事项
记忆让 Agent 更好用,也让它掌握了更多关于用户的信息。下面这些风险必须在上线前处理。
隐私与合规。 记忆层会长期保存用户的个人信息、偏好甚至敏感事项。要明确告知用户哪些信息会被记住,提供查看和删除的途径;涉及个人信息处理时,遵守所在地的个人信息保护法规。健康、财务、证件号码等敏感信息默认不应写入记忆。
密钥与敏感信息泄露。 用户可能在对话里粘贴 API Key、密码或身份证号。写入前必须脱敏或拒绝。附带实现会自动脱敏常见密钥格式和 18 位身份证号,Hindsight 也提供可选的敏感信息扫描。
记忆投毒与 Prompt Injection。 如果 Agent 会把网页、邮件、文档里的内容写入记忆,攻击者可以在这些内容里埋入虚假“事实”或恶意指令,让它长期影响 Agent 的行为。对外部来源的内容要标注来源、降低信任度,不要让记忆内容直接变成指令。
过时与矛盾的记忆。 用户的情况会变,记忆如果不更新就会误导回答。临时信息设置过期时间,重要事实变化时显式更新或删除旧记忆,并定期抽查。
用户隔离失效。 多用户场景下,任何一次检索都必须带上用户标识。上线前专门测试“用户 A 能否检索到用户 B 的记忆”。
删除要彻底、可追溯。 用户要求忘记某件事时,要能真正删除,并在审计日志中留痕。附带实现要求删除操作必须指定具体目标,防止一次误操作清空整个用户的记忆。
写入延迟与失败。 专门记忆层的写入通常要调用大模型,耗时和失败率高于普通数据库写入。社区中有用户反馈,在某些集成中写入操作可能远慢于检索并触发超时。写入最好异步进行,失败时重试并保证幂等,不要阻塞用户的对话。
事实依据与来源
本文信息按可信度分级如下:
- 官方已确认:Hindsight 的写入、检索、反思三类操作,写入时用模型抽取事实、实体、时间和关系,四种并行检索策略与重排,后台整合为观察,记忆库隔离,可选的 45 种模式敏感信息扫描,多语言保留原文实体,MIT 许可,单容器 Docker 部署与端口,支持 25 种以上模型服务商,面向编程 Agent 的集成,对简单工作流可能过重的说明,以及基准成绩的复现与“其他分数为厂商自报”的标注,均来自 Hindsight 官方 GitHub 仓库;仓库约 2.2 万星与 MIT 许可为写作时页面显示。
- 第三方报道:Mem0、Graphiti、Letta、Cognee 的定位与许可,Graphiti 的时序建模优势,自托管难易比较,均来自多篇第三方对比文章(其中一篇为 Hindsight 官方博客,存在立场,已尽量交叉引用);写入操作可能超时的反馈来自社区 issue;记忆持久化成为新前沿来自 AI 开源趋势日报。
- 实测结果:零依赖记忆层的 6 项单元测试、无标签 58% 与带标签 100% 的评测结果,均为本文写作时实际运行所得;带标签的结果因标签在已知问题时编写,仅用于演示机制。本文未实际部署 Hindsight 等系统进行对比测试。
- 编辑判断与示例计算:记忆做法的阶段对照、人群建议与选型表为本站编辑判断;模型成本估算为示例计算,非官方数据。
内容核验日期为 2026 年 9 月 29 日。
FAQ
Agent 的长期记忆和 RAG 有什么区别?
目的不同。RAG 主要从固定的资料库里检索知识;长期记忆则持续记录与某个用户或项目相关的新信息,并且要处理信息的更新、矛盾和过期。很多记忆系统内部会用到向量检索,但还会叠加事实抽取和整理。
个人项目需要上 Hindsight 或 Mem0 吗?
不一定需要。如果只需要记住十几条固定偏好,常驻说明文件或本文附带的轻量记忆就够了;当你发现换说法就找不到、记忆越来越多越来越乱时,再考虑专门的记忆系统。
Hindsight 是开源的吗?
是开源的。其官方 GitHub 仓库采用 MIT 许可,可以用 Docker 自托管;Vectorize 同时提供托管的云服务。
记忆系统的榜单成绩可信吗?
建议谨慎参考。多数公开成绩由厂商自己发布,测试条件不统一;最可靠的做法是用你自己的数据做一个小评测集,对比不同方案。
为什么关键词检索会漏掉很多问题?
因为用户会换说法。记忆里写的是“Python”,用户问的是“编程语言”,两者没有共同的字词。我们的实测中,关键词检索没命中的问题全部属于这种情况。
怎么防止记忆里存进密码或 API Key?
写入前做脱敏或拒绝。可以用正则匹配常见密钥格式,也可以开启记忆系统自带的敏感信息扫描;同时在 Agent 的说明里约定不要记录证件号、密码等信息。
用户要求“忘掉某件事”怎么处理?
要真正删除并留痕。提供按内容或编号删除的接口,删除后确认无法再检索到,并在审计日志中记录删除动作;多用户系统要确保只删除该用户自己的记忆。
参考来源
- GitHub:vectorize-io/hindsight 官方仓库
- arXiv:Hindsight Is 20/20 论文
- Hindsight 官方博客:开源 Agent 记忆系统对比(厂商立场)
- Cognee 博客:开源 LLM Agent 记忆框架对比(厂商立场)
- Medium:五种 Agent 记忆系统多维对比(第三方)
- GitHub Issue:记忆写入超时的社区反馈
内容核验日期:2026 年 09 月 29 日
工具选型与提示词资料
适合阅读工具评测、工具推荐、对比测评类文章后继续转化。