一份最新资料,不能回答过去

艾琳在一月进入一家公司。

她是人资专员,属于人资部,在台北办公室工作。

公司交给她一台编号 A-017 的笔电,以及一张可以进入人资档案室的门禁卡。她的直属主管是人资经理,也完成了处理员工个人资料所需的权限训练。

六月,她转任总经理秘书。

她离开人资部,加入总经理室,直属关系跟着改变。原本的笔电继续由她使用,但人资档案室的权限失效,并取得另一项行政权限。

十月,她调到高雄的业务部。

公司收回 A-017,改发一台编号 B-042 的笔电与公司手机。她的工作地点、职位、部门、主管、设备与可使用的权限再次改变。

隔年三月,艾琳离职。

她离开公司组织,归还笔电、手机与门禁卡。公司不再追踪她离职后位于何处,也不再把她视为任何部门的成员。

如果现在打开一份员工资料,看到的答案可能很简单:

艾琳已离职。

目前没有职位。

不属于任何部门。

没有持有公司资产。

这些资料都是正确的。

但如果公司要调查十个月前的一份文件由谁核准,这份最新资料几乎没有帮助。

当时的艾琳是人资专员,还是总经理秘书?

她属于哪个部门?

她是否具有查看那份文件的资格?

A-017 当时是否仍在她手上?

她的直属主管是谁?

她当时人在台北,还是已经调到高雄?

问题不是公司不知道艾琳现在是谁。

问题是公司需要知道:在那件事发生的时候,她是谁。

这就是世界模拟和保存最新资料之间的差别。


同一个人,可以拥有很多个正确的现在

艾琳没有四份互相冲突的资料。

她只是经历了四个不同时间点。

时间 职位 所属单位 持有物品 工作地点
一月至五月 人资专员 人资部 A-017、门禁卡 台北办公室
六月至九月 总经理秘书 总经理室 A-017、行政权限 总部
十月至隔年二月 业务专员 业务部 B-042、公司手机 高雄办公室
隔年三月以后 已离职 无 无 不再追踪

如果只保留最后一列,系统可以回答艾琳现在的状态。

如果把所有列都保存下来,系统则开始拥有历史。

但真正的世界模拟还要再多做一步。

它必须能在任何事件位置,根据那个位置以前已经发生的变化,重新计算出当时成立的答案。

查看四月的事件时,艾琳仍然是人资专员。

查看七月的事件时,她已经转任秘书,却仍持有 A-017。

查看十一月的事件时,她已经加入业务部,也换成 B-042。

查看离职后的事件时,她已经不在公司组织内,设备也完成归还。

这四个答案不能互相覆盖。

后来的离职不能回头抹掉她曾经是人资专员的事实。

先前的人资身分,也不能继续渗入她已经转任秘书之后的世界。

一个会随时间改变的人,本来就不应该只有一份适用于所有时刻的现在。


世界状态不是一张更复杂的人物卡

我们可以替艾琳建立一张很完整的资料卡。

姓名。

职位。

部门。

工作地点。

主管。

持有设备。

权限。

训练程度。

目前状态。

但无论栏位有多少,只要这张卡片持续用新资料覆盖旧资料,它保存的仍然只是最新结果。

世界模拟采取的是另一种方式。

它不只保存艾琳最后变成了什么。

它还保存哪些事件让她变成这样。

一月,她加入公司与人资部。

公司把 A-017 和门禁卡交给她。

她移动到台北办公室。

她与人资经理建立主管与部属关系。

六月,她的职业身分改为总经理秘书。

她离开人资部,加入总经理室。

她失去人资档案室权限,取得行政权限。

十月,她离开总经理室,加入业务部。

她归还 A-017,取得 B-042 与公司手机。

她的工作地点改为高雄办公室。

隔年三月,她离开公司与业务部。

她归还仍然持有的公司设备。

这些不是艾琳资料页上的几次修改。

它们是发生在时间里的事件。

世界之所以知道她在七月是秘书,不是因为人物卡现在写着秘书。

而是因为转任秘书的事件已经发生,转入业务部与离职的事件则还没有发生。

世界状态不是一张更复杂的人物卡。

它是所有已发生事件在某一刻共同留下的结果。


同一次职涯变化,其实包含好几种事件

「艾琳调到业务部」读起来像一件事。

但对世界来说,它可能包含很多彼此独立的改变。

她的职位从秘书变成业务专员。

她离开总经理室。

她加入业务部。

她的直属主管改变。

她从总部移动到高雄办公室。

她归还原本的笔电。

她取得新的笔电与公司手机。

她失去原本的行政权限。

她开始适用业务职位需要的能力与属性。

这些事情可能同时发生,也可能分成好几天完成。

一名员工可以先确定转调,稍后才搬到新的办公室。

可以已经加入新部门,设备却还没有完成更换。

也可能已经离职,笔电却仍未归还。

因此,世界不能因为看见「调职」两个字,就自行完成所有变更。

职业身分、组织归属、人物关系、物品与地点,本来就是不同的世界状态。

在 InkWeave 里,它们也由不同事件改变。

种族与职业可以用来表示角色目前的身分。

公司与部门可以建立成阵营。

笔电、手机与门禁卡可以建立成物品。

办公室可以建立成地点。

主管、部属与合作关系可以成为角色关系。

训练、权限、能力或其他需要累积的数值,可以由属性与旗标表示。

这些事件不会因为其中一项成立,就擅自假设其他项目也已经完成。

如果艾琳已经离职,却没有任何归还 B-042 的事件,世界就会忠实地显示:一名已离开组织的人,仍然持有公司的笔电。

InkWeave 不会自行把笔电收回。

因为现实里,离职不代表设备必然已经归还。

这可能是尚未完成的交接。

可能是有人忘记建立事件。

也可能是公司真的允许她保留设备。

系统不能替使用者决定是哪一种情况。

它只能让这个尚未解决的状态继续存在,直到新的事件真正改变它。


游标停在哪里,世界就计算到哪里

在一般文件里,游标只代表下一个字会出现的位置。

在 InkWeave 里,游标还指出世界目前走到了哪一刻。

当正文中的角色、物品、地点与事件被建立后,它们会按照正文顺序留在时间流里。

游标停在艾琳刚到职的段落,因果律引擎只会重播那个位置以前已经确认的事件。

此时,艾琳是人资专员。

她属于人资部。

她持有 A-017 与门禁卡。

她位于台北办公室。

她与人资经理之间存在当时的主管关系。

游标移到她转任秘书之后,世界才承认新的职业身分与总经理室成员资格。

游标继续移到业务部时期,A-017 已经完成归还,B-042 与公司手机则进入她的物品状态。

游标抵达离职以后,人物仍然存在于专案中。

但她已经不再属于公司阵营,也不再持有那些公司资产。

这些答案不是使用者替每一段文字手动制作的快照。

InkWeave 会根据章节位置与事件顺序,重播游标以前已经发生的世界变化。

后面的事件不会提前进入前文。

前面的事件则会持续影响后面,直到另一个事件改变它。

因此,游标不是把一份最新人物卡带到不同段落。

它是在不同位置重新询问同一个世界:

走到这里时,哪些事已经发生?

哪些事还没有发生?

此刻仍然成立的状态是什么?


AVG Stage 和 Inspector 显示的是同一个当下

当游标移动时,世界状态不应该只藏在引擎里。

作者必须能看见它。

InkWeave 的 AVG Stage 会依照目前的章节与事件位置,取得当下的世界快照。

如果目前关注的是艾琳,它可以呈现她当时的身分、状态与所在地点。

也能显示同一地点还有哪些角色、现场有哪些物品,以及她当时所属的阵营与职位。

当作者回到艾琳仍在人资部的段落,AVG Stage 不应该显示她后来在业务部的状态。

当作者移到她已经离职的段落,也不应该继续把她放在人资办公室。

Inspector 则让作者进一步查看当下资料。

角色此刻位于哪里。

目前持有什么。

现在是什么身分。

有哪些适用于当前身分的属性。

与其他角色存在什么关系。

目前加入哪些阵营,又在里面担任什么位置。

作者也可以打开历史查询,查看角色何时移动、何时改变身分、物品如何进出、关系何时建立,以及阵营成员资格如何变化。

AVG Stage 回答的是:

此刻的世界看起来是什么样子?

Inspector 与历史查询回答的是:

这个状态由哪些事件形成?

两者不是另外维护的两套资料。

它们查看的是同一条正文时间流,由同一组已确认事件推导出的状态。

所以介面跟着游标变化,不是为了让画面显得热闹。

它是在让使用者看见:世界真的走到了不同时刻。


回到过去,不是打开一份旧备份

世界状态和文件版本也不完全相同。

备份保存的是某个时间点整份资料长什么样。

如果要查看四个不同时期,可能需要保存四份人物卡、四份组织名单与四份资产资料。

世界模拟不必替每个时刻复制整个世界。

它保存初始状态,以及后来确实发生的变化。

艾琳一开始是人资专员。

转任事件把她改成秘书。

下一次身分事件再把她改成业务专员。

离职事件则改变她的组织状态。

同样地,A-017 一开始属于公司。

交付事件让艾琳成为持有人。

归还事件再让它离开艾琳。

世界走到不同位置时,因果律引擎只需要按照顺序重播相关事件,就能推导出当时的答案。

这个差异在修改过去时尤其重要。

假设公司后来发现,艾琳并不是六月转任秘书,而是七月才正式生效。

修改这个事件的位置后,六月期间的世界状态就必须重新计算。

原本依赖她已经取得行政权限的事件,也可能失去成立条件。

使用者不需要手动寻找每一份六月快照,再逐一把她改回人资专员。

因为那些快照不是彼此独立的真相。

它们都是事件重播到不同位置时得到的结果。

修改原因,后面的结果就必须重新面对那次改变。


这不是 AI 根据文字猜出她的职位

当一套系统可以跟着游标显示角色当时的职位、物品、位置与关系,很多人第一个反应会是:

这是不是 AI 读完整段文字以后,猜测现在发生了什么?

InkWeave 不是这样运作。

它不会因为正文里出现「艾琳走进业务部」,就直接认定她已经调职。

她可能只是拜访业务部。

可能正在回忆过去。

可能替别人传递文件。

也可能只是经过那个地方。

自然语言可以有很多意思。

如果系统擅自选择其中一种,世界状态就会被一次没有根据的猜测改变。

InkWeave 的方式更克制。

使用者先建立重要的世界实体。

再由使用者确认真正成立的事件。

角色确实改变职业,才建立身分变更。

确实加入业务部,才建立阵营事件。

确实移动到高雄办公室,才建立移动事件。

确实归还 A-017,物品才离开她的持有状态。

这些事件进入正文顺序后,InkWeave 自研的因果律引擎会按照确定性规则重播它们。

相同的初始状态、事件内容、事件顺序与规则,会得到相同的结果。

它不是 AI 审稿。

不会判断艾琳转职是否合理。

不会猜她为什么离开人资部。

也不会替公司决定离职时应该收回哪些设备。

它只对已经被明确建模的数量、集合、身分、位置、归属、顺序与条件进行计算和验证。

AI 可以对一段文字提出判断。

InkWeave 的因果律引擎提供的,则是已建模世界内可以重复得到的证明。


世界只会忠实呈现使用者真正建立过的事实

确定性不等于全知。

如果使用者没有把 B-042 建立成物品,InkWeave 就不能追踪它的去向。

如果没有记录艾琳加入业务部,系统也不会自行从她的职称推测组织成员资格。

如果主管关系从未被建立,Inspector 不会因为两个人经常出现在同一个段落,就判定其中一人管理另一人。

如果公司要求所有离职员工归还设备,这项要求也必须被明确建模成需要检查的条件,或者由后续事件验证物品是否真的完成移交。

这条界线很重要。

世界模拟的可靠,不是来自系统假装什么都懂。

而是来自它清楚知道自己能证明什么。

已建立的角色可以被追踪。

已确认的物品流转会改变归属。

已记录的移动会改变位置。

已发生的转职会改变身分。

已成立的阵营事件会改变组织结构。

没有建立的事实,系统不会凭空补上。

这让世界模型不会比现实更聪明。

却能比人的记忆更忠实。


能保存一段职涯,也就能保存一个架空人生

InkWeave 最多的使用者,未必真的要管理公司员工。

艾琳的职涯也不是为了把 InkWeave 描述成人资系统。

这个例子真正证明的是:

一个人物可以沿着时间改变身分、组织、位置、物品、关系与能力,而世界仍然能在任何时刻辨认当时的他。

把公司换成王国,事情仍然成立。

一名角色最初是宫廷法师。

后来离开法师议会,成为国王的秘书官。

战争开始后,他调入前线军团,取得新的装备、地点与指挥关系。

几年后,他退出王国,交还象征职位的印章,却偷偷保留了一件不该带走的物品。

他的职业可以改变。

所属阵营可以改变。

属性可以随身分取得或失去适用性。

关系可以建立、破裂或重新排列。

物品可以留在手上,也可以被转交、放置、遗失与回收。

游标回到他仍是法师的时期,世界不会提前把他当成军团成员。

游标移到他离开王国以后,后文也不能毫无理由地让他继续使用只有秘书官才能取得的权限。

现实世界的职涯例子看起来平凡。

但正因为它平凡,我们才能清楚看见世界模拟是否真的成立。

如果一套系统连一名员工何时转职、加入哪个部门、持有哪台笔电都无法忠实保存,它更难让读者相信一个充满王国、职业、神器、禁区与阵营斗争的世界。

架空世界不是因为不存在,就可以不必遵守自己的历史。

恰好相反。

读者无法用现实替它补上缺口,所以它更需要稳固的内部因果。

世界模拟不是替创作者预测角色最后会成为谁。

也不是替世界决定下一件事应该如何发生。

它做的是更基础的工作。

当创作者回到任何一个位置,世界都能忠实回答:

走到这里时,这个人是谁?

他在哪里?

属于什么组织?

和谁存在关系?

持有什么?

又已经被过去改变成了什么样子?

资料可以保存一个人的最新答案。

世界模拟保存的,是每一个答案如何成为当时的现在。