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

> 作者：晨旭｜发布：2025-11-11｜系列：AI技术理解
> 来源：https://chenxu.xin/writing/rag-to-agent-memory

从 Naïve RAG 到 Agentic RAG 再到 Agent Memory 的演进路线，用一个智能客服的三阶段进化史讲清三者的关系，以及 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 又在它之上增加了写入能力，三者是叠加而非替代。（判断 · 把握较大）
  永久链接：https://chenxu.xin/writing/rag-to-agent-memory#rag-is-not-dead
- Agentic RAG 和 Agent Memory 最大的区别就一个字——写。前者是动态只读，重点在更聪明地检索；后者是动态读加动态写，重点在管理信息。（判断 · 把握较大）
  永久链接：https://chenxu.xin/writing/rag-to-agent-memory#memory-vs-agentic-rag-is-write
- Agent Memory 真正的挑战不在写入这个动作本身，而在写入之后的一整套记忆管理难题：写入策略、读取策略、遗忘策略、隐私安全。（判断 · 把握较大）
  永久链接：https://chenxu.xin/writing/rag-to-agent-memory#memory-hard-part-is-management
- 一个只记不忘的 Agent 是灾难性的。用户搬家了却还记着旧地址、信息互相冲突，都需要时间衰减、使用频率、重要度评估和人工干预这些遗忘机制来兜底。（判断）
  永久链接：https://chenxu.xin/writing/rag-to-agent-memory#agent-that-never-forgets-is-a-disaster
- 在海量文档检索或信息密度很高的企业场景下，RAG 的向量检索仍然是不可替代的底层能力，不会被记忆机制废弃。（判断）
  永久链接：https://chenxu.xin/writing/rag-to-agent-memory#vector-retrieval-still-irreplaceable

---

本文出自晨光里的AI（https://chenxu.xin），作者晨旭。
引用时请保留来源链接。文中标注「判断」「假设」的部分是作者的个人看法，不是事实。
