晨光里的AI

AI技术理解

RAG 的前世今生:AI Agent 的记忆真相

从 Naïve RAG 到 Agentic RAG 再到 Agent Memory 的演进路线,用一个智能客服的三阶段进化史讲清三者的关系,以及 Agent Memory 背后写—读—忘的记忆管理难题。

Written by 晨旭发布于 约 8 分钟同步发布

TL;DR

一直有人说 RAG 已死,于是有了 Agentic RAG;刚搞明白 Agentic RAG,又出现了 Agent Memory。 这篇是在解决这几个疑惑的过程中整理出来的。 结论是 RAG 没死,它是地基:Agentic RAG 把 RAG 变成工具箱里一个更智能的工具, Agent Memory 又在此之上加了一个写入工具。 三者的区别可以用一个字概括——Agentic RAG 是动态只读,Agent Memory 是动态读加动态写。 但真正的挑战不在于「写」这个动作,而在于写完之后的一整套记忆管理: 决定记什么(写入策略)、决定怎么读(检索策略)、决定何时忘(遗忘策略),以及记忆的隐私与安全。

目录

最近看了一些关于 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 又在它之上增加了写入能力,三者是叠加而非替代。#

    判断 · 把握较大

  • Agentic RAG 和 Agent Memory 最大的区别就一个字——写。前者是动态只读,重点在更聪明地检索;后者是动态读加动态写,重点在管理信息。#

    判断 · 把握较大

  • Agent Memory 真正的挑战不在写入这个动作本身,而在写入之后的一整套记忆管理难题:写入策略、读取策略、遗忘策略、隐私安全。#

    判断 · 把握较大

  • 一个只记不忘的 Agent 是灾难性的。用户搬家了却还记着旧地址、信息互相冲突,都需要时间衰减、使用频率、重要度评估和人工干预这些遗忘机制来兜底。#

    判断

  • 在海量文档检索或信息密度很高的企业场景下,RAG 的向量检索仍然是不可替代的底层能力,不会被记忆机制废弃。#

    判断

引用本文

晨旭,《RAG 的前世今生:AI Agent 的记忆真相》,晨光里的AI,2025-11-11

[晨旭:《RAG 的前世今生:AI Agent 的记忆真相》](https://chenxu.xin/writing/rag-to-agent-memory)

带进你的 AI 继续追问

这篇文章有一份干净的 Markdown 原文,可以直接交给任何模型读,不用复制粘贴。