
Utopia的两只时钟双时间模型如何回答三月时我们以为发生了什么【免费下载链接】utopia首个开源企业世界模型项目地址: https://gitcode.com/deeplethe/utopiaUtopia 是首个开源企业世界模型。它不满足于只回答现在的答案对不对而是把双时间知识图谱做进了系统底层——每条事实同时携带两组时间一组记录这件事在真实世界里何时成立另一组记录系统何时得知它、何时又把它作废。靠这套双时钟设计你能把知识图谱回拨到任意时刻直接问出那个最难的问题三月时我们以为发生了什么️ 先理清一个常见误区大多数系统只在事实上记一个时间入库时间。一旦这个时间成为唯一坐标数据被更正的那一刻旧记录就被覆盖、无处可寻——你永远无法回答当时系统是怎么想的。Utopia 从第一天就把两个完全不同的问题分开记账问题属于谁的故事对应的时钟这件事在真实世界里何时成立世界的故事世界时钟世界时间系统何时得知这件事、何时把它作废台账的故事记录时钟记录时间⏱️ 两只时钟各走各的账世界时钟事实在世界里何时成立对应数据里的valid_from/valid_to两列。以合同场景为例修订 A 的付款条款自 2023-01-01 生效修订 B 在 2024-03-15 接手——两条条款是两行记录各带各的生效区间后来者关闭前一条而不是覆盖它。世界时间轴上还有几条很讲究的规矩没有起点的条款不叫自古生效它至少回溯到最早提到它的那份文档的日期没有结尾的条款不叫现在还有效它被标注为有效直到被通知为止精度阶梯从年走到秒未知结尾有专门的unknown取值而不是留空装糊涂。记录时钟我们何时得知、何时改口recorded_at/invalidated_at这两列记的是台账自身的生命这一行何时写入、何时被更正、撤回或删除作废。Utopia 的账本有一条铁律——只追加、不改写每次更正都插入一行新记录指向旧行并把它标为失效旧行原封不动地留在盘上。于是事实的变更史变成一条可以倒着读的链最初记为 X后来改成了 Y谁改的一目了然。 关键一步一个谓词让第二只时钟可倒转如果记账就算创新那倒不必激动——事实上写入侧早就一直在记两只时钟。真正的难点在读取侧过去的查询全都写死只看从未被作废的行结果三月被改掉的事实在任何回放位置上都不存在。0019 号决策记录 把这一缺口说得很直白行都在盘上可我们三月相信什么却没有任何一个已发布的查询答得出。解法是把回拨收敛成一个谓词held_at(T)行在 T 时刻成立 ⟺不晚于 T 写入且作废晚于 T或从未作废这个谓词每张表只写在一处——crates/utopia-store/src/record_axis.rs文件头部的注释讲透了原因防御一旦散到每个读取点漏掉一个就悄无声息地失效SQL 不报错、编译器也不吭声。所以它被钉在一处并配了双向的数据库测试被撤回的事实在现在必须查不到在作废时间之前必须查得到在写入时间之前也必须查不到。世界轴、记录轴与时间推演引擎各有归属想顺藤摸瓜可以从这三处入手世界轴何时在世界上成立crates/utopia-store/src/world_axis.rs记录轴何时被我们所持有crates/utopia-store/src/record_axis.rs时间引擎新值到来时自动关闭前一个状态crates/utopia-store/src/temporal.rs 为什么必须是两只钟而不能拧成一根滑杆你可能会问两根轴合成一个时间滑杆不行吗0019 号决策记录 给出了很精妙的理由——合并之后按现在的理解看三月的世界和按当时的理解看三月的世界会被同一个控件回答而这两种答案在屏幕上看起来都合理问的却是完全不同的问题at世界时间回答那一刻的世界是什么样as_of记录时间回答那一刻我们以为世界是什么样缺省为现在。还有一个容易被忽略的细节写入侧永远不倒转。更正永远发生在现在不存在以三月的身份改一行这回事。这套机制还顺手把删除文档变得安全了删掉某条事实的最后一份来源不会抹掉这行只在记录轴上盖一个作废戳留下墓碑——删除之前那一刻的图依然可以回拨查看见 migrations/0022_deleting_is_an_event.sql。连实体自己也带着时钟合并与回滚各记一笔三月做的合并在二月的回放里还是两个独立实体。检索侧同理——被取代的旧文本块保留向量向量召回与取块都能带as_of回拨只有全文检索目前只认现在。 走个场景两只时钟能干什么两类最常见的企业级提问合同链2024-03-15 生效的付款条款是什么当事方是谁——世界时钟给出那一天生效的条款证据列指出它来自哪次修订、哪一句原文。人事交接2023 年二季度谁负责 X 项目当时我们对它的认识是什么——记录时钟把当时库里知道什么和我们现在知道什么分开给出一次更正还能链回它替换的那一行。仓库里附了配套语料与必须答对的考题scripts/bench/corpora/contracts/README.md时态问答的评测入口见 scripts/bench/README.md。 想深入看从这几处开始想读什么去哪里看完整时间设计精度阶梯、未知边界、事件与永恒事实docs/design/time.md账本规则只追加、双层行、强制证据引句docs/design/ledger.md第二只时钟为何能倒转本文主线决策docs/decisions/0019-the-second-clock-can-be-rewound.md项目世界观与完整功能清单README.zh-CN.md一句话收尾只记录现在是什么的知识图谱是一张照片双时间知识图谱拍的是一部电影——而这部影片里最值钱的一帧往往正是我们曾经以为它是那样的那一帧。【免费下载链接】utopia首个开源企业世界模型项目地址: https://gitcode.com/deeplethe/utopia创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考