Mem0g用图谱拿到 68.4%,TiMem5 层时间树为什么走另一条路

我前阵子在跑一个长会话的 agent demo,连续 200 轮对话之后用户突然问:"我上次说的那个公司你还记得吗?"

Mem0 选择性 pipeline 检索回来的是用户两个月前提过一次的公司名,但用户中途已经换了工作。Agent 一本正经地用了过期信息回答,被用户当场拆穿。

这个 case 让我重新审视了 2026 年这波 AI agent 记忆方案------尤其是 Mem0 团队在 v1.0.0 推出的图增强变体 Mem0g 之后。

Mem0g 凭什么能在 LOCOMO 上拿 68.4%

Mem0g 的设计思路很直接:在 Mem0 原本的向量存储之外,额外搭一层有向、带标签的知识图谱。

具体运作链路是三件套:

  • Entity extractor 从对话文本里抽出节点(用户、公司、产品、地点)
    • Relations generator 推断节点之间的标签化边(works at、located in、prefers)
    • Conflict detector 检测新信息和已有图谱节点/边的冲突
      ECAI 2025 那篇 benchmark 论文(arXiv 2504.19413)里给出的数据很有说服力:在 LOCOMO 多跳推理子集上,Mem0 LLM Score 是 66.9%,加了图谱的 Mem0g 提到 68.4%,p95 latency 从 1.44s 涨到 2.59s。

1.5 个百分点的精度提升,换 1.8 倍的延迟开销------在多跳关系推理题目上,这笔账算得过来。

但我看完源码后有个疑问:conflict detector 真的稳吗

Mem0g 的图谱方案有一个隐性前提------conflict detector 必须能可靠识别"新信息和旧节点冲突"。

放到开头那个例子:用户两个月前说"我在 A 公司",今天说"我刚跳槽到 B"。一个理想的 conflict detector 会标记 (user, works_at, A) 和 (user, works_at, B) 冲突,然后做覆盖。

实际跑下来的问题:

  1. 冲突检测依赖 LLM 的语义判断,模型一旦没把"跳槽"识别成 works_at 关系的更新,老节点就不会被淘汰
    1. 图谱写入是离线 pipeline,下次召回时如果两个节点都还在,单跳查询可能返回任意一个
    1. 对时间序的处理是"事后打补丁"------每个节点上要额外挂时间戳,召回时再做时间过滤
      这些细节在 paper 里被一句"conflict detector flagging contradictions"轻轻带过了。

TiMem 用的是另一套设计

TiMem(github.com/TiMEM-AI/timem)不走"向量 + 图谱"的双结构路线,走的是 5 层 Temporal Memory Tree (TMT)。

5 层从下往上是:

  1. Fragment------原始对话片段,保留完整上下文
    1. Evidence------从片段里提炼的事实证据,带时间戳
    1. Fact------聚合多条证据后形成的稳定事实
    1. Trait------用户的偏好、习惯、风格特征
    1. Persona------稳定人设画像
      每一层都有显式的时间序,上层 consolidation 时会自动用更新的下层覆盖陈旧的下层。

回到跳槽的例子,用 TiMem 跑:

  • 第 1 轮:"我在 A 公司" → fragment + evidence (timestamp: t1)
    • 第 200 轮:"我跳槽到 B 了" → fragment + evidence (timestamp: t2)
    • consolidation 触发时,新 evidence 升级到 fact 层时用 t2 覆盖 t1
      不需要专门跑 conflict detector,时间序本身就是 conflict 的解。

这套设计在更长程的 benchmark 上发力

LOCOMO 的对话长度还没那么夸张。真正考验长程一致性的是 LongMemEval-S------平均会话长度比 LOCOMO 长一倍以上,且专门测试"模型是否被早期错误信息误导"。

TiMem 在 LongMemEval-S 上是 SOTA。

为什么?因为这个 benchmark 的题目大量是"用户某个事实在中途变化了,agent 应该用新的还是旧的"------这正好是时间分层最擅长的领域。Mem0g 的图谱在这里需要 conflict detector 拼命兜底,TiMem 的 5 层结构相当于在系统层解决了同一个问题。

选型建议

不给一个谁吊打谁的结论,因为两套方案的最佳战场不一样。

选 Mem0g 的场景:

  • 短到中等长度会话(< 50 轮)

    • 多跳关系推理是主要任务(比如"用户的同事的项目用了什么技术栈")
    • 团队已经在用向量数据库,不想引入新的存储模型
      选 TiMem 的场景:
  • 长程会话(数百轮以上)

    • 用户状态/偏好会持续变化
    • 要 selective forgetting(记住,但用最新的)
    • 不想为"实体提取 + 关系生成 + 冲突检测"三件套单独维护一条 pipeline
      最近 ICLR 2026 接收的那篇 MemoryAgentBench(arXiv 2507.05257)把 agent 记忆的核心能力归为四类:accurate retrieval、test-time learning、long-range understanding、selective forgetting。前两类 Mem0g 不输甚至更强,后两类 TiMem 的结构性优势会更明显。

如果你正在选型,与其纠结"哪个框架更强",不如先看自己的场景落在哪个能力维度上。

那个让我重新审视方案的 demo 后来用 TiMem 重跑了一次。同样 200 轮对话,用户问"我上次说的那个公司",agent 用的是最新的 B 公司------没用 conflict detector,没写额外的过滤逻辑,时间序自己解决了问题。

这是我决定换路线的真正原因。

相关推荐
阿里云云原生6 分钟前
AI Agent 上线容易稳定难?阿里云 AgentLoop 推出“经验自进化”闭环治理方案
人工智能·阿里云·mybatis·agentscope
魔力女仆10 分钟前
【RUST AI】把 TTS 搬进浏览器:kokoroi-rs 的 WASM 实践
人工智能·rust·wasm
小宋加油啊13 分钟前
opencv工作中的基础知识点
人工智能·opencv·计算机视觉
sugar__salt17 分钟前
向量数据库从零到实战:用 Milvus + Zilliz 构建 AI 日记语义检索系统
数据库·人工智能·embedding·milvus·rag·zilliz
m沐沐21 分钟前
【深度学习】循环神经网络RNN——结构、原理与长期依赖问题解析
人工智能·pytorch·python·rnn·深度学习·算法·机器学习
硬核子牙27 分钟前
不要小瞧y=wx+b
人工智能·chatgpt·程序员
workflower30 分钟前
情境感知系统
人工智能·机器学习·设计模式·自然语言处理·机器人
kisloy1 小时前
【爬虫入门第2讲】浏览器开发者工具完全指南
人工智能·爬虫·tensorflow
打工的小李1 小时前
AI干部画像:从海量材料中自动提炼标签,告别“凭感觉”
人工智能
Chengbei111 小时前
云安全漏洞挖掘SKILL、一站式云漏洞挖掘工具,支持S3爆破、IMDS探测、K8s检测与AK/SK权限利用
前端·人工智能·网络安全·云原生·容器·kubernetes·系统安全