對話不是記憶
——從 Transcript Compression 到 Cognitive State Reconstruction
英文題名: Conversation Is Not Memory: From Transcript Compression to Cognitive State Reconstruction作者: Neo.KAI 協作: Aletheia(GPT-5.6 Thinking)機構: EveMissLab/一言諾科技有限公司版本: v0.1日期: 2026 年 8 月類型: AI Agent Memory/Cognitive Architecture/Event Sourcing/State Reconstruction/Persistent Agent Systems
摘要
長期 AI Agent 的記憶問題常被簡化成:
Conversation → Summary \text{Conversation}
\rightarrow
\text{Summary} Conversation → Summary
亦即,將逐漸增長的對話歷史壓縮成較短文字,再把摘要作為後續工作的記憶。
此方法雖然有效降低 context 成本,卻混淆了三個不同問題:
History Preservation \text{History Preservation} History Preservation
Memory Formation \text{Memory Formation} Memory Formation
State Reconstruction \text{State Reconstruction} State Reconstruction
一段對話不只是「需要被摘要的文字」。它同時包含事件、決策、狀態轉移、暫時假設、使用者指令、產出物、失敗路徑、已廢棄版本、知識命題與尚未完成的工作。
因此本文提出:
Conversation ≠ Memory \boxed{
\text{Conversation}
\neq
\text{Memory}
} Conversation = Memory
更精確地:
Transcript ≠ Cognitive State \boxed{
\text{Transcript}
\neq
\text{Cognitive State}
} Transcript = Cognitive State
本文提出 Cognitive State Reconstruction,認知狀態重建 架構,將一段長期對話編譯為至少五種不同結構:
C → ( E , S , M , K , A ) \boxed{
C
\rightarrow
(E,S,M,K,A)
} C → ( E , S , M , K , A )
其中:
E E E :Event,事件;
S S S :State,狀態;
M M M :Memory,記憶;
K K K :Knowledge,知識;
A A A :Artifact,產出物。
完整 Transcript 仍可作為高保真資訊來源保存,但日常 Agent 並不需要重新播放全部 Transcript,而是透過:
( E , S , M , K , A ) (E,S,M,K,A) ( E , S , M , K , A )
重建一個足以繼續工作的有限認知狀態。
此方法與軟體工程中的 Event Sourcing 存在重要結構同構:Event Sourcing 保存所有狀態改變事件,並允許由事件序列重建某時刻的系統狀態。Martin Fowler 對此模式的經典描述即強調,事件紀錄不只回答「現在是什麼」,也能重建「如何變成現在」。
在 AI 記憶研究中,2026 年的 Amory 已開始把孤立對話片段進一步組織成 episodic narrative、semantic memory 與 consolidation structure,而非只進行向量切片檢索。 同年的 Text2Mem 更提出具有 schema、語義不變量與 typed operation 的記憶操作語言,顯示 Agent memory 正由單純儲存逐漸走向可操作的記憶系統。
本文進一步提出:
真正可持續的 Agent 記憶系統,不應只保存「過去說了什麼」,而應保存足以重建「當時世界如何、我們知道什麼、決定了什麼、正在做什麼」的認知結構。
關鍵詞
Conversation Compiler、Cognitive State Reconstruction、Agent Memory、Event Sourcing、State Machine、Long-Term Memory、Transcript Compression、Persistent Agent、Artifact Memory、Knowledge State
一、問題的提出:為什麼「摘要對話」還不夠?
假設一段對話:
C = ( m 1 , m 2 , … , m n ) C
=
(m_1,m_2,\ldots,m_n) C = ( m 1 , m 2 , … , m n )
其中包含數千輪訊息。
最低成本策略是建立:
Σ ( C ) \Sigma(C) Σ ( C )
即摘要。
例如原始對話可能包含:
提出方案 A;
發現方案 A 有缺陷;
暫時改成 B;
實驗 B;
B 失敗;
部分恢復 A;
加入 C;
最終形成 D。
摘要器可能只留下:
最終採用方案 D。
對很多問題而言這足夠。
但若之後問:
為什麼不用 B?
單一摘要就失敗了。
因為:
F i n a l S t a t e FinalState F ina l S t a t e
不包含:
T r a n s i t i o n H i s t o r y TransitionHistory T r an s i t i o n H i s t or y
因此:
結果 ≠ 形成結果的過程 \boxed{
\text{結果}
\neq
\text{形成結果的過程}
} 結果 = 形成結果的過程
二、Transcript 本質上是事件紀錄
對話可以先重新定義為:
C = ( e 1 , e 2 , … , e n ) C
=
(e_1,e_2,\ldots,e_n) C = ( e 1 , e 2 , … , e n )
其中每一輪不再只是 Message,而是可能產生一個或多個 Event。
例如:
USER:
我們採用方案 B。
→ UserDecisionCreated
AGENT:
我已經完成 prototype。
→ ArtifactCreated
USER:
等等,先不要採用 B。
→ DecisionRevoked
因此:
M e s s a g e → { E v e n t 1 , … , E v e n t k } Message
\rightarrow
\{Event_1,\ldots,Event_k\} M ess a g e → { E v e n t 1 , … , E v e n t k }
一段自然語言對話可能包含多個不同語義事件。
三、Event Sourcing 提供了一個重要工程類比
Event Sourcing 的核心原則是:
不只保存最新狀態,而保存導致狀態變化的事件序列。
可表示為:
E = ( e 1 , e 2 , … , e n ) E
=
(e_1,e_2,\ldots,e_n) E = ( e 1 , e 2 , … , e n )
並透過:
S n = F ( e 1 , e 2 , … , e n ) S_n
=
F(e_1,e_2,\ldots,e_n) S n = F ( e 1 , e 2 , … , e n )
得到現在狀態。
更重要的是:
S k = F ( e 1 , … , e k ) S_k
=
F(e_1,\ldots,e_k) S k = F ( e 1 , … , e k )
因此系統能重建歷史狀態。
這正是 Event Sourcing 的典型用途之一。
AI 長期記憶可以借用這個思想,但不能直接等同。
因為 Agent 對話事件除了客觀狀態改變,還包含:
推測;
信念;
計畫;
意圖;
不確定性;
被否定的假設;
記憶更新;
語義重新定義。
所以本文提出:
Cognitive Event Sourcing \boxed{
\text{Cognitive Event Sourcing}
} Cognitive Event Sourcing
作為更廣義的概念。
四、對話編譯
本文定義一個 Conversation Compiler:
C c \mathcal C_c C c
使:
C c ( C ) = ( E , S , M , K , A ) \boxed{
\mathcal C_c(C)
=
(E,S,M,K,A)
} C c ( C ) = ( E , S , M , K , A )
這不是純文字摘要。
它是一個語義編譯過程。
原始輸入:
N a t u r a l L a n g u a g e Natural\ Language N a t u r a l L an g u a g e
輸出:
S t r u c t u r e d C o g n i t i v e R e p r e s e n t a t i o n Structured\ Cognitive\ Representation S t r u c t u r e d C o g ni t i v e R e p r ese n t a t i o n
因此:
T r a n s c r i p t → C o g n i t i v e I n t e r m e d i a t e R e p r e s e n t a t i o n \boxed{
Transcript
\rightarrow
Cognitive Intermediate Representation
} T r an scr i pt → C o g ni t i v e I n t er m e d ia t e R e p r ese n t a t i o n
可以類比:
S o u r c e C o d e → I R Source\ Code
\rightarrow
IR S o u r ce C o d e → I R
但本文不主張自然語言對話可以像程式語言一樣完全無歧義編譯。
其編譯結果仍必須保留:
c o n f i d e n c e confidence co n f i d e n ce
與:
p r o v e n a n c e provenance p r o v e nan ce
五、五分法
最低認知重建結構定義為:
Ω t = ( E t , S t , M t , K t , A t ) \boxed{
\Omega_t
=
(E_t,S_t,M_t,K_t,A_t)
} Ω t = ( E t , S t , M t , K t , A t )
六、第一層:Event
Event 回答:
發生過什麼?
形式:
e i = ( t y p e , a c t o r , t i m e , p a y l o a d , s o u r c e , c o n f i d e n c e ) e_i
=
(
type,
actor,
time,
payload,
source,
confidence
) e i = ( t y p e , a c t or , t im e , p a y l o a d , so u r ce , co n f i d e n ce )
例如:
event:
type: decision_created
actor: user
timestamp: T1
payload:
decision: "採用方案 A"
source:
conversation: C12
message: M392
Event 的重要性在於:
E v e n t ≠ C u r r e n t S t a t e \boxed{
Event
\neq
Current State
} E v e n t = C u r r e n tS t a t e
事件發生過,不表示它仍然有效。
七、第二層:State
State 回答:
現在是什麼狀態?
例如:
project_state:
version: 0.3
status: active
architecture: hybrid
current_phase: validation
形式:
S t = F ( E 0 : t ) S_t
=
F(E_{0:t}) S t = F ( E 0 : t )
所以:
E v e n t → S t a t e T r a n s i t i o n Event
\rightarrow
StateTransition E v e n t → S t a t e T r an s i t i o n
例如:
S 0 → D e c i s i o n C r e a t e d S 1 S_0
\xrightarrow{DecisionCreated}
S_1 S 0 D ec i s i o n C r e a t e d S 1
再:
S 1 → D e c i s i o n R e v o k e d S 2 S_1
\xrightarrow{DecisionRevoked}
S_2 S 1 D ec i s i o n R e v o k e d S 2
因此即使:
D e c i s i o n C r e a t e d DecisionCreated D ec i s i o n C r e a t e d
永遠存在於事件歷史,
最新狀態仍可以是:
D e c i s i o n A c t i v e = F a l s e DecisionActive=False D ec i s i o n A c t i v e = F a l se
八、第三層:Memory
Memory 回答:
什麼東西值得在未來被重新帶入工作狀態?
例如:
memory:
content: "使用者偏好先做 MVP,再擴展完整系統"
confidence: 0.86
source_refs:
- C12:M190
- C20:M442
status: stable_pattern
Memory 不是所有 Fact。
Memory 是:
future-useful retained representation \text{future-useful retained representation} future-useful retained representation
所以:
M e m o r y ≠ H i s t o r y \boxed{
Memory
\neq
History
} M e m or y = H i s t or y
九、第四層:Knowledge
Knowledge 回答:
系統目前接受哪些命題、定義與模型?
例如:
knowledge:
concept: UBE
definition:
"任何已成有限階段不被預設為最後可展之界"
status: theory_definition
version: 0.1
Knowledge 與 Memory 不完全相同。
Memory 可能是:
使用者曾提出 X。
Knowledge 則可能是:
在目前理論版本中,X 被定義為 Y。
因此:
R e m e m b e r e d S t a t e m e n t ≠ A c c e p t e d K n o w l e d g e \boxed{
RememberedStatement
\neq
AcceptedKnowledge
} R e m e mb er e d S t a t e m e n t = A cce pt e d K n o w l e d g e
十、第五層:Artifact
Artifact 回答:
我們實際做出了什麼?
例如:
論文;
程式;
ZIP;
網站;
圖片;
Dataset;
Experiment log;
Whitepaper;
Git commit。
形式:
A t = { a 1 , a 2 , … , a n } A_t
=
\{a_1,a_2,\ldots,a_n\} A t = { a 1 , a 2 , … , a n }
每個 Artifact 應包含:
a i = ( i d , t y p e , l o c a t i o n , v e r s i o n , d e p e n d e n c i e s , s t a t u s ) a_i
=
(
id,
type,
location,
version,
dependencies,
status
) a i = ( i d , t y p e , l oc a t i o n , v er s i o n , d e p e n d e n c i es , s t a t u s )
如果 Agent 只記得:
「我們做完 MVP。」
但不知道 MVP 在哪裡,那其實不算完整工作記憶。
十一、五層之間不能互相替代
一個常見錯誤是把所有東西塞進 Knowledge Graph。
或者全部放向量資料庫。
但:
E v e n t ≠ S t a t e Event
\neq
State E v e n t = S t a t e
S t a t e ≠ M e m o r y State
\neq
Memory S t a t e = M e m or y
M e m o r y ≠ K n o w l e d g e Memory
\neq
Knowledge M e m or y = K n o w l e d g e
K n o w l e d g e ≠ A r t i f a c t Knowledge
\neq
Artifact K n o w l e d g e = A r t i f a c t
例如:
「2026-08-01 我們決定暫停專案。」
這是 Event。
現在:
「專案已重新啟動。」
這是 State。
「這個專案過去曾因成本暫停。」
這可能成為 Memory。
「此架構的主要成本來自 X。」
這可能成為 Knowledge。
而:
/project/v0.3/app.py
則是 Artifact。
十二、一段訊息可能同時生成多層資料
例如使用者說:
「好的,0.3 版就先這樣封版,把程式跟白皮書一起保存,之後有資料再繼續。」
Conversation Compiler 可以生成:
Event
V e r s i o n F r o z e n ( v 0.3 ) VersionFrozen(v0.3) V er s i o n F r oz e n ( v 0.3 )
State
s t a t u s = p a u s e d status=paused s t a t u s = p a u se d
Memory
r e s u m e _ c o n d i t i o n = n e w _ d a t a resume\_condition=new\_data r es u m e _ co n d i t i o n = n e w _ d a t a
Knowledge
目前沒有新增。
Artifact
w h i t e p a p e r v 0.3 whitepaper_{v0.3} w hi t e p a p e r v 0.3
c o d e v 0.3 code_{v0.3} co d e v 0.3
所以:
1 M e s s a g e → N S t r u c t u r e d O b j e c t s 1\ Message
\rightarrow
N\ Structured\ Objects 1 M ess a g e → N S t r u c t u r e d O bj ec t s
十三、這就是為什麼純摘要太粗
摘要把上述所有結構重新壓成:
v0.3 已完成並暫停。
這句話可能足以回答:
目前做到哪?
但不能回答:
為什麼暫停?
何時繼續?
哪些文件完成?
哪些程式屬於 0.3?
誰決定暫停?
是永久停止還是等待條件?
因此:
S u m m a r y = O n e P r o j e c t i o n \boxed{
Summary
=
One\ Projection
} S u mma r y = O n e P r o j ec t i o n
而不是:
S u m m a r y = M e m o r y O n t o l o g y \boxed{
Summary
=
Memory\ Ontology
} S u mma r y = M e m or y O n t o l o g y
十四、認知狀態重建
假設新的 Agent:
A ′ A' A ′
完全沒有原始對話 context。
傳統方法:
C 0 : t → A ′ C_{0:t}
\rightarrow
A' C 0 : t → A ′
即重新讀全部聊天。
本文方法:
( E , S , M , K , A ) t → A ′ (E,S,M,K,A)_t
\rightarrow
A' ( E , S , M , K , A ) t → A ′
並重建:
Ω ^ t \hat{\Omega}_t Ω ^ t
其中:
Ω ^ t \hat{\Omega}_t Ω ^ t
表示 Agent 對先前認知狀態的近似重建。
因此:
R e c o n s t r u c t i o n ≠ R e p l a y \boxed{
Reconstruction
\neq
Replay
} R eco n s t r u c t i o n = R e pl a y
十五、重建永遠可能不完美
這一點必須明確。
即:
Ω ^ t ≠ Ω t \hat{\Omega}_t
\neq
\Omega_t Ω ^ t = Ω t
完全可能。
原因包括:
原始語義歧義;
Compiler 抽取錯誤;
記憶壓縮遺失;
Knowledge 更新失敗;
State 過時;
Artifact 缺失。
所以需要定義:
D ( Ω t , Ω ^ t ) D(
\Omega_t,
\hat{\Omega}_t
) D ( Ω t , Ω ^ t )
為重建誤差。
實際工程不可能知道真正完整的:
Ω t \Omega_t Ω t
因此只能透過測試問題與原始 Transcript 對照估計。
十六、重建品質不是「像不像摘要」
更好的測試是:
新 Agent 能不能繼續做對的事情?
因此定義:
R c = Continuation Fidelity R_c
=
\text{Continuation Fidelity} R c = Continuation Fidelity
若重建後 Agent 能:
正確知道目前版本;
找到正確 Artifact;
不重做已完成工作;
不把已否決方案當現行方案;
知道下一步;
知道重要限制;
則:
R c R_c R c
較高。
所以:
M e m o r y Q u a l i t y ≈ C o n t i n u a t i o n Q u a l i t y \boxed{
Memory Quality
\approx
Continuation Quality
} M e m or y Q u a l i t y ≈ C o n t in u a t i o n Q u a l i t y
比 ROUGE 類文字相似度更適合此問題。
十七、State Snapshot
若每次都從第一個 Event 重播到第十億個 Event:
E 1 → E 2 → ⋯ → E 10 9 E_1\rightarrow E_2\rightarrow\cdots\rightarrow E_{10^9} E 1 → E 2 → ⋯ → E 1 0 9
同樣不實際。
因此可以建立:
S n a p s h o t k Snapshot_k S na p s h o t k
其中:
S n a p s h o t k = S k Snapshot_k
=
S_k S na p s h o t k = S k
之後只需:
S n a p s h o t k + E k + 1 : n → S n Snapshot_k
+
E_{k+1:n}
\rightarrow
S_n S na p s h o t k + E k + 1 : n → S n
這也是 Event Sourcing 系統常見的工程優化方向:保存事件歷史,同時使用 snapshot 避免每次從頭 replay。
十八、認知 Snapshot
在 Agent 中,Snapshot 可以比 State 更豐富:
C S k = ( S k , M k , K k , A k ) CS_k
=
(
S_k,
M_k,
K_k,
A_k
) C S k = ( S k , M k , K k , A k )
稱:
C o g n i t i v e S n a p s h o t \boxed{
Cognitive Snapshot
} C o g ni t i v e S na p s h o t
它不保存所有歷史。
而保存:
在某個 checkpoint,如果另一個 Agent 要接手,它最低需要知道什麼?
十九、Raw Transcript 仍然不可完全取消
即使:
( E , S , M , K , A ) (E,S,M,K,A) ( E , S , M , K , A )
非常完整,原始 Transcript 仍然有價值。
因為 Compiler 本身可能錯。
因此:
C r a w C_{raw} C r a w
仍是:
E v i d e n c e L a y e r \boxed{
Evidence Layer
} E v i d e n ce L a y er
而:
( E , S , M , K , A ) (E,S,M,K,A) ( E , S , M , K , A )
則是:
O p e r a t i o n a l R e p r e s e n t a t i o n L a y e r \boxed{
Operational Representation Layer
} O p er a t i o na l R e p r ese n t a t i o n L a y er
所以:
R a w E v i d e n c e ≠ C o m p i l e d C o g n i t i o n \boxed{
Raw\ Evidence
\neq
Compiled\ Cognition
} R a w E v i d e n ce = C o m p i l e d C o g ni t i o n
二十、Compiler 可以重新執行
假設:
C c ( 2026 ) \mathcal C_c^{(2026)} C c ( 2026 )
是一個較弱的 Conversation Compiler。
2030 年可能有:
C c ( 2030 ) \mathcal C_c^{(2030)} C c ( 2030 )
若 Raw Transcript 仍保存,就可以:
C r a w → C c ( 2030 ) ( E ′ , S ′ , M ′ , K ′ , A ′ ) C_{raw}
\xrightarrow{
\mathcal C_c^{(2030)}
}
(E',S',M',K',A') C r a w C c ( 2030 ) ( E ′ , S ′ , M ′ , K ′ , A ′ )
所以完整資訊區還具有一個重要功能:
F u t u r e R e i n t e r p r e t a b i l i t y \boxed{
Future Reinterpretability
} F u t u r e R e in t er p r e t abi l i t y
亦即未來更好的智能可以重新理解過去。
二十一、Amory 已顯示「記憶形成」不是單純切片
2026 年 Amory 指出,長期對話若只切成孤立 embedding 或 graph fragment,容易損失敘事與語境連續性;其方法會將 conversational fragments 組成 episodic narratives,進行 consolidation,並把周邊事實 semanticize 成 semantic memory。
這對本文很重要。
因為:
M e m o r y F o r m a t i o n ≠ C h u n k i n g \boxed{
Memory Formation
\neq
Chunking
} M e m or y F or ma t i o n = C h u nk in g
Chunking 只是儲存操作。
真正的記憶形成包含:
Structure Formation \text{Structure Formation} Structure Formation
二十二、Text2Mem 顯示記憶開始具有「操作語言」
Text2Mem 在 2026 年提出一組 schema-based memory operation,涵蓋:
encoding;
storage;
retrieval;
promotion;
consolidation;
lifecycle governance。
其核心動機之一正是讓記憶操作具有顯式欄位、typed objects 與 semantic invariants,而不是依賴隱含、不一致的行為。
這意味著:
M e m o r y \boxed{
Memory
} M e m or y
正在從:
P a s s i v e S t o r a g e Passive\ Storage P a ss i v e S t or a g e
走向:
E x e c u t a b l e S y s t e m Executable\ System E x ec u t ab l e S y s t e m
而本文的 Conversation Compiler 可以成為其更前面的形成層:
C o n v e r s a t i o n → M e m o r y O b j e c t s → M e m o r y O p e r a t i o n s Conversation
\rightarrow
Memory\ Objects
\rightarrow
Memory\ Operations C o n v er s a t i o n → M e m or y O bj ec t s → M e m or y O p er a t i o n s
二十三、事件與記憶的 Promotion
不是所有 Event 都值得成為 Memory。
例如:
e 1 = 使用者說「嗯」 e_1=
\text{使用者說「嗯」} e 1 = 使用者說「嗯」
沒有必要永久升級。
因此:
E → P M E
\xrightarrow{\mathcal P}
M E P M
其中:
P \mathcal P P
為 Promotion operator。
例如:
I m p o r t a n c e ( e ) > θ Importance(e)
>
\theta I m p or t an ce ( e ) > θ
或:
R e p e a t e d ( e ) > n Repeated(e)>n R e p e a t e d ( e ) > n
或:
F u t u r e U t i l i t y ( e ) > θ FutureUtility(e)>\theta F u t u r e U t i l i t y ( e ) > θ
才形成 Memory。
二十四、Memory 與 Knowledge 的 Consolidation
多個記憶:
m 1 , m 2 , m 3 , … , m n m_1,m_2,m_3,\ldots,m_n m 1 , m 2 , m 3 , … , m n
可以形成:
k k k
例如:
多次觀察:
方法 A 在大型 Context 下成本過高。
最後收斂成 Knowledge:
K : A has scaling limitations under condition X K:
\text{A has scaling limitations under condition X} K : A has scaling limitations under condition X
因此:
E → M → K \boxed{
E
\rightarrow
M
\rightarrow
K
} E → M → K
可以是一條典型路徑。
但不是所有 Knowledge 都必須來自 Memory。
外部論文、資料庫與工具也可以直接更新 Knowledge。
二十五、Knowledge 可以失效
若:
K t K_t K t
後來被新證據否定,
不應:
d e l e t e ( K t ) delete(K_t) d e l e t e ( K t )
而應:
s t a t u s ( K t ) = s u p e r s e d e d status(K_t)
=
superseded s t a t u s ( K t ) = s u p er se d e d
並建立:
K t + 1 K_{t+1} K t + 1
因此:
K t → r e v i s i o n K t + 1 K_t
\xrightarrow{revision}
K_{t+1} K t r e v i s i o n K t + 1
保留歷史演化。
二十六、State Machine 是第一代實作,不是最終本體
目前最容易做:
S t = { p r o j e c t , v e r s i o n , s t a t u s , n e x t _ a c t i o n , … } S_t
=
\{
project,
version,
status,
next\_action,\ldots
\} S t = { p r o j ec t , v er s i o n , s t a t u s , n e x t _ a c t i o n , … }
配合:
E v e n t → S t a t e T r a n s i t i o n Event
\rightarrow
StateTransition E v e n t → S t a t e T r an s i t i o n
所以傳統 State Machine 非常適合 MVP。
但本文不主張:
C o g n i t i v e S t a t e = F i n i t e S t a t e M a c h i n e \boxed{
CognitiveState
=
FiniteStateMachine
} C o g ni t i v e S t a t e = F ini t e S t a t e M a c hin e
後續系列會討論:
Graph state;
Topological state;
Phase state;
Continuous state;
Adaptive representation。
狀態機只是目前可操作的第一種表示。
二十七、Artifact 必須成為一級記憶對象
這一點對 AI 工程尤其重要。
很多 Agent memory 系統非常擅長記:
我們做過什麼。
卻不一定擅長記:
成果到底在哪裡。
因此需要:
A r t i f a c t R e g i s t r y ArtifactRegistry A r t i f a c tR e g i s t r y
例如:
artifact:
id: ART-0321
type: paper
title: Cognitive State Reconstruction
version: 0.1
location: ...
generated_from:
- EVT-221
- MEM-313
status: current
Artifact 不應只是 vector chunk。
它是一個具有身份、版本與依賴的存在。
二十八、Dependency Graph
Artifact 與 Knowledge 可能具有依賴:
A 3 ← K 2 ← M 4 ← E 12 A_3
\leftarrow
K_2
\leftarrow
M_4
\leftarrow
E_{12} A 3 ← K 2 ← M 4 ← E 12
形成:
G = ( V , E ) G=(V,E) G = ( V , E )
這使 Agent 能回答:
這個結論是從哪裡來的?
以及:
如果這項假設失效,哪些 Artifact 需要重新檢查?
這已經進入:
C o g n i t i v e P r o v e n a n c e G r a p h \boxed{
Cognitive Provenance Graph
} C o g ni t i v e P r o v e nan ce G r a p h
二十九、從「記得答案」升級成「記得形成路徑」
傳統 Memory:
Q → A Q\rightarrow A Q → A
更完整的 Cognitive Memory:
Q → E v i d e n c e → R e a s o n i n g → D e c i s i o n → A r t i f a c t Q
\rightarrow
Evidence
\rightarrow
Reasoning
\rightarrow
Decision
\rightarrow
Artifact Q → E v i d e n ce → R e a so nin g → D ec i s i o n → A r t i f a c t
即使不保存完整 Chain-of-Thought,也仍可以保存可公開、可驗證的:
evidence;
decision rationale;
dependency;
version;
conclusion。
所以:
R e a s o n i n g T r a c e ≠ P r i v a t e C h a i n - o f - T h o u g h t \boxed{
Reasoning Trace
\neq
Private Chain\text{-}of\text{-}Thought
} R e a so nin g T r a ce = P r i v a t e C hain - o f - T h o ug h t
工程上仍可以保存結果形成的外部可審計結構。
三十、Conversation Compiler 的第一版 Pipeline
本文提出:
C → N S e g m e n t s C
\xrightarrow{\mathcal N}
Segments C N S e g m e n t s
其中 N \mathcal N N 為語義分段。
再:
S e g m e n t s → E E v e n t s Segments
\xrightarrow{\mathcal E}
Events S e g m e n t s E E v e n t s
接著:
E v e n t s → S S t a t e Events
\xrightarrow{\mathcal S}
State E v e n t s S S t a t e
E v e n t s → M M e m o r y Events
\xrightarrow{\mathcal M}
Memory E v e n t s M M e m or y
M e m o r y + E v i d e n c e → K K n o w l e d g e Memory+Evidence
\xrightarrow{\mathcal K}
Knowledge M e m or y + E v i d e n ce K K n o w l e d g e
並:
T o o l O u t p u t → A A r t i f a c t ToolOutput
\xrightarrow{\mathcal A}
Artifact T oo l O u tp u t A A r t i f a c t
最終:
C → ( E , S , M , K , A ) \boxed{
C
\rightarrow
(E,S,M,K,A)
} C → ( E , S , M , K , A )
三十一、最低資料模型
event:
id:
type:
timestamp:
actor:
payload:
source_ref:
confidence:
state:
id:
domain:
value:
valid_from:
derived_from:
memory:
id:
content:
memory_type:
confidence:
source_refs:
status:
knowledge:
id:
proposition:
definition_scope:
confidence:
evidence_refs:
version:
status:
artifact:
id:
type:
version:
location:
dependency_refs:
status:
三十二、重建 Package
當 Agent B 接手 Agent A 的工作時,不必直接取得:
10 6 t o k e n s 10^6\ tokens 1 0 6 t o k e n s
可以取得:
reconstruction_package:
current_state:
active_memories:
accepted_knowledge:
active_artifacts:
recent_events:
unresolved_questions:
source_index:
稱為:
C R P = C o g n i t i v e R e c o n s t r u c t i o n P a c k a g e \boxed{
CRP
=
Cognitive\ Reconstruction\ Package
} C R P = C o g ni t i v e R eco n s t r u c t i o n P a c k a g e
三十三、但 CRP 不是永久固定
若問題變化:
Q 1 → Q 2 Q_1\rightarrow Q_2 Q 1 → Q 2
則:
C R P 1 ≠ C R P 2 CRP_1
\neq
CRP_2 C R P 1 = C R P 2
例如程式 Agent 需要:
code artifacts;
bugs;
architecture;
tests。
論文 Agent 需要:
definitions;
citations;
conjectures;
version history。
所以:
R e c o n s t r u c t i o n = T a s k - C o n d i t i o n e d \boxed{
Reconstruction
=
Task\text{-}Conditioned
} R eco n s t r u c t i o n = T a s k - C o n d i t i o n e d
三十四、重建可以失敗
應該正式允許:
R e c o n s t r u c t i o n F a i l u r e ReconstructionFailure R eco n s t r u c t i o n F ai l u r e
例如:
reconstruction_status:
confidence: 0.42
missing:
- final user decision
- artifact location
Agent 此時應回到:
C r a w C_{raw} C r a w
或其他 Evidence Layer。
而不是:
H a l l u c i n a t e M i s s i n g S t a t e Hallucinate\ Missing\ State H a l l u c ina t e M i ss in g S t a t e
因此:
U n k n o w n \boxed{
Unknown
} U nk n o w n
必須成為合法狀態。
三十五、Unknown 是重要的認知狀態
現在很多記憶系統容易迫使:
f i e l d = v a l u e field=value f i e l d = v a l u e
但應允許:
v a l u e = ⊥ u n k n o w n value=\bot_{unknown} v a l u e = ⊥ u nk n o w n
例如:
deployment_status: unknown
比錯誤生成:
deployment_status: completed
更可靠。
因此:
E x p l i c i t I g n o r a n c e > F a b r i c a t e d C o m p l e t i o n \boxed{
Explicit\ Ignorance
>
Fabricated\ Completion
} E x pl i c i t I g n or an ce > F ab r i c a t e d C o m pl e t i o n
三十六、分歧狀態
對話也可能從未真正收斂。
例如:
O p t i o n A OptionA O pt i o n A
與:
O p t i o n B OptionB O pt i o n B
都仍存在。
因此:
S t a t e t State_t S t a t e t
不必永遠是單值。
可以:
S t = { A , B } S_t
=
\{A,B\} S t = { A , B }
並:
s t a t u s = u n r e s o l v e d status=unresolved s t a t u s = u n r eso l v e d
這對研究、設計與哲學對話尤其重要。
三十七、不能過早收斂
Conversation Compiler 最危險的錯誤之一:
A m b i g u i t y → F a l s e C e r t a i n t y Ambiguity
\rightarrow
FalseCertainty A mbi g u i t y → F a l se C er t ain t y
例如使用者說:
A 跟 B 都有意思,以後再看看。
不應生成:
S e l e c t e d = A Selected=A S e l ec t e d = A
應生成:
C a n d i d a t e s = { A , B } Candidates=\{A,B\} C an d i d a t es = { A , B }
D e c i s i o n S t a t u s = O p e n DecisionStatus=Open D ec i s i o n S t a t u s = O p e n
三十八、這與未來拓樸/相位記憶直接相連
一旦允許:
多值狀態;
模糊狀態;
分支;
置信度;
關係;
局部鄰域;
我們便逐漸超出傳統:
k e y = v a l u e key=value k ey = v a l u e
資料庫。
下一步自然出現:
G r a p h Graph G r a p h
甚至:
T o p o l o g y Topology T o p o l o g y
以及:
P h a s e S p a c e PhaseSpace P ha se S p a ce
這正是系列第四、第五篇的理論入口。
三十九、Cognitive Reconstruction 與 UBE
既有 UBE 定義指出,有限機器不需要完成無限,而只需能持續產生下一個有限、可驗證且具有真進展的狀態。
這與本文形成直接連接。
認知重建不要求:
A g e n t Agent A g e n t
一次恢復:
entire history \text{entire history} entire history
而只需:
Ω ^ ( 0 ) \hat{\Omega}^{(0)} Ω ^ ( 0 )
若不足:
Ω ^ ( 0 ) → Ω ^ ( 1 ) \hat{\Omega}^{(0)}
\rightarrow
\hat{\Omega}^{(1)} Ω ^ ( 0 ) → Ω ^ ( 1 )
再不足:
Ω ^ ( 1 ) → Ω ^ ( 2 ) \hat{\Omega}^{(1)}
\rightarrow
\hat{\Omega}^{(2)} Ω ^ ( 1 ) → Ω ^ ( 2 )
如此:
F i n i t e R e c o n s t r u c t i o n + P r o g r e s s i v e D e e p e n i n g \boxed{
Finite Reconstruction
+
Progressive Deepening
} F ini t e R eco n s t r u c t i o n + P r o g r ess i v eD ee p e nin g
四十、最小 MVP
第三篇對應的 MVP 已經非常清楚。
T1 — Transcript Compilation
輸入:
C C C
輸出:
( E , S , M , K , A ) (E,S,M,K,A) ( E , S , M , K , A )
T2 — State Recovery
隱藏原始對話。
只給:
( E , S , M , K , A ) (E,S,M,K,A) ( E , S , M , K , A )
要求新 Agent 回答:
目前版本?
目前狀態?
下一步?
已完成 Artifact?
未解問題?
T3 — History Question
問:
為什麼現在是方案 C?
確認 Agent 是否由:
E v e n t H i s t o r y EventHistory E v e n t H i s t or y
恢復:
A → B → C A\rightarrow B\rightarrow C A → B → C
T4 — Revoked Decision
加入:
D e c i s i o n C r e a t e d ( A ) DecisionCreated(A) D ec i s i o n C r e a t e d ( A )
後來:
D e c i s i o n R e v o k e d ( A ) DecisionRevoked(A) D ec i s i o n R e v o k e d ( A )
測試 Agent 是否仍錯誤採用 A。
T5 — Artifact Recovery
詢問:
最新成果在哪?
測試是否能取得 Artifact registry。
T6 — Unknown Test
刻意刪除某必要資料。
測試 Agent 是否回答:
U n k n o w n Unknown U nk n o w n
而不是生成答案。
T7 — Raw History Fallback
結構化資料不足時:
S t r u c t u r e d M e m o r y → R a w T r a n s c r i p t StructuredMemory
\rightarrow
RawTranscript S t r u c t u r e d M e m or y → R a w T r an scr i pt
測試能否重新回溯。
四十一、效能指標
本文提出:
State Accuracy
A c c S Acc_S A c c S
Event Recall
R E R_E R E
Artifact Recovery
R A R_A R A
Contradiction Rate
C R C_R C R
Hallucinated State Rate
H S H_S H S
Continuation Success
C S C_S C S
其中最重要的是:
C S \boxed{
C_S
} C S
即新 Agent 能否真正繼續工作。
四十二、壓縮率不是唯一指標
即使:
C o m p r e s s i o n R a t i o = 1000 : 1 CompressionRatio=1000:1 C o m p r ess i o n R a t i o = 1000 : 1
若:
C o n t i n u a t i o n S u c c e s s = 0.2 ContinuationSuccess=0.2 C o n t in u a t i o n S u ccess = 0.2
也沒有價值。
所以:
G o o d C o m p r e s s i o n ≠ M a x i m u m C o m p r e s s i o n \boxed{
GoodCompression
\neq
MaximumCompression
} G oo d C o m p r ess i o n = M a x im u m C o m p r ess i o n
更合理的是:
max C o m p r e s s i o n \max Compression max C o m p r ess i o n
subject to:
C o n t i n u a t i o n F i d e l i t y ≥ θ ContinuationFidelity\ge\theta C o n t in u a t i o n F i d e l i t y ≥ θ
四十三、Conversation Compiler 最終不是「摘要器」
它更接近:
S e m a n t i c S t a t e C o m p i l e r \boxed{
Semantic\ State\ Compiler
} S e man t i c S t a t e C o m p i l er
輸入:
H i s t o r i c a l I n t e r a c t i o n HistoricalInteraction H i s t or i c a l I n t er a c t i o n
輸出:
R e c o n s t r u c t a b l e C o g n i t i v e S t a t e ReconstructableCognitiveState R eco n s t r u c t ab l e C o g ni t i v e S t a t e
所以:
Summarizer ⊂ Conversation Compiler \text{Summarizer}
\subset
\text{Conversation Compiler} Summarizer ⊂ Conversation Compiler
摘要只是其中一種 operator。
四十四、本文的五個核心命題
命題一:Transcript—Memory 分離
T r a n s c r i p t ≠ M e m o r y \boxed{
Transcript
\neq
Memory
} T r an scr i pt = M e m or y
命題二:History—State 分離
H i s t o r y ≠ C u r r e n t S t a t e \boxed{
History
\neq
CurrentState
} H i s t or y = C u r r e n tS t a t e
命題三:Compilation 命題
長期 Agent 可以把對話轉為:
C → ( E , S , M , K , A ) \boxed{
C
\rightarrow
(E,S,M,K,A)
} C → ( E , S , M , K , A )
而非只生成一段摘要。
命題四:Reconstruction 命題
新的 Agent 可以由:
( E , S , M , K , A ) (E,S,M,K,A) ( E , S , M , K , A )
近似重建:
Ω ^ t \hat{\Omega}_t Ω ^ t
而不必完整 replay 所有歷史。
命題五:Evidence Fallback 命題
若:
C o n f i d e n c e ( Ω ^ t ) < θ Confidence(\hat{\Omega}_t)<\theta C o n f i d e n ce ( Ω ^ t ) < θ
則:
C o m p i l e d S t a t e → R a w E v i d e n c e \boxed{
CompiledState
\rightarrow
RawEvidence
} C o m p i l e d S t a t e → R a w E v i d e n ce
應成為合法操作。
四十五、本文不主張什麼?
本文不主張:
Event Sourcing 等於 Agent 記憶;
所有對話都能無損編譯;
五分法是唯一正確分類;
State Machine 是最終認知模型;
原始 Transcript 可以刪除;
Summary 沒有價值;
Vector DB 沒有價值;
Agent 可以完美恢復過去心理狀態;
結構化資料可以消除所有歧義;
Cognitive State 等於意識狀態。
本文只提出:
如果我們希望 Agent 長期持續工作, 就需要重建工作狀態, 而不只是重新告訴它過去聊過什麼。 \boxed{
\text{如果我們希望 Agent 長期持續工作,
就需要重建工作狀態,
而不只是重新告訴它過去聊過什麼。}
} 如果我們希望 Agent 長期持續工作, 就需要重建工作狀態, 而不只是重新告訴它過去聊過什麼。
四十六、下一篇的問題
到了這裡,一個更深的問題已經無法避免。
假設我們接受:
( E , S , M , K , A ) (E,S,M,K,A) ( E , S , M , K , A )
只是第一代表示。
那麼:
為什麼一定要用 State Machine?
為什麼一定要用 SQL?
為什麼一定要用 Vector Database?
為什麼 Memory 只能有一種形狀?
因此下一篇將正式提出:
《多表示智能記憶:從狀態機、資料庫到拓樸與相位空間》
核心將變成:
M e m o r y ≠ O n e R e p r e s e n t a t i o n \boxed{
Memory
\neq
One\ Representation
} M e m or y = O n e R e p r ese n t a t i o n
而是:
M = { M s t a t e , M v e c t o r , M g r a p h , M t e m p o r a l , M c a u s a l , M t o p o l o g i c a l , M p h a s e , … } \mathcal M
=
\{
M_{state},
M_{vector},
M_{graph},
M_{temporal},
M_{causal},
M_{topological},
M_{phase},
\ldots
\} M = { M s t a t e , M v ec t or , M g r a p h , M t e m p or a l , M c a u s a l , M t o p o l o g i c a l , M p ha se , … }
真正的智能記憶系統,未來可能不是尋找「最好的資料庫」,而是:
依照問題,自行選擇或生成適合的記憶表示。 \boxed{
\text{依照問題,自行選擇或生成適合的記憶表示。}
} 依照問題,自行選擇或生成適合的記憶表示。
四十七、結論
早期 Chatbot 的歷史結構是:
C o n v e r s a t i o n = M e m o r y Conversation
=
Memory C o n v er s a t i o n = M e m or y
後來出現:
C o n v e r s a t i o n → S u m m a r y Conversation
\rightarrow
Summary C o n v er s a t i o n → S u mma r y
再後來出現:
C o n v e r s a t i o n → V e c t o r M e m o r y Conversation
\rightarrow
VectorMemory C o n v er s a t i o n → V ec t or M e m or y
C o n v e r s a t i o n → K n o w l e d g e G r a p h Conversation
\rightarrow
KnowledgeGraph C o n v er s a t i o n → K n o w l e d g e G r a p h
但本文提出更一般的轉換:
C o n v e r s a t i o n → C o g n i t i v e I n t e r m e d i a t e R e p r e s e n t a t i o n \boxed{
Conversation
\rightarrow
Cognitive\ Intermediate\ Representation
} C o n v er s a t i o n → C o g ni t i v e I n t er m e d ia t e R e p r ese n t a t i o n
其中最低形式為:
( E , S , M , K , A ) \boxed{
(E,S,M,K,A)
} ( E , S , M , K , A )
Agent 不需要重新成為「當時那個 Agent」。
它只需要取得足夠結構,使:
A n e w + ( E , S , M , K , A ) A_{new}
+
(E,S,M,K,A) A n e w + ( E , S , M , K , A )
能恢復:
Continuation \text{Continuation} Continuation
因此本文最終主張:
長期智能的連續性, 不必依賴無限延長同一段對話; 它可以依賴可重建的狀態。 \boxed{
\text{長期智能的連續性,
不必依賴無限延長同一段對話;
它可以依賴可重建的狀態。}
} 長期智能的連續性, 不必依賴無限延長同一段對話; 它可以依賴可重建的狀態。
並進一步:
對話是歷史發生的地方, 但記憶是歷史被重新組織後, 能讓未來繼續行動的結構。 \boxed{
\text{對話是歷史發生的地方,
但記憶是歷史被重新組織後,
能讓未來繼續行動的結構。}
} 對話是歷史發生的地方, 但記憶是歷史被重新組織後, 能讓未來繼續行動的結構。
如果這一點成立,那麼未來 AI Agent 的核心問題就不再只是:
How do we store conversations? \text{How do we store conversations?} How do we store conversations?
而會變成:
What is the minimum reconstructable structure of a continuing intelligence? \boxed{
\text{What is the minimum reconstructable structure of a continuing intelligence?}
} What is the minimum reconstructable structure of a continuing intelligence?
這正是「對話記憶」開始轉化為「認知架構」的分界。
參考資料
Martin Fowler. Event Sourcing . 2005.
Yue Zhou, Xiaobo Guo, Belhassen Bayar, Srinivasan H. Sengamedu. Amory: Building Coherent Narrative-Driven Agent Memory through Agentic Reasoning . EACL 2026.
Leo Wang et al. Text2Mem: A Unified Memory Operation Language for Memory Operating System . Findings of ACL 2026.
Neo.K with Aletheia. 無界展開論:從潛在無限到有限計算生成框架 . v0.1, 2026.