固定版本 · 查看当前页面
RAG 的前世今生:AI Agent 的记忆真相
晨旭 · 内容日期 2025-11-11。此页保留当时的文本、性质和段落,不用于判断现在是否仍然有效。
版本 35b79a531b458eacd4ea95bf39277c9630bf35f1d4b558cae44a0b95f308b7b3 · 读取 JSON
最近看了一些关于 RAG 的论文,以及一篇讲「从 RAG 到 Agentic RAG 再到 Agent Memory 的演进历程」的博客。
一直都有听说 RAG 已死,于是有了 Agentic RAG。刚搞明白 Agentic RAG,又出现了 Agent Memory。于是我就有了以下问题:
- RAG 是不是已经过时了?是不是已死? - Agentic RAG 和 Agent Memory 到底有什么区别? - Agent Memory 究竟是啥?它和 RAG 是替代关系吗?
这篇文章就是我在解决以上疑惑过程中所整理出来的。
一、RAG → Agentic RAG → Agent Memory
RAG 1.0:Naïve RAG
首先,RAG 并没有死,它是这一切的基石。先回忆一下朴素 RAG 是什么:
LLM 已有知识是旧的(训练完就定了),而且它不知道具体某公司的内部文档。RAG 就相当于给它一本参考书,通过检索外部知识来增强 LLM 的回答。
工作流是这样的:线下先把文档资料存入知识库(比如向量数据库);线上用户提问后,系统必须先去知识库里搜相关资料(单步检索),把搜到的资料和用户问题一起扔给 LLM,LLM 参考着回答。
这就好比开卷考试,LLM 每回答一个问题,就必须翻一次书。
局限性:这种 RAG 是静态、单步的。它有些傻,不管问题复不复杂,都只会翻一次书,而且是只读的,无法在对话中学习新东西。
RAG 2.0:Agentic RAG
Agentic RAG 是 RAG 的第一次重大升级,核心是引入了自治智能体。LLM 不再是被动的,它变成了一个会主动思考、会规划、会用工具的研究助理。
以「帮我查查苹果公司最近的财报,并总结下市场反应」为例,工作流变成了:
1. Agent 开始思考和规划:这个任务得分两步,先搜财报,再搜市场反应。 2. Agent 调用工具执行「搜索苹果财报」。 3. Agent 反思:财报拿到了,现在执行第二步。 4. Agent 再次调用工具执行「搜索市场对苹果财报的反应」。 5. 汇总所有多轮检索到的信息,生成最终答案。
和 RAG 1.0 的核心区别在于:RAG 1.0 是「必须搜,搜一次」,Agentic RAG 是「Agent 自己决定搜不搜、搜几次、用什么工具搜」,检索变成了动态的、多步的。
但请注意:Agentic RAG 核心解决的是「读」的问题。它让读变得更智能、更动态了,可本质上还是只读的(知识库仍然是离线预加载的)。它在对话中了解到的新信息,对话结束了就忘了。
RAG 3.0?:Agent Memory
如果说 Agentic RAG 是一个出色的研究助理(会查资料),那么 Agent Memory 就是一个能记住你、持续学习的私人管家。
核心定义:Agent Memory 是指智能体具备调用工具读写外部知识库的能力,让模型能在对话中记住新的信息。
和 Agentic RAG 最大的区别就一个字:写。Agent Memory 不仅有搜索工具(读),它还有了存储、写入、更新工具。
举个例子:
用户:我下周要去上海出差,帮我规划下。 Agent:(调用工具规划)好的,已规划。顺便问下,你有什么饮食偏好吗? 用户:哦对了,我海鲜过敏,千万别安排海鲜。 Agent:(思考「这是个重要信息」→ 调用 WriteTool.store("用户偏好:海鲜过敏"))
下次对话时:
用户:帮我推荐几个北京的餐厅。 Agent:(思考「先查查用户有啥偏好」→ 调用 SearchTool.search("用户偏好") → 检索到「海鲜过敏」) Agent:好的,已为您筛选了北京的几家餐厅,并自动排除了所有海鲜餐厅。
通过动态的读写外部记忆,实现持续学习和个性化,让 LLM 成为有长期记忆的智能体,能跨会话累积经验。
二、举例:一个智能客服的进化史
阶段一:Naïve RAG(基础问答机器人)
这个阶段的客服机器人就像一个只会照着说明书念的员工。知识库是静态的(产品手册、退货政策、发货时间表),并且它总是先查资料再回答。
用户问「你好,我想退货」,系统会强制检索,命中「退货政策」文档,把检索到的片段和问题一起交给 LLM 生成答案。
局限性有两个:
- 答非所问:如果用户问「我的订单到哪了?」,LLM 去静态知识库里检索,找不到实时物流信息,可能会回复一个关于标准发货时间的通用答案,而不是用户想要的实时状态。 - 无法处理多任务:用户问「我的 A 订单什么状态?顺便帮我看看 B 产品有没有货?」,它会很困惑,可能只能回答第一个问题,或者两个都答不好。
阶段二:Agentic RAG(多功能工具助理)
这个阶段的客服机器人升级成了一个聪明的助理。它拥有多种工具,会思考该用哪个工具、甚至是否需要用工具。但它的知识库本身仍然是只读的。
可用的工具包括 KnowledgeBaseSearch(搜索静态政策和说明书)、OrderTrackingAPI(实时查询订单物流)、InventoryCheckAPI(实时查询库存)。
面对「我的 A 订单到哪了?顺便帮我看看 B 产品有没有货?」,它会先思考出这是两个问题,分别调用两个 API,再整合成一个完整答案。
局限性:没有记忆。如果用户接着说「以后请叫我晨光,并且我只在工作日收货」,它会回答「好的」,但下次对话时会忘得一干二净,因为它没有写入新信息的能力。它只是一个出色的信息查询员。
阶段三:Agent Memory(专属私人管家)
这是目前最先进的阶段。客服机器人不仅拥有 Agentic RAG 的所有能力,还额外获得了写入工具,开始学习和记忆用户的偏好和历史。
工具列表在只读工具之外,多了 MemoryTools.Search(user_id) 和 MemoryTools.Write(user_id, info)。
场景 A:用户提出偏好
用户:以后请叫我「晨光」,并且我只在工作日收货。 Agent:(思考「用户提出了两个关键偏好,需要记下来」) → MemoryTools.Write(user_id="123", info="Nickname: 晨光") → MemoryTools.Write(user_id="123", info="DeliveryPreference: workdays_only") Agent:好的,晨光。我记住了,以后会尽量安排在工作日为您配送。
场景 B:几天后的下一次对话
用户:你好,帮我查下我上次买的那个耳机型号。 Agent:(思考「用户开始了新对话,我应该先回忆一下关于她的信息」) → MemoryTools.Search(user_id="123") 返回昵称和配送偏好 → OrderTrackingAPI(user_id="123", history_limit=1, type="headphones") Agent:您好,晨光!我查到您上次购买的耳机型号是 M-Tech 降噪耳机 Pro。
三、灵魂拷问:三者到底什么关系?
RAG 死了吗? 没有。RAG 是地基。Agentic RAG 把 RAG 变成了它工具箱里一个更智能的工具;Agent Memory 则在 Agentic RAG 的基础上,又增加了一个写入工具。
Agentic RAG vs Agent Memory?
- Agentic RAG = 动态只读,重点在 Agent 如何更聪明地检索信息。 - Agent Memory = 动态读 + 动态写,重点在 Agent 如何管理信息。
结论是:Agent Memory 吸收 RAG 能力,把它当作记忆读写的一部分工具来用,但不会废弃 RAG。尤其在涉及海量文档检索或信息密度很高的企业场景下,RAG 的向量检索仍然是不可替代的底层能力。
四、Agent Memory,没那么简单
那 Agent Memory 不就是加个写入吗?其实,真正的挑战不在于写入这个动作本身,而在于写入之后带来的一整套复杂的记忆管理难题。
1、决定记什么——写入策略
「你好」「哈哈」「嗯」这种无关紧要的词语不能全记下来,如果无序地记录一切,会导致记忆冗余和上下文污染。
必须有智能的触发式写入:Agent 要学会判断什么是重要事实(如「海鲜过敏」「称呼:晨光」),或者采用摘要写入机制,只存储对话摘要而非全部记录。
2、决定怎么读——读取策略
用户的记忆库越来越大,当用户说「老样子」时,Agent 如何在成千上万条记忆中,精准找出「老样子」指的是「拿铁少冰」还是「周五下午开会」?
这需要高效的检索,比如结合向量语义检索、重要性评分、新近度评分等。斯坦福的 Generative Agents 研究提出了「新近度 + 重要性 + 相关性」的三重检索评分机制。
3、决定何时忘——遗忘策略
一个只记不忘的 Agent 是灾难性的。如果用户搬家了,Agent 却还记着旧地址怎么办?如果信息冲突了怎么办?
常见的遗忘机制包括:
- 时间衰减:临时信息(如验证码)到期自动删除。 - 使用频率:长期不用的记忆被淘汰,类似 LRU 策略。 - 重要度:模型评估为不重要的信息被丢弃。 - 人工干预:允许用户一键忘记,满足 GDPR 等隐私法规。
4、隐私与安全——记忆的保险箱
记住「晨光」是小事,如果 Agent 记住了用户的身份证号、银行卡、家庭住址呢?这带来了巨大的隐私合规风险和记忆错乱的可能,需要严格的权限控制、数据加密以及用户授权机制。
从 Agentic RAG 到 Agent Memory,最大的挑战,是从一个无状态的查询工具,进化为一个有状态的持久化系统。这个系统必须具备一套完整的「写—读—忘」循环策略,以确保记忆是高效、准确、安全且有用的。
总结:RAG 在进化,而非死亡
- RAG 1.0(Naïve RAG):静态的开卷考试,解决了 LLM 的知识局限性(只读)。 - RAG 2.0(Agentic RAG):聪明的研究助理,解决了 RAG 1.0 检索过程太死板的问题(智能读)。 - RAG 3.0(Agent Memory):会学习的私人管家,解决了 Agent 无法记住新信息、无法实现个性化的问题(智能读 + 智能写)。
所以,RAG 远没有「已死」,它们三者将共同存在,构成更强大的「知识 + 记忆 + 推理」一体化代理,支撑着 Agent 走得更远。
该版本的判断
RAG 没有死,它是这一切的地基。Agentic RAG 把 RAG 变成了工具箱里一个更智能的工具,Agent Memory 又在它之上增加了写入能力,三者是叠加而非替代。
judgment · 2025-11-11 · 信心 high
Agentic RAG 和 Agent Memory 最大的区别就一个字——写。前者是动态只读,重点在更聪明地检索;后者是动态读加动态写,重点在管理信息。
judgment · 2025-11-11 · 信心 high
Agent Memory 真正的挑战不在写入这个动作本身,而在写入之后的一整套记忆管理难题:写入策略、读取策略、遗忘策略、隐私安全。
judgment · 2025-11-11 · 信心 high
一个只记不忘的 Agent 是灾难性的。用户搬家了却还记着旧地址、信息互相冲突,都需要时间衰减、使用频率、重要度评估和人工干预这些遗忘机制来兜底。
judgment · 2025-11-11
在海量文档检索或信息密度很高的企业场景下,RAG 的向量检索仍然是不可替代的底层能力,不会被记忆机制废弃。
judgment · 2025-11-11