@pauliusztin_: 两个月前,我开始使用知识图谱构建统一记忆层。以下是我最常被问到的问题……
摘要
本帖子讨论了使用知识图谱构建统一记忆层的最佳实践,强调将实体解析(命名)与去重(身份)分离,以避免图污染。还重点介绍了使用像 PrefectIO 这样的编排工具,通过检查点和缓存来管理昂贵的 LLM 提取管道。
查看缓存全文
缓存时间: 2026/05/23 22:17
两个月前,我开始用知识图谱构建统一记忆层。
大家问得最多的问题是:
“如何在不对图产生污染的情况下处理实体解析与去重?”
我不想给出一个基于假设的高层回答……
于是花了很多时间研究 mem0、cognee 和 Neo4j 等系统是如何解决这个问题的。
同时还在用 @PrefectIO 试验编排模式,以提升持久性并降低成本。
在这个过程中,我发现大多数人把实体解析和去重当成同一件事。
但它们不是。
最好的记忆系统会把“命名”和“身份”区分开。
在你的 LLM 提取出一个实体之后,你需要做以下几步:
1/ 解析 → “我们该叫它什么?”
这一层负责处理:
- 拼写错误
- 缩写
- 表面形式相似性
只对同一类型节点的名称进行精确、模糊和语义匹配。
举例:
- “NYC” → “New York City”
- “JP Morgan” → “JPMorgan Chase”
在这个阶段,系统只更新规范名称,供后续的软匹配使用。
不执行任何图合并。
因为相似的名称并不足以证明两个实体是相同的。
比如:
- Apple:公司 ≠ 水果
- Jensen Huang:NVIDIA 的 CEO ≠ 台北一位同名医生
2/ 去重 → “这是同一个真实世界实体吗?”
现在我们对完整的实体上下文进行嵌入,并与已有节点在全上下文范围内进行语义 + 模糊相似度比较。
根据相似度评分(0→1),有三种结果:
- 高置信度(≥0.95) → 自动合并
- 中等置信度(>0.85) → 人工审核
- 低置信度(≤0.85) → 新建节点
这一点至关重要,因为错误的合并会悄然污染图结构。
我发现最聪明的设计决策是:将证据强度视为操作权限强度:
- 弱证据 → 新建节点
- 强证据 → 合并
- 不确定的证据 → 进入审核队列
这样,记忆扩展时图结构始终保持干净。
但图模型只是问题的一半……
在非结构化数据之上构建知识图谱成本很高。
以下操作都需要花钱:
- LLM 提取
- 实体解析
- 嵌入
- 去重
如果下游某一步失败,你重跑整个流程,就会浪费 tokens 重新计算你已经付过费用的结果。
因此,最好的架构是将工作流拆分为带检查点的任务,并支持重试 + 缓存。
这正是 @PrefectIO 这类工具在生产环境记忆系统中的强项。
它允许你:
- 缓存昂贵的提取步骤
- 仅重试失败的阶段
- 高效批量处理嵌入
- 安全扩展数据摄入
- 为每个阶段添加可观测性
而无需每次失败都从头重来。
P.S. 在通过知识图谱为 agent 构建长期记忆时,你觉得最难的部分是什么?
谢谢!后续还有更多内容!
相似文章
我用一年时间在知识图谱上构建智能体记忆。以下是让我耗费数月的5个错误
作者分享了在使用知识图谱和本体论为AI智能体构建统一记忆层时犯下的五个错误,强调智能体记忆是数据建模问题而非检索问题。
@pauliusztin_: 我花了几个月优化GraphRAG检索。但结果发现我优化错了方向……最大的知识…
一份关于为AI智能体优化知识图谱摄入的详细指南,提出了一个五步流水线(提取、解析、嵌入、去重、路由),以防止图谱损坏并提高检索质量。
一种面向异构文档知识图谱构建的本体引导、去重感知抽取层
本文介绍了一个生产级抽取层,利用本地托管的经过调优的Qwen大语言模型,将异构文档转换为与本体对齐的知识图谱,并采用本体引导的提示、多阶段去重和基于嵌入的解析。在情报语料上的评估表明,搜索召回率从约70%提升到95%,且没有错误合并。
@pauliusztin_: 我研究了Cognee、Graphiti和agent-memory(来自Neo4j)如何构建它们的智能体记忆解决方案,并将整个架构整理成了一篇文章。
关于Cognee、Graphiti和Neo4j的智能体记忆解决方案的研究总结,这些方案都使用知识图谱和向量搜索,并基于LLM进行数据提取。
VisKG-LM: 将知识图谱编译为视觉记忆用于多项选择题问答
本文提出VisKG-LM,一种将知识图谱编译为视觉记忆以进行高效多项选择题问答的方法,通过将图编码与语言推理解耦,在基线上实现性能提升。