距离我们上一次年终回顾已经过去了六个月。随着今年年初由 DeepSeek 引发的兴奋浪潮逐渐消退,AI 似乎进入了一个停滞阶段。这种模式在检索增强生成(RAG)领域同样显而易见:尽管关于 RAG 的学术论文层出不穷,但近几个月来,重大突破寥寥无几。同样,RAGFlow 的近期迭代也主要集中在增量改进上,而非发布重大功能。这究竟是未来飞跃的前奏,还是稳步渐进增长期的开端?因此,进行一次年中评估既及时又必要。
自诞生以来,RAG 一直是持续辩论的焦点——从 2023 年的“微调之争”到 2024 年的“长上下文之争”。然而,自 2025 年以来,随着注意力转向 Agent 系统,围绕 RAG 的讨论逐渐减少。这种转变催生了“Agent 消除了对 RAG 的需求”等说法。作为该领域的从业者,我们认为这类断言是市场驱动的噱头,但我们也承认它们可能会误导非专业人士。有些人甚至开始将 RAG 重新包装为“Agentic RAG”,并附上夸大的市场预测,声称它将主导传统 RAG [参考文献 1]。正是这种日益加剧的困惑促使我们进行本次回顾。
值得注意的是,“Agentic RAG”最早的提法大约出现在一年前 RAGFlow 推出其“Agent”功能之时。因此,RAGFlow 在学术文献中经常被引用为涉及 Agentic RAG 的比较基准。我们的分析也因此从审视 RAG 和 Agent 开始。
定义澄清:我们将“Agent”定义为包含工作流(Workflows)和智能体。在 RAGFlow 的当前版本(v0.19)中,一年前的“Agent”标签仍然仅限于工作流功能,尚未具备完全的智能体能力。与 Anthropic 提出的将这两个概念分开的建议[参考文献 2]不同,RAGFlow 坚持一种集成的设计理念,即工作流和 Agent 是内在统一的。
反思驱动:Agent 赋能 RAG 推理的关键
通过手动或模型驱动的反思循环,Agent 解决了 RAG 的推理挑战并实现了智能突破;两者密不可分。
在 2024 年底至 2025 年初的活动中,我们始终强调 RAG 在 2025 年的三个关键特性:推理、记忆和多模态。前两者与 Agent 有着内在的联系。在今年年初的第一篇博客中,我们全面概述了推理的实现。最近的一篇综述[参考文献 3]进一步综合了推理和 RAG,我们对其框架进行了调整和精简,如下图所示:
显然,作者已将去年的工作融入其推理框架中。一年前 RAGFlow 中的 Self-RAG、RAPTOR 和 Adaptive-RAG 等实现,在原文中被归类为“预定义推理”。我们建议将这些定义为基于工作流的方法(Workflow-Based Approaches)。相应地,我们早期文章中描述的“Agentic RAG”利用工作流——即手动定义的 RAG 与 Agent 之间的交互——通过迭代(Iteration)和切换(Switch)等组件实现反思(Agent 的核心能力)。这种方法解决了意图模糊和长上下文理解等推理挑战。
相比之下,基于智能体的方法(Agentic-Based Approaches)使用模型自主驱动反思。例如 Search O1、各种开源的 DeepResearch 实现以及 Search R1。这些又可分为两类:
- 提示驱动的反思(箭头上):依赖大语言模型(LLM)的提示。
- 依赖训练的反思(通常是强化学习):学习领域特定的思维链(CoT)和反思终止条件。
一个关键的澄清是:Search R1 式的方法并非天生优越。它们的主要作用是在通用大语言模型中针对特定领域数据优化思维链(CoT)和终止条件,但它们本质上仍然依赖于基于提示的 Agent 框架。
记忆的基石:RAG 如何支持 Agent 的记忆系统
RAG 构建了智能体的长期记忆,通过索引、遗忘和整合实现任务状态跟踪和上下文加速,并与短期记忆协同工作,形成完整的架构。
无论实现方式如何,Agent 除了 RAG 本身之外所做的事情并不多。那么,它们是如何让看似常规的 RAG 变得更智能,并减少对推理模型的依赖呢?它们的变革力量在于将大语言模型从单步的“直觉猜测”转变为能够进行迭代观察和反思的系统——这与人类认知非常相似。这种根本的协同作用解释了为什么像 RAGFlow 这样的 RAG 框架会自然地向完全的 Agent 集成(超越工作流)发展,这也是 RAGFlow 即将发布版本的一个关键特性。
2025 年常被称为“Agent之年”,涌现了众多令人眼花缭乱的 Agent 应用。然而,与 2024 年相比,核心的 Agent 框架并未取得太大进展。Agent 采用率的上升主要归功于大语言模型(LLM)中上下文学习(ICL)能力的提升,其次是工具(Tools)生态系统的成熟以及多智能体系统等热门词汇催生的新用例。因此,除了 LLM 本身的改进外,核心 Agent 范式的技术创新有限。一个值得注意的进展领域是所谓的“记忆”机制的发展。
如果说 OpenAI 在 2024 年收购 Rockset 是为了增强检索增强生成(RAG),那么它在 2025 年投资 Supabase 则是为了给 Agent 配备更易于使用的工具,并部分提供记忆管理。从 Agent 的角度来看,RAG 和各种数据基础设施解决方案在功能上是等同的——都只是在 Agent 上下文中调用的工具。然而,RAG 和记忆之间的内在联系使 RAG 从其他数据基础设施组件中脱颖而出。
记忆只有在 Agent 的上下文中才具有重要意义,这就引出了一个问题:记忆与 RAG 有何区别?[参考文献 4] 对此进行了详细总结,大致将记忆分为上下文记忆(Contextual Memory)和参数记忆(Parametric Memory)——后者通常与 KV 缓存和模型相关,我们稍后会讨论。通常,“Agent 记忆”指的是上下文记忆,它在两个关键方面对 Agent 有利:
- 存储任务管理元数据:例如,在 Agentic Reasoning 中,为规划(Planning)引入确定性(如结合人类反馈)意味着计划不再完全由 LLM 决定。相反,需要一种机制来存储计划的状态,从而使 Agent 从无状态转为有状态。此外,在推理过程中跟踪任务分解也需要一个存储库来存放与任务相关的元数据。
- 上下文管理:除了保留上下文,记忆还缓存和加速 LLM 的输出,并提供个性化响应所需的定制数据。
从接口的角度来看,图表显示记忆必须提供四个关键功能。更新(Updating)比较直接,下面解释其他三个:
- 索引(Indexing):记忆必须提供超越简单查询的高级搜索能力。对于上下文管理——Agent 记忆的第二个关键价值——实时搜索通常至关重要。例如,存储在短期记忆中的会话数据可能需要按主题进行搜索,以丰富后续的交互。
- 遗忘(Forgetting):这指的是有意的遗忘,模仿人类的认知。遗忘有助于保持专注,并且从技术上讲,较小的数据集通常能提高搜索精度。
- 整合(Consolidation):意为“巩固”,通过对存储的数据进行总结和标注来模拟认知过程。从技术上讲,这与 RAG 范式中的 GraphRAG 非常一致,其中 LLM 将记忆内容组织成知识图谱,通过提供更丰富的上下文来增强回忆。
下图揭示了记忆与 RAG 之间的真实关系,表明 RAG 本质上是长期记忆的一部分。记忆还包括短期记忆,短期记忆通常保存 Agent 基于会话的交互和个性化数据,这些数据通常是原始或未处理的形式。高价值数据随后通过整合(Consolidation)被转移为长期记忆的另一部分。
因此,没有强大 RAG 支持的记忆系统基本上是不可持续的。除了这种依赖性之外,记忆的其他方面仍然有限。关于参数记忆,虽然它似乎更接近“记忆”的本质,但其核心原理并没有固有的技术优势:它是一种基于 KV 缓存和注意力(Attention)操作的计算密集型方法,与 LLM 的推理引擎紧密集成,本质上是一种密集注意力机制。相比之下,基于 RAG 构建的长期记忆在近乎无限的上下文中为推理提供经过筛选的补充材料——这也是一种注意力机制,但却是稀疏的。如果用稀疏注意力实现 KV 缓存会有什么影响?我们稍后将探讨这个问题。
RAG 2025:克服技术挑战的平台期
长上下文推理依赖于分层索引;多模态数据面临存储膨胀的难题;而缓慢的基础设施限制了创新。
在审视了 RAG 与 Agent 的关系之后,让我们重新聚焦于 RAG 本身。尽管 2025 年与 RAG 相关的论文持续发表,但在概念和系统方面的真正创新却明显匮乏。RAG 技术是否已经达到了一个关键的平台期?RAG 的核心依赖于信息检索(IR),这是一个非常成熟的领域。然而,RAG 提出了超越传统 IR 的新挑战,包括查询多样性和多模态数据。
查询多样性始终是信息检索(IR)领域的一个长期挑战,它旨在弥合查询和答案之间的语义鸿沟。有许多方法可以解决这个问题,包括 2024 年的一些著名工作,如 GraphRAG、Contextual Retrieval、RAPTOR,以及 RAGFlow 采用的由领域专家指导的自动化标签库方法。这些方法本质上都采用了稀疏注意力的形式:复杂的查询需要更长的上下文,并需要在其中识别相关的注意力。对于简单的查询,存在有效的解决方案,依赖于良好的分块(chunking)和高效的多路召回。然而,对于复杂查询,真正有效的实现仍然难以捉摸。
因此,一些人认为,如果弥合语义鸿沟主要依赖于 LLM 生成辅助数据,为什么不直接将知识注入 LLM 的工作记忆中,从而绕过这些变通方法呢?这个想法源于 CAG [参考文献 5],它提议使用 KV 缓存来存储所有由 LLM 转换为 KV 格式的数据。后来的工作试图通过将 KV 数据与数据库技术相结合来实现稀疏注意力,以减少密集注意力带来的巨大带宽和计算成本。例如 RetrievalAttention [参考文献 6]、RetroInfer [参考文献 7] 和 AlayaDB [参考文献 8]。这些解决方案将 KV 缓存数据分为两个区域:一部分保留在传统的 KV 缓存中,而大部分则存储在向量索引或数据库中。在生成过程中——特别是在 LLM 推理的解码(Decoder)阶段——当前的查询向量(Q)会从索引或数据库中检索相关的值向量(V)。然后,这些 V 向量被加载到 KV 缓存中以完成最终的注意力计算,如下图所示。
尽管这项技术在解决当前 RAG 挑战方面显示出潜力,但它仍然面临重大障碍。这类方案的主要目标通常是降低 LLM 推理成本。传统的推理使用预填充/解码器(Prefill/Decoder)分离,依赖于密集注意力机制,虽然准确性高,但成本高昂且 GPU 内存需求巨大。相比之下,稀疏注意力方案利用 CPU 内存、磁盘存储和近似最近邻(ANN)向量搜索来降低成本。
这些解决方案需要与 LLM 推理引擎进行深度集成,必须修改以处理文本和向量数据,这实际上限制了它们只能用于开源模型。此外,在解码(Decoder)阶段频繁的向量检索要求检索系统和推理引擎共置部署以减少网络延迟,这使得其应用范围主要局限于私有化或本地部署。
矛盾的是,这种集成的“注意力引擎”方法可能无法完全解决核心的 RAG 问题,尤其是在处理长文档时。在长上下文 LLM 中,过于冗长的输入会损害性能,导致关键细节被忽略或误解。对于精确的细节检索,传统的 RAG 方法仍然占有优势。
因此,虽然我们必须密切关注“注意力引擎”方法,但实际的重点仍然是在 LLM 之外的 RAG,以改进对长文本推理的支持。无论是注意力引擎还是搜索引擎,它们的优势并不完全重叠——前者擅长在较小数据集上进行快速推理,后者则擅长在海量数据中进行快速检索。尽管 RAG 的范围在不断演变和扩展,它们在很大程度上仍然是互补的。
目前,除了像 GraphRAG 和 RAPTOR 这样支持跨块推理的方法外,很少有针对超长文本检索和推理的解决方案表现出强大的工程可行性。主要方法可以总结如下:
- 不分块,整篇文档检索:跳过分块,根据简短查询召回整个文档,并将其直接送入上下文。这种方法适用于少量文档,但在规模扩大时会因对全局文档上下文的理解不佳而导致召回相关性低。
- 分层索引与文档内 Agentic RAG:在数据处理阶段构建反映文档结构(如章节、小节)的树状索引。在文档级别进行召回,然后利用分层索引在文档内进行结构化遍历以定位相关块,从而实现文档内的“Agentic RAG”。
- 重叠分块与多粒度检索:使用具有显著重叠的分块,并构建多层索引(例如,文档、章节、段落级别)。这采用了一种结合粗粒度和细粒度的综合检索策略。尽管这些方法在概念上很直接,但每种方法都带来了独特的挑战。作为工具提供商,RAGFlow 计划在适当的时候提供类似的功能。
转向第二个方面:多模态数据。在我们的年终回顾中,我们强调多模态 RAG (MM-RAG) 是 2025 年的一个关键趋势。然而,到年中,这一趋势未能获得动力。主要障碍仍然是支持性基础设施的不成熟。如前所述,后期交互模型在 MM-RAG 流程中仍然占主导地位,这意味着嵌入模型产生的是张量(Tensors),即多向量。例如,单个图像可能由 1024 个向量表示,每个向量包含 128 维的浮点数,如下图所示。
现在有几家向量数据库声称提供原生的张量支持;然而,用于实际张量利用的全面解决方案仍然稀缺。这种稀缺性源于张量引起的急剧数据扩张,它可能使存储需求增加多达两个数量级。因此,除了原生的张量支持外,还需要采用整体方法来缓解存储膨胀。这些方法包括:
- 数据库级别的二值量化:用一个比特表示每个向量维度,从而将存储减少到原始大小的三十二分之一左右。
- 对量化多向量或张量索引的索引支持:确保向量索引能够高效管理这些二值量化的多向量。
- 重排器(Reranker)补偿:为了最大限度地减少量化带来的精度损失,在重排阶段将二值向量反量化回浮点数以重新计算相似度分数,从而保持准确性。
在模型层面,需要努力减少张量存储增长带来的开销。这包括:
- 使用多表示学习(Multi-Representation Learning, MRL)来降低每个向量的维度,例如,将维度削减到 64 可以使存储减半,但会略微降低召回准确率。
- 应用词元(Token)或图像块(Patch)合并来减少向量数量,例如从 1024 个图像块缩减到 128 个。
虽然在优化模型以进行文本排序方面已取得一些进展,但要满足多模态 RAG 的需求,还需要做更多的工作。因此,MM-RAG 的广泛采用有赖于其支持性基础设施的发展。
结语
总而言之,我们的分析表明,核心的 RAG 技术在 2025 年并未取得重大进展。与此同时,RAG 与 Agent 之间的相互依赖性却显著加深——无论是作为 Agent 记忆的基础,还是赋能 DeepResearch 的能力。从 Agent 的角度来看,RAG 可能只是众多工具中的一个,但通过管理非结构化数据和记忆,它已成为最基本和最关键的工具之一。可以公平地说,没有强大的 RAG,Agent 在企业中的实际部署将是不可行的。因此,RAG 作为一个独特架构层的价值现在比以往任何时候都更加突出。这些见解将直接指导 RAGFlow 下一个版本的旗舰功能。
至于 RAG 演进中的复杂挑战,让我们留给时间去解决。毕竟,RAG 本质上是一个架构框架;其真正的潜力将通过基础设施和模型的共同演进得以实现。敬请关注,并欢迎为 RAGFlow 点亮星星:https://github.com/infiniflow/ragflow
参考文献
- https://market.us/report/agentic-retrieval-augmented-generation-market/
- https://www.anthropic.com/engineering/building-effective-agents
- 通过系统 1 或系统 2 进行 RAG 推理:关于应对行业挑战的推理式智能体检索增强生成的综述 (Reasoning RAG via System 1 or System 2: A Survey on Reasoning Agentic Retrieval-Augmented Generation for Industry Challenges) https://arxiv.org/abs/2506.10408
- 重新思考 AI 中的记忆:分类、操作、主题与未来方向 (Rethinking Memory in AI: Taxonomy, Operations, Topics and Future Directions) https://arxiv.org/abs/2505.00675
- 别用 RAG:当缓存增强生成就是你知识任务所需的一切 (Don't Do RAG: When Cache-Augmented Generation is All You Need for Knowledge Tasks) https://arxiv.org/abs/2412.15605
- RetrievalAttention:通过向量检索加速长上下文 LLM 推理 (RetrievalAttention: Accelerating Long-Context LLM Inference via Vector Retrieval) https://arxiv.org/abs/2409.10516
- RetroInfer:一种用于可扩展长上下文 LLM 推理的向量存储方法 (RetroInfer: A Vector-Storage Approach for Scalable Long-Context LLM Inference) https://arxiv.org/abs/2505.02922
- AlayaDB:高效长上下文 LLM 推理的数据基础 (AlayaDB: The Data Foundation for Efficient and Effective Long-context LLM Inference) https://arxiv.org/abs/2504.10326