@pauliusztin_: 两个月前,我开始使用知识图谱构建统一记忆层。以下是我最常被问到的问题……

X AI KOLs Timeline 新闻

摘要

本帖子讨论了使用知识图谱构建统一记忆层的最佳实践,强调将实体解析(命名)与去重(身份)分离,以避免图污染。还重点介绍了使用像 PrefectIO 这样的编排工具,通过检查点和缓存来管理昂贵的 LLM 提取管道。

两个月前,我开始使用知识图谱构建统一记忆层。 以下是我最常被问到的问题: “如何在避免破坏图的情况下处理实体解析和去重?” 我不想给出一个基于假设的高层次答案…… 于是我花了很多时间研究 mem0、cognee 和 Neo4j 这类系统是如何处理这个问题的。 同时,我还用 @PrefectIO 尝试编排模式,以提高持久性并降低成本。 我发现大多数人把实体解析和去重当作一回事。 但事实并非如此。 最好的记忆系统将命名与身份分离。 在你的大语言模型提取实体后,你需要做以下几件事: 1/ 解析 → “我们应该怎么称呼它?” 这一层处理: 拼写错误 缩写 表面形式相似性 仅针对同类型节点的名称进行精确匹配、模糊匹配和语义匹配。 示例: “NYC” → “New York City” “JP Morgan” → “JPMorgan Chase” 在此阶段,系统仅更新规范名称,供后续软匹配使用。 尚未进行图合并。 因为相似的名称不足以证明两个实体是同一实体。 例如: Apple:公司 ≠ 水果 黄仁勋:英伟达 CEO ≠ 台北一位同名的医生 2/ 去重 → “这是同一个现实世界的实体吗?” 现在,我们将完整的实体上下文嵌入,并与现有节点进行语义 + 模糊相似度对比。 根据相似度得分(0 到 1),有三种结果: 高置信度(≥0.95)→ 自动合并 中等置信度(>0.85)→ 人工审核 低置信度(≤0.85)→ 新建节点 这一点至关重要,因为错误合并会默默污染图结构。 我发现最聪明的设计决策是将证据强度视为权限强度: 弱证据 → 新建节点 强证据 → 合并 不确定证据 → 进入审核队列 这保证了图在记忆扩展时保持清晰。 但图模型只是问题的一半…… 在非结构化数据上构建知识图谱成本高昂。 以下操作都需要花钱: 大语言模型提取 实体解析 嵌入 去重 如果某个下游步骤失败并重跑整个管道,你会浪费已经付过费的标记。 因此,最佳架构是将工作流拆分为带检查点的任务,并支持重试 + 缓存。 这正是 @PrefectIO 这类工具在生产级记忆系统中大显身手的地方。 它让你能够: 缓存昂贵的提取步骤 仅重试失败的阶段 高效批处理嵌入 安全地扩展数据摄入 为每个阶段添加可观测性 而无需每次失败都从头开始。 P.S. 在通过知识图谱为智能体构建长期记忆时,你觉得最难的部分是什么?
查看原文
查看缓存全文

缓存时间: 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 构建长期记忆时,你觉得最难的部分是什么?

谢谢!后续还有更多内容!

相似文章

Zep:一种用于智能体记忆的时序知识图谱架构

Papers with Code Trending

本文介绍了 Zep,这是一种用于智能体(agent)记忆的时间知识图谱架构,在 DMR 和 LongMemEval 等基准测试中表现优于 MemGPT。文章强调了 Zep 在企业级用例中处理动态知识融合和时间推理的能力。