[控场AI]
· 5 分钟阅读· 2,901 字

RAG与Agent记忆融合:Agentic GraphRAG如何让智能体不再遗忘

RAG与Agent记忆融合:Agentic GraphRAG如何让智能体不再遗忘

Agentic GraphRAG用统一图结构连接RAG上下文与Agent记忆,解决文档更新后旧决策无人提醒的问题。

文章介绍了一个名为Agentic GraphRAG的开源项目,旨在解决当前AI Agent中上下文层(RAG)与记忆层(Agent Memory)各自为政、缺乏联动的问题。核心设计是将知识、工作记忆和决策记忆三层数据存入同一张图,决策节点链接到确切的源证据和文档版本,从而在文档变更时自动标记受影响的旧决策。知识管道使用Docling摄入、Chonkie分块保留文档层级,检索结合Neo4j全文与向量索引并以reciprocal rank fusion融合排序。内置Agent会校验引用段落是否在本次运行中实际取回且属于可读文档。项目路线图包括管道模块化、扩展更多图数据库后端以及即将发布的领域数据集基准测试。

做AI Agent的人大概都遇到过这种尴尬:智能体昨天还依据某份政策文档做出了决策,今天文档更新了,它却毫不知情,继续按老规矩办事。问题不在于模型不够聪明,而在于上下文层(RAG)和记忆层(Agent Memory)长期各管各的。一位在RAG、LLM训练和检索领域摸爬滚打三年半、参与过MMTEB论文的作者,在Reddit上分享了他们正在构建的Agentic GraphRAG项目,试图用一张统一的图把这两层缝在一起。

Reddit原帖截图

两层割裂:Agent的“知识”与“经验”互不相通

当前Agent生态里,两拨人各干各的。一拨在做Context Layer:混合RAG、GraphRAG,把检索管道接到Agent上,让模型能查文档、查图谱。另一拨在做Memory Layer:让Agent把做过的事、做过的决策存下来,下次接着用——编码Agent在这方面走得最靠前。

原帖作者观察到的痛点是:这两套系统缺乏真正的联动。Agent基于某份政策文档做出一个决策并记录下来,文档后来改了,却没有任何机制告诉Agent“你那个决策已经过时”。记忆是记忆,知识是知识,中间没有一根线把它们连起来。Agentic GraphRAG 要解决的正是这个“决策过期无人提醒”的问题。

RAG(Retrieval-Augmented Generation,检索增强生成) 是一种让大语言模型在生成回答前先检索外部知识库的技术范式。它通常包含文档切分、向量化嵌入、相似度检索和上下文拼接几个步骤,使模型能引用训练数据之外的最新信息。Agent Memory(智能体记忆) 则关注智能体在交互过程中对自身经历、任务状态和历史决策的持久化存储与复用,常见形式包括短期对话缓冲、长期向量记忆和结构化事件日志。两者虽然都涉及“让模型知道更多”,但RAG侧重外部静态知识的检索,Memory侧重内部动态经验的积累;前者更新依赖文档重新索引,后者更新依赖事件写入。由于缺乏统一的标识和链接机制,文档版本变化无法自动传导到记忆中的决策记录,这正是文章所述割裂的根源。

三层图结构:知识、工作记忆与决策记忆

项目的核心设计是把数据存进一张图,图里分三个相连的层。

知识层承担Context Layer的角色,存文档、源段落、实体及其关系。摄入用Docling,分块用Chonkie,分块时会保留文档的章节结构、表格和段落层级。每个段落都带着来源版本和位置信息,PDF还会记录页码位置——这意味着引用可以精确到“第几页第几段”。

工作记忆层存任务、进度、消息和工具结果。内置Agent基于DeepAgents/LangGraph,把消息和工具调用记录成任务事件,于是后续会话可以恢复任务进度,而不是每次从零开始。

决策记忆层存结论、假设和开放问题,每条都链接到确切的源证据、记录的事件或更早的决策。决策可以被重申(reaffirm)或被替换(replace),历史不会丢失。

三层通过图连接起来,这正是“统一图”的价值所在:决策能追到证据,证据能追到文档版本,文档一变,受影响的决策就能被找出来。

GraphRAG 是RAG的一种图结构化变体:它不满足于把文档切成孤立文本块做向量检索,而是先抽取实体和关系构建知识图谱,再结合图遍历与社区摘要来增强检索。相比传统向量RAG,GraphRAG的优势在于能回答需要多跳推理的问题,例如“某政策影响了哪些部门,这些部门又执行了哪些项目”。Neo4j 是主流的原生图数据库,支持属性图模型、Cypher查询语言,并内置全文索引和向量索引,因而常被用作GraphRAG的存储与检索底座。将知识层、工作记忆层和决策记忆层放在同一个Neo4j图中,意味着三类节点共享同一套标识和关系类型,决策节点可以直接通过边指向证据段落和文档版本节点,从而实现跨层的追溯与失效传播。

知识管道的工程细节

知识管道围绕用户定义的schema构建,schema覆盖实体类型、属性和关系,既指导抽取和校验,也提供图搜索用的实体标签。抽取可以本地跑GLiNER,选定的chunk也可以用BAML做结构化LLM抽取。作者特意强调:即使抽取漏掉了某个事实,直接按段落搜索依然可用——这是对抽取失败的一种兜底。

检索方面,通过Neo4j原生的全文索引和向量索引查找段落,用reciprocal rank fusion把关键词排名和语义排名融合起来。更实用的是“读超出搜索命中”的能力:可以导航到命中段落所在的章节、相邻段落,或者带表头的表格行;实体关系也能反向指回记录证据的支撑段落。整个设计思路是让检索结果可扩展、可追溯,而不是孤立的一段文本。

Docling 是IBM开源的文档解析工具,擅长将PDF、DOCX等格式转换为结构化Markdown或JSON,保留标题层级、表格、列表和阅读顺序,并输出页码等位置信息。Chonkie 是轻量级文本分块库,支持按语义、句子或固定窗口切分,并可与文档结构对齐。GLiNER 是一种零样本命名实体识别模型,无需针对特定领域微调即可按用户给定的实体类型抽取实体,适合本地化、低成本的实体抽取。BAML 则是一种用于结构化LLM输出的领域特定语言,可定义抽取Schema并生成类型安全的调用代码。Reciprocal Rank Fusion(RRF) 是一种无需训练即可融合多路检索排名的算法:对每个文档在各排名列表中的名次取倒数后求和,得到融合分数,能有效平衡关键词检索与语义检索的排序差异。

Agent实际能做什么

这些连接落到Agent能力上有几件具体的事:

  • 引用确切的来源版本。内置Agent会检查每个被引用的段落是否在本次运行中被实际取回,以及是否属于它有权读取的文档——这相当于给引用加了一道校验。
  • 在同一项目内检索更早的决策。
  • 当被引用的文档发生变化时,受影响的决策及其显式依赖项会被标记出来待审。这正是开篇那个“决策过期”问题的直接解法。

路线图与开放问题

作者列出的路线图有三项:让管道更模块化,使各组件能跑在不同硬件上;把检索支持扩展到更多图数据库和存储后端;在领域特定数据集上跑大规模基准测试,结果将很快发布。

帖子最后抛给社区的问题是:你们在Agent里用什么工具做RAG和记忆?这个问题本身就说明,统一上下文与记忆目前还没有公认的标准答案。Agentic GraphRAG给出的思路是“用图把证据链和决策链串起来”,能否在真实负载下站住脚,还得看后续的基准数据。

对于正在搭Agent系统的团队,这个项目值得关注的点不在于它用了Neo4j还是Docling,而在于它提出了一个此前被忽视的工程要求:记忆系统必须知道自己的依据何时失效。没有这一条,Agent的记忆越长久,积累的过时决策就越多。

#Agentic GraphRAG#RAG与Agent记忆#Agent记忆层#GraphRAG#决策记忆#Neo4j检索#上下文层
分享:

相关推荐