一份最新資料,不能回答過去

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

她是人資專員,屬於人資部,在台北辦公室工作。

公司交給她一台編號 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 描述成人資系統。

這個例子真正證明的是:

一個人物可以沿著時間改變身分、組織、位置、物品、關係與能力,而世界仍然能在任何時刻辨認當時的他。

把公司換成王國,事情仍然成立。

一名角色最初是宮廷法師。

後來離開法師議會,成為國王的祕書官。

戰爭開始後,他調入前線軍團,取得新的裝備、地點與指揮關係。

幾年後,他退出王國,交還象徵職位的印章,卻偷偷保留了一件不該帶走的物品。

他的職業可以改變。

所屬陣營可以改變。

屬性可以隨身分取得或失去適用性。

關係可以建立、破裂或重新排列。

物品可以留在手上,也可以被轉交、放置、遺失與回收。

游標回到他仍是法師的時期,世界不會提前把他當成軍團成員。

游標移到他離開王國以後,後文也不能毫無理由地讓他繼續使用只有祕書官才能取得的權限。

現實世界的職涯例子看起來平凡。

但正因為它平凡,我們才能清楚看見世界模擬是否真的成立。

如果一套系統連一名員工何時轉職、加入哪個部門、持有哪台筆電都無法忠實保存,它更難讓讀者相信一個充滿王國、職業、神器、禁區與陣營鬥爭的世界。

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

恰好相反。

讀者無法用現實替它補上缺口,所以它更需要穩固的內部因果。

世界模擬不是替創作者預測角色最後會成為誰。

也不是替世界決定下一件事應該如何發生。

它做的是更基礎的工作。

當創作者回到任何一個位置,世界都能忠實回答:

走到這裡時,這個人是誰?

他在哪裡?

屬於什麼組織?

和誰存在關係?

持有什麼?

又已經被過去改變成了什麼樣子?

資料可以保存一個人的最新答案。

世界模擬保存的,是每一個答案如何成為當時的現在。