一份最新资料,不能回答过去
艾琳在一月进入一家公司。
她是人资专员,属于人资部,在台北办公室工作。
公司交给她一台编号 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 描述成人资系统。
这个例子真正证明的是:
一个人物可以沿着时间改变身分、组织、位置、物品、关系与能力,而世界仍然能在任何时刻辨认当时的他。
把公司换成王国,事情仍然成立。
一名角色最初是宫廷法师。
后来离开法师议会,成为国王的秘书官。
战争开始后,他调入前线军团,取得新的装备、地点与指挥关系。
几年后,他退出王国,交还象征职位的印章,却偷偷保留了一件不该带走的物品。
他的职业可以改变。
所属阵营可以改变。
属性可以随身分取得或失去适用性。
关系可以建立、破裂或重新排列。
物品可以留在手上,也可以被转交、放置、遗失与回收。
游标回到他仍是法师的时期,世界不会提前把他当成军团成员。
游标移到他离开王国以后,后文也不能毫无理由地让他继续使用只有秘书官才能取得的权限。
现实世界的职涯例子看起来平凡。
但正因为它平凡,我们才能清楚看见世界模拟是否真的成立。
如果一套系统连一名员工何时转职、加入哪个部门、持有哪台笔电都无法忠实保存,它更难让读者相信一个充满王国、职业、神器、禁区与阵营斗争的世界。
架空世界不是因为不存在,就可以不必遵守自己的历史。
恰好相反。
读者无法用现实替它补上缺口,所以它更需要稳固的内部因果。
世界模拟不是替创作者预测角色最后会成为谁。
也不是替世界决定下一件事应该如何发生。
它做的是更基础的工作。
当创作者回到任何一个位置,世界都能忠实回答:
走到这里时,这个人是谁?
他在哪里?
属于什么组织?
和谁存在关系?
持有什么?
又已经被过去改变成了什么样子?
资料可以保存一个人的最新答案。
世界模拟保存的,是每一个答案如何成为当时的现在。