Skip to content

世界历史

状态:今天已在线上运行。Realm R-WHIST-* 保存着"发生过什么"的永久记录。

世界历史是一个世界里只能追加、不能改写的事实记录。每条记录都必须带溯源信息。Replay 运行只能读历史,不能往里写;只有会改变真相的运行才能追加。出了错要修正时,做法是用新记录替代旧记录或标记作废,永远不会悄悄删除。

关于状态与历史的逐项对照(每种 effectClass 下两个表面各自何时更新),见状态与历史

仅限追加

属性规范
数据存储Realm R-WHIST-*
可变性强制仅限追加
执行类型REPLAY(禁止追加)/ CANON_MUTATION(允许追加)
溯源要求每条记录强制登记出处
修正方式仅支持显性替代或打标废止;禁止物理删除

"仅限追加"是审计信誉的基石。消费方必须能信任:历史记录反映的是原始事实,而非篡改后的产物。

执行模式

执行模式能否追加历史用途
REPLAY重新演算和验证已发生的事件
CANON_MUTATION提交真实的状态变动

Replay 能读取历史、生成视图、演算结果,但写入被完全阻断。只有 Canon-mutation 才能追加数据。这种结构隔离确保 Replay 成为中立的审计工具。

溯源

每条历史记录都带强制溯源:执行者、时间、证据。这是系统级强约束——缺少溯源的数据在提交阶段就会被拦截。

字段用途
Actor执行动作的主体
Time事件发生的时间戳
Evidence refs支撑该动作的证据链接
Schema version数据结构版本
Source触发记录的来源(扩展 App、系统守护进程等)

缺少溯源的记录会在准入校验时被驳回。系统不接受匿名记录。

修正流程

当创作者或系统需要修正历史记录时,必须走规范的修正路径:

修正类型系统行为
替代推入新记录宣告旧版本作废;旧记录保留在时间轴中
废止对特定记录打失效标记;原始实体不可删除

系统禁止的操作:静默物理删除。已提交的历史记录无法被删除。审计人员总能检索到:"此记录曾被提交,随后因原因 X 被声明作废或替代"。

读者场景:一条错误记录被修正

某条历史记录被错误提交,比如系统缺陷把动作归到了错误的参与者名下。

  1. 原始记录已存在。错误的归因已经进入历史。
  2. 发起修正。创作者工具提交一条替代记录。
  3. 两条记录并存。历史中同时保留原始记录(已被替代)和修正记录。
  4. 读者看到脉络。查询历史的读者能看到完整时间线:原始记录,随后被修正记录替代。

原始记录不会被删除。修正本身是独立的强类型事件,带有自己的溯源。

读者场景:一次审计 Replay

审计人员想弄清楚某段时间内到底发生了什么,比如追查一次具体事故。

  1. 启动 Replay。在强类型准入下读取历史记录。
  2. 重建过程。Replay 重建状态变迁、事件和视图的完整链条。
  3. 只读不写。Replay 不会向历史追加任何内容。
  4. 得到结果。审计人员拿到一份结构化的重建结果。

Replay 之所以是可靠的审计工具,是因为结构上就不允许它追加。不存在"审计改动了历史"的顾虑。

读者场景:拦截缺少溯源的记录

某越权 App 试图向系统塞入一条没有溯源的历史记录。

  1. 准入关卡激活。Realm 内核按规范历史结构进行校验。
  2. 缺失溯源曝光。校验逻辑发现该记录缺少必填的出处信息。
  3. 指令阻截。操作被安全熔断,返回阻断回执。
  4. 返回强类型错误。App 收到明确报警:"Missing provenance (溯源缺失)"及故障代号。

系统不存在"尽力接纳"的妥协。缺少来源的记录会被拒之门外。

与真相和状态的关系

历史、真相、状态共同构成世界观模型的三个支柱。

问题解答者
什么是被认定为真的事实?真相
这个世界此刻是什么样?状态
这个世界是怎么走到现在的?历史

试图把三者混在一起的接口会静默丢失核心信息。历史回答"怎么来的",不代办"是什么"或"现在如何"。

来源依据

Nimi 文档:可安装、开源、本地优先的个人 AI 产品。