OntoGr:为Agent记忆加上引用溯源与双时间轴

OntoGr 为 Agent 记忆建立事实级引用溯源、双时间轴与可审计账本。
OntoGr 是一个开源 Python 库,试图解决 Agent 记忆系统的信任问题:每条事实都必须携带来自源 episode 的逐字引用,使任何结论都能回溯到原文。它区分有效时间与系统时间构成双时间轴,新值关闭旧版本而非覆盖,从而保留历史信念;实体消解采用最便宜证据优先策略且合并可撤销,每租户本体由人批准模型提议。冲突裁决由规则、可选模型裁判与人工决定三层构成,裁判调用失败不会被误存为无冲突。检索侧四路召回经 RRF 融合并输出受 token 预算约束的上下文块。系统运行于 FalkorDB/Neo4j 或 Postgres 之上,作者正征集关于时间模型与基准测试的反馈。
OntoGr:为Agent记忆加上引用溯源与双时间轴
每个事实都必须带着它的原话、来源和时间——这是 OntoGr Agent Memory 试图给 AI Agent 记忆系统建立的新底线。
为什么 Agent 的记忆需要「可追溯」
做过 RAG 和 Agent 记忆系统的人,大概都碰到过同一个信任问题:Agent 存下了一条学到的东西,但过一段时间,没人能说清它从哪来、是否仍然为真、以及系统在更早的某个日期究竟「相信」什么。据 Reddit 上该项目的发布帖描述,这正是 OntoGr 想解决的核心痛点。
作者把它做成了一个开源 Python 库,思路并不是简单地「把更多东西塞进向量库」,而是为每一条事实建立完整的证据链。下面这张图是项目在 Reddit 上的原始发布信息。

核心设计:每条事实都保留原话、来源与时间
OntoGr 的差异化集中在事实的「来源保真」上。在摄入阶段,消息、文档、工具输出、事件和记录行都会先被转成 episode(情节单元);随后实体抽取和事实抽取分两趟独立进行,而每一条事实都必须携带来自其所属 episode 的逐字引用。这意味着后续任何一次读取,都能顺着事实回溯到原文,而不是只看到一个模型生成的摘要。
这个设计对审计场景尤其友好。当 Agent 的结论被质疑时,你可以直接拿出它当初依据的那句话,而不是重新跑一遍推理去「猜」。
时间模型:双时间轴与可逆合并
作者在帖子里特别希望获得反馈的两块,是时间模型和实体消解。
双时间轴区分了有效时间(valid time)和系统时间(system time)。一次读取既可以问「某个日期事实上什么是真的」,也可以问「系统在那个日期相信什么」。当出现新值时,旧版本会被关闭而非覆盖——历史版本得以保留,这与很多向量库「直接 upsert 覆盖」的做法形成明显区别。
可逆的实体消解则遵循「最便宜的证据优先」原则,只在模糊配对时才调用模型判断,并且每一次合并都可以撤销。配合每租户本体(per-tenant ontology)——每个租户自行定义允许的实体与关系类型,模型可以提议新增类型,但必须由人批准——整套系统在自动化与可控性之间做了明确取舍。
双时间轴(bi-temporal) 是数据库与时态知识图谱领域的成熟概念,通常把时间拆成两条独立维度:valid time 描述事实在现实世界中成立的时间区间,system time 描述该事实被系统记录、修改或失效的时间点。二者不一定重合——例如系统今天才录入「客户去年已变更地址」,其 valid time 在去年、system time 在今天。支持双时间轴的存储可以回答「回溯查询(as-of query)」:按 valid time 查询得到某历史时点的事实真相,按 system time 查询则重建系统当时所持有的信念。这与仅保留单一时戳的普通表不同,后者一旦覆盖写入就无法区分「事实变了」和「我们刚知道」。OntoGr 的「关闭旧版本而非覆盖」正是双时间轴落地的典型做法,也是审计与合规场景的常见要求。
实体消解(entity resolution / 实体对齐) 指判断不同来源的记录是否指向同一现实实体,并合并为统一节点。常见手段包括精确匹配、字符串相似度、阻塞(blocking)缩小候选对,以及在模糊情况下调用模型或人工判定。消解是 Agent 记忆的高风险环节:错误合并会把两个实体的属性、关系与历史混在一起,且往往难以察觉。因此「合并可逆」意味着系统需保留合并前的节点、边与别名映射,支持拆分(unmerge)并重放受影响的事实。这与「最便宜的证据优先」的级联策略相辅相成——先用低成本规则过滤大部分候选,只把真正模糊的配对交给昂贵判断,从而在准确率与成本之间取得平衡。
冲突裁决与可审计账本
当新旧事实矛盾时,OntoGr 用三层机制裁决:规则、可选的模型裁判,以及人的最终决定,且人的决定优先级最高。一个细节值得注意:帖子明确指出,模型裁判调用失败绝不会被存成「无冲突」——这类失败态被单独对待,避免把系统错误伪装成结论。
可审计性方面,每条事实都能追溯到引用和 episode,每一次时间写入都会进入一个哈希链式账本(hash-chained ledger)。此外还内置了按租户的授权、审计日志、可预览且可断点续传的 forget/erase 操作,以及确定性导出。
检索与部署:四路召回与现有栈集成
检索侧采用四路召回:向量、关键词、实体和图四条通道,通过倒数排名融合(reciprocal rank fusion)合并,最终输出一个受 token 预算约束的上下文块,并会报告哪些通道失败——这对排查检索质量问题很实用。
部署上,它运行在 FalkorDB 或 Neo4j 之上,也可选用 pgvector 或 Postgres;后台有一个整合任务负责去重、摘要、打分与归档;LLM 和 embedder 由使用者自带。
倒数排名融合(Reciprocal Rank Fusion, RRF) 是一种无需训练的多路检索结果合并方法,公式为对每个文档累加 1/(k + rank_i),其中 rank_i 是它在第 i 路结果中的排名,k 通常取 60 左右。RRF 只依赖排名而不依赖各通道的原始分数,因此能把量纲完全不同的向量相似度、关键词 BM25 分数、实体匹配度和图遍历得分放在一起比较,且对单路召回质量波动较鲁棒。其代价是丢弃了分数幅度信息,也无法显式建模通道可靠性。对 Agent 记忆而言,RRF 让「语义相近」「字面命中」「实体关联」「图结构可达」四类证据同时进入候选池,再由 token 预算裁剪,是兼顾召回率与实现简单性的常见工程选择。
开放问题:时间模型与基准测试
作者在帖末公开征集两类反馈:一是时间模型的设计是否合理,二是社区最希望先看到哪些基准测试。对于关心 Agent 记忆可信度的开发者来说,这是一个值得参与讨论的早期开源项目。仓库地址为 https://github.com/ontogr/ontogr-agent-memory 。
相关推荐

用十几个Agent搭建黑灯工厂:Lauren Tan的信任阶梯与米其林厨房
Lauren Tan分享用十几个协调Agent每月合并超2500个PR的实战经验:从信任阶梯、米其林厨房隐喻到验证技能与内外循环连接,揭示黑灯工厂背后的环境工程哲学。

GPT-6.1 Terra深度解读:中端模型的视觉与电脑使用定位
OpenAI发布GPT-6.1 Terra,主打视觉推理与电脑操作,定价介于旗舰Sol与轻量Luna之间。本文解读其中端定位、定价策略、适用场景及推理等级实测表现。

dSpark:用调度蒸馏让扩散语言模型学会"先解锁谁"
扩散语言模型常因解码轮次过多而变慢。VILA-Lab 提出 dSpark,用调度蒸馏学习"先解锁哪个 token",在 GSM8K 上于 LLaDA-8B-Instruct 和 Dream-7B-Instruct 分别实现 10.12 倍和 5.12 倍加速,并保持任务表现。