一份最新資料,不能回答過去
艾琳在一月進入一家公司。
她是人資專員,屬於人資部,在台北辦公室工作。
公司交給她一台編號 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 描述成人資系統。
這個例子真正證明的是:
一個人物可以沿著時間改變身分、組織、位置、物品、關係與能力,而世界仍然能在任何時刻辨認當時的他。
把公司換成王國,事情仍然成立。
一名角色最初是宮廷法師。
後來離開法師議會,成為國王的祕書官。
戰爭開始後,他調入前線軍團,取得新的裝備、地點與指揮關係。
幾年後,他退出王國,交還象徵職位的印章,卻偷偷保留了一件不該帶走的物品。
他的職業可以改變。
所屬陣營可以改變。
屬性可以隨身分取得或失去適用性。
關係可以建立、破裂或重新排列。
物品可以留在手上,也可以被轉交、放置、遺失與回收。
游標回到他仍是法師的時期,世界不會提前把他當成軍團成員。
游標移到他離開王國以後,後文也不能毫無理由地讓他繼續使用只有祕書官才能取得的權限。
現實世界的職涯例子看起來平凡。
但正因為它平凡,我們才能清楚看見世界模擬是否真的成立。
如果一套系統連一名員工何時轉職、加入哪個部門、持有哪台筆電都無法忠實保存,它更難讓讀者相信一個充滿王國、職業、神器、禁區與陣營鬥爭的世界。
架空世界不是因為不存在,就可以不必遵守自己的歷史。
恰好相反。
讀者無法用現實替它補上缺口,所以它更需要穩固的內部因果。
世界模擬不是替創作者預測角色最後會成為誰。
也不是替世界決定下一件事應該如何發生。
它做的是更基礎的工作。
當創作者回到任何一個位置,世界都能忠實回答:
走到這裡時,這個人是誰?
他在哪裡?
屬於什麼組織?
和誰存在關係?
持有什麼?
又已經被過去改變成了什麼樣子?
資料可以保存一個人的最新答案。
世界模擬保存的,是每一個答案如何成為當時的現在。