
AI Agent 如何拥有记忆?从原理到实践的详细指南
AI 功能
- 曝光
- 388K
- 点赞
- 562
- 转发
- 168
- 评论
- 37
- 收藏
- 1.1K
TL;DR
本指南阐述了 AI Agent 记忆的运作机制,对比了基础会话管理与采用语义整合及技能蒸馏技术的 EverOS 等高级企业级框架。
正在看 简体中文 译文
最近,Agent 的长时记忆变得非常流行,大家都在讨论记忆系统。
但当你去看那些解释时,大多数只是抛出一堆术语:向量数据库、RAG、上下文窗口、压缩、情景窗口、压缩、情景记忆……
看完之后,你还是说不清楚它到底是怎么工作的,对吧?
这不怪你,因为大多数文章都假设你已经有了基础。
不过,Agent 记忆系统目前是面试中最热门的话题。如果你不懂,在工作和面试中都会吃亏。
所以,这篇文章我会换个角度,从基础开始,不堆砌术语!我会尽力让每个人都能看懂!!
我保证,看完之后,你自己就能回答这三个问题:
什么是记忆系统?
如何理解 OpenClaw 的记忆系统?
企业级解决方案是什么样的?我选了 EverOS(github.com/EverMind-AI/EverOS)

这篇文章很长,我写了好几天。如果你有对 Agent 记忆感兴趣的朋友,可以收藏起来,之后收藏转发给他们。
Agent 记忆系统的基础知识
这部分主要讲 Agent 如何在单次会话内和跨会话之间维持记忆。如果你已经懂了,可以直接跳过。
首先,大模型两次 API 调用之间是没有记忆之间是没有记忆的。什么意思?
比如:第一次调用你说你喜欢吃橘子,但第二次调用你没有把“我喜欢吃橘子”附加到 prompt 里,模型就不会记得你的偏好。
那么 Agent 在对话中是如何维持这个记忆的呢?
首先,每次你提问时,底层系统会把你整个之前的聊天历史都发过去。模型看到它,就有了短期记忆。
但当聊天历史变得太长,超过模型的最大情景窗口时,它就会压缩历史。它会总结当前的对话历史,然后塞回 prompt 里,腾出空间继续聊天。
这就是模型在单次长对话中维持记忆的原理。如果你有点困惑,看下面的图:
现在你知道单次会话里记忆是怎么维持的了,那不同聊天会话之间呢?
这就轮到长时记忆系统了!!
它的作用是在你的情景被压缩或者你要求你要求记住某事时,把重要信息存到一个存储空间里。
然后,当你开始新对话时,在合适的时候提取并添加相关信息到 prompt 中。
通过“以新换旧”,制造出记住很多事情的错觉。这类似于人类的工作记忆和长时记忆。
好了,有了这些记忆基础知识,我们就可以继续理解什么是记忆系统了。
下面,我会给你一个概念框架。如果你看完,我保证你对任何记忆系统解决方案都能有个基本理解。
记忆系统
声称能给 Agent 长时记忆的解决方案至少有几十种。我们怎么研究这么多?
接下来,我会拆解一篇论文,让你对 Agent 长时记忆有个基本理解,然后对比 OpenClaw 和其他记忆框架的差异,方便你理解。
Google 在 2025 年 11 月发表了一篇论文,题为“情景工程、会话与记忆”。
在这篇论文”。
在这篇论文中,他们沿用半个世纪前认知科学的方法,将 Agent 记忆分为三类:
- 情景记忆:昨天发生了什么,上次讨论了什么。
- 语义记忆:你叫什么名字,你喜欢什么,你的身份是什么。
- 程序性记忆:如何完成一个任务,流程是什么。
这三类记忆共同构成了 Agent 的记忆。
但这只是故事的一半;另一半是关于如何维持和使用记忆。
就像人类一样,Agent 不能记住所有事情。因此,记忆系统需要一种可靠的方法来从对话历史中提取重要信息,然后保存下来。
我把这一步称为提取。
此外,我们还需要整理和合并记忆。
例如:
三个月前,我说我在大理,但后来我搬到了成都。如果这些信息没有合并,记忆里就会有矛盾的内容。
正确的做法是,在我搬走后,将记忆更新为“用户现在在成都”。
我把这一步称为更新。
还有检索步骤,涉及很多方法:关键词搜索、语义搜索、混合搜索,或者用大模型来检索。
所以,要理解一个记忆系统,你只需要理解这两个方面:
- 记忆分为多少类,每类存什么?
- 记忆是如何提取、更新和检索的?
现在,用这个框架,我们来弄清楚 OpenClaw 的长时记忆是如何实现的。
OpenClaw 的记忆分为多少每类存什么?
它的记忆分为以下三种类型:
- memory.md(记忆):属于语义记忆;存储你的身份、偏好和稳定的事实。
- daily logs(日常日志):属于情景记忆;按日期记录每天发生的事情。只添加新条目,从不删除。
- session snapshots(会话快照):属于情景层;当你使用 /new 或 /reset 命令开始新会话时,它会总结旧对话中最后 15 条“有意义”的消息,并保存为一个 markdown 文件。
提取、更新和检索是如何进行的?
提取发生在三种情况下:
- 当对话即将被压缩时:有价值的信息被写入日常日志。
- 当你使用 /new 或 /reset 开始新会话时:有价值的信息被保存到会话快照。
- 当用户要求记住某事时:系统决定将其存储到哪种记忆类型中。
检索发生在两种情况下:
- 开始新对话时:memory.md 自动注入到 prompt 中,同时读取今天和昨天的日常日志以获取近期上下文。
- 当 OpenClaw 觉得有必要检查记忆时:它会调用记忆搜索,通过混合搜索(关键词 + 向量)找到记忆位置,然后通过记忆 get 读取文件内容。
更新何时发生?我个人的理解是提取时发生的,在决定记住什么的时候。
如果你还是不太明白,看下面的图:
现在你对记忆系统有了一些了解,但说实话,OpenClaw 的系统有几个问题:
- 消耗大量 token。
- 如果 Markdown 没了,记忆就消失了。
- 经常忘记事情。
不过,真正的企业级记忆系统有很多优化来保证稳定性。背后的技术值得每个热爱技术的人了解。
接下来,我会分析企业级 Agent 记忆系统!!
企业级 Agent 记忆系统
在 AI 时代,每个程序员都应该了解企业级 Agent 记忆系统的技术,否则你会失去竞争力。
为什么?
因为大模型会继续蚕食我们的编程工作。唯一的选择就是为它们构建配套系统。
为了更容易解释,我选一个开源解决方案叫 EverOS 来拆解。
如果你打算从这个项目开始学习 Agent 记忆系统,欢迎给它点个 star:
就像我之前说的,要理解一个记忆系统,只需要回答两个问题。
EverOS 是如何回答的?
问题 1:记忆如何分类?
通用框架有 3 类,但 EverOS 把每一类进一步细分,如下所示:
- 语义记忆 关于你身份的长时记忆,分为两层:
- 稳定特质:你是夜猫子、程序员、程序员、住在北京——那些长时间不会改变的事情。
- 临时状态:你今天熬夜了,这周很忙,上周感冒了。
- 情景记忆 分为三种:
- Episode(Episode):对话或任务的浓缩总结,不是日常日志。例如:用户询问如何部署模型,在环境变量上卡住,花了 30 分钟。
- 事件日志(EventLog):从对话中提取关键事实,每条带有时间戳。例如:2026-05-10 用户买了一台 Mac mini,2026-05-12 用户关联了 GitHub。
- 预见(Foresight):与时间相关的“下一步”——你说过要做的事情或它推断你以后会涉及的事情,带有过期时间用于提醒。例如:下周五之前发送提案。
- 程序性记忆两种:
- Agent 案例(Agent Case):完成任务后,记录“意图 + 逐步操作 + 质量评分”。例如:发送邮件——它检查联系人、起草、请求确认、然后发送——这整套被归档并附上质量评分。 Agent 技能(Distilled Skill):多次做类似任务后,自动从这些归档中提炼出通用方法,并带有成熟度评分。做得越多,越可靠。例如:5 次邮件任务 5 次后,它学会在决定正式还是随意语气之前,检查收件人是否是关键人物。
如你所见,EverOS 将原来的 3 类拆成 6 类,可以更精确地存储,更有效地记忆。
而且,它更接近人类记忆——它预测未来并总结/提炼技能。
问题 2:提取、更新和检索是如何进行的?
记忆如何提取?
EverOS 自动判断“这段是否结束”。一旦结束,就切分并打包成一个记忆单元。
每个单元包含 4 样东西:
- 情节(Plot):讨论和做了什么——浓缩总结,不是逐字记录。
- 关键事实(Key Facts):里面哪些事实值得单独记录。
- 预见(Foresight):你说过要做或它推断你会做的事情,带有过期时间用于提醒。
- 上下文标签(Context Tags):时间、地点、可信度以及当时的情绪。
你只管聊天,它处理切分细节。
记忆如何更新?
例如:
一个月前,你告诉 AI:我打算开始健身。两周后,你说:我一直很忙,没去健身房。今天你说:算了,不健身了。
普通解决方案把三条都堆在日志里。模型检索到哪条模型就认为哪条是事实。但实际上,答案应该是最新那条。
EverOS 依靠“语义整合”,做三件事:
- 自动判断哪条是最新的(健身已停止)。
- 合并重复或指代同一事件的内容。
- 维护用户画像,将稳定偏好与临时状态分开(官方称为画像演化)。
细节如下所示:
记忆如何检索?
EverOS 提供 4 种检索方法,根据场景选择:
- 选择:
- :
- 关键词:精确匹配,适合特定名称或 ID。
- 向量搜索:语义匹配——不同词但意思相同可以匹配。
- 混合:关键词 + 向量一起,然后通过重排序模型过滤——推荐默认。
- 智能(Agentic):用于复杂多部分问题;LLM 判断搜索什么以及如何搜索,迭代直到找到(当混合不够用时使用)。
但 4 种方法不是关键;关键是检索逻辑。
普通解决方案是被动的——你给关键词,它返回匹配文档,就完了。
EverOS 主动重构上下文:
- 分析你这次想做什么。
- 激活相关的主题场景。
- 过滤过期信息(例如一年前的偏好可能无效)。
- 迭代搜索,直到收集到足够信息。
普通解决方案像搜索引擎,一次搜索就结束。EverOS 从不同角度反复查找,直到找到足够信息。
EverOS 在长时记忆基准 LoCoMo 上实现了 93.05% 的总体准确率(使用 GPT-4o-mini),比对比方案 Zep(85.22%)高出近 8 个百分点。
看完这一节,你应该对生产级 Agent 记忆系统有了很好的了解。但它们在实际工程中如何落地,你能用它们做什么?
实际生产实现
我会继续用这个开源项目来解释,有两个原因:API 免费开放,而且仓库里有 20 个真实案例——非常适合讨论实现!!
免费开放 API
EverOS 的 Cloud API 是免费开放的。
三步上手:
- 在浏览器中打开 everos.evermind.ai 注册;页面会给你一个 API Key,保存好。
- 通过命令行安装 SDK:pip install everos
- 在 Python 中实例化客户端并开始使用。
EverOS 不仅免费试用,还支持最近流行的技能自我进化功能!!
如何使用技能自我进化?
当 Agent 重复执行类似任务时,EverOS 自动将经验提炼成可复用的技能。下次遇到类似任务时,直接使用技能,而不是从头开始。
在代码中使用涉及链式调用 3 个 API:
两点注意:
- 第一次输入轨迹时,只生成案例(单个任务的归档)。技能只有在几次类似任务之后才会聚类和提炼。
- 必须使用 /memories/agent 端点;普通的 /memories 不会提取技能。
如果你不理解技能自我进化功能,看下面的图:
我简要介绍了代码用法,但作为 Agent 基础设施,这个项目有极其宝贵的真实用例。
而且这些用例都是开源的,可以学习!!
20 个真实用例
仓库 README 列出了 20 个用例,这里举几个:
- MemoCare(阿尔茨海默记忆助手):为认知衰退患者提供永不遗忘的外部记忆——这是最暖心的公益项目之一。
- Claude Code 插件:为 Claude Code 添加长时记忆,跨会话记住。
- 权力的游戏:将《权力的游戏》剧情喂给 AI,扮演长期记住自己是谁的角色。
- OpenHer:AI 女友,情感陪伴 + 记忆演化。
- 带记忆的电脑使用:让 Agent 控制电脑并记住每次操作的经验。
- 记忆图谱可视化:将记忆系统可视化为图谱。
完整列表在 github.com/EverMind-AI/EverOS 的 README 中。
顺便说几个官方插件:
API 还不够,所以 EverOS 将记忆能力打包成几个开箱即用的插件:
- Claude Code 插件:为 Claude Code 添加长时记忆——每次回复后自动保存,每次提问时回忆上下文,并带有可视化 Memory Hub 面板。一键安装。
- OpenClaw 插件:将 EverOS 作为 OpenClaw 的“记忆插槽”——Agent 在运行前自动检索相关记忆(情节、画像、案例、技能),运行后保存对话和工具调用。
- OpenClaw 技能:将 EverOS 记忆工具作为“技能”连接到 OpenClaw / Claude Code,让 Agent 按需调用记忆,而不是永久附加。
回到开头三个问题:
什么是记忆系统?OpenClaw 的记忆系统怎么样?企业级解决方案是什么样的?
你现在应该有答案了。
EverMind 是一个优秀的项目:
- 整个项目是 Apache 2.0 开源,目前有 4500+ star。
- EverMind 有很强的学术和算法背景,不断发表论文;之前的 MSA 也是一个非常先进的概念。
- EverMind 是盛大旗下的 AI 原生公司,资源充足。
如果你打算从这个项目开始学习 Agent 记忆系统,欢迎给它点个 star:
github.com/EverMind-AI/EverOS
他们月底还有新产品上线,期待!!
这是我第一次尝试用文章解释技术概念。为了让大多数人能看懂,我省略了很多细节。
涉及的技术很复杂;欢迎在评论区指出错误,我会修正。
如果你喜欢我的文章,可以收藏、评论、转发给朋友,并关注我。


