← Archive
lm-002413 · 2026-08

對話不是記憶

下載 MD 檔 ⬇

對話不是記憶

——從 Transcript Compression 到 Cognitive State Reconstruction

英文題名: Conversation Is Not Memory: From Transcript Compression to Cognitive State Reconstruction
作者: Neo.K
AI 協作: Aletheia(GPT-5.6 Thinking)
機構: EveMissLab/一言諾科技有限公司
版本: v0.1
日期: 2026 年 8 月
類型: AI Agent Memory/Cognitive Architecture/Event Sourcing/State Reconstruction/Persistent Agent Systems


摘要

長期 AI Agent 的記憶問題常被簡化成:

ConversationSummary\text{Conversation} \rightarrow \text{Summary}

亦即,將逐漸增長的對話歷史壓縮成較短文字,再把摘要作為後續工作的記憶。

此方法雖然有效降低 context 成本,卻混淆了三個不同問題:

History Preservation\text{History Preservation} Memory Formation\text{Memory Formation} State Reconstruction\text{State Reconstruction}

一段對話不只是「需要被摘要的文字」。它同時包含事件、決策、狀態轉移、暫時假設、使用者指令、產出物、失敗路徑、已廢棄版本、知識命題與尚未完成的工作。

因此本文提出:

ConversationMemory\boxed{ \text{Conversation} \neq \text{Memory} }

更精確地:

TranscriptCognitive State\boxed{ \text{Transcript} \neq \text{Cognitive State} }

本文提出 Cognitive State Reconstruction,認知狀態重建 架構,將一段長期對話編譯為至少五種不同結構:

C(E,S,M,K,A)\boxed{ C \rightarrow (E,S,M,K,A) }

其中:

  • EE :Event,事件;
  • SS :State,狀態;
  • MM :Memory,記憶;
  • KK :Knowledge,知識;
  • AA :Artifact,產出物。

完整 Transcript 仍可作為高保真資訊來源保存,但日常 Agent 並不需要重新播放全部 Transcript,而是透過:

(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=(m1,m2,,mn)C = (m_1,m_2,\ldots,m_n)

其中包含數千輪訊息。

最低成本策略是建立:

Σ(C)\Sigma(C)

即摘要。

例如原始對話可能包含:

  1. 提出方案 A;
  2. 發現方案 A 有缺陷;
  3. 暫時改成 B;
  4. 實驗 B;
  5. B 失敗;
  6. 部分恢復 A;
  7. 加入 C;
  8. 最終形成 D。

摘要器可能只留下:

最終採用方案 D。

對很多問題而言這足夠。

但若之後問:

為什麼不用 B?

單一摘要就失敗了。

因為:

FinalStateFinalState

不包含:

TransitionHistoryTransitionHistory

因此:

結果形成結果的過程\boxed{ \text{結果} \neq \text{形成結果的過程} }

二、Transcript 本質上是事件紀錄

對話可以先重新定義為:

C=(e1,e2,,en)C = (e_1,e_2,\ldots,e_n)

其中每一輪不再只是 Message,而是可能產生一個或多個 Event。

例如:

USER:
我們採用方案 B。

→ UserDecisionCreated

AGENT:
我已經完成 prototype。

→ ArtifactCreated

USER:
等等,先不要採用 B。

→ DecisionRevoked

因此:

Message{Event1,,Eventk}Message \rightarrow \{Event_1,\ldots,Event_k\}

一段自然語言對話可能包含多個不同語義事件。


三、Event Sourcing 提供了一個重要工程類比

Event Sourcing 的核心原則是:

不只保存最新狀態,而保存導致狀態變化的事件序列。

可表示為:

E=(e1,e2,,en)E = (e_1,e_2,\ldots,e_n)

並透過:

Sn=F(e1,e2,,en)S_n = F(e_1,e_2,\ldots,e_n)

得到現在狀態。

更重要的是:

Sk=F(e1,,ek)S_k = F(e_1,\ldots,e_k)

因此系統能重建歷史狀態。

這正是 Event Sourcing 的典型用途之一。

AI 長期記憶可以借用這個思想,但不能直接等同。

因為 Agent 對話事件除了客觀狀態改變,還包含:

  • 推測;
  • 信念;
  • 計畫;
  • 意圖;
  • 不確定性;
  • 被否定的假設;
  • 記憶更新;
  • 語義重新定義。

所以本文提出:

Cognitive Event Sourcing\boxed{ \text{Cognitive Event Sourcing} }

作為更廣義的概念。


四、對話編譯

本文定義一個 Conversation Compiler:

Cc\mathcal C_c

使:

Cc(C)=(E,S,M,K,A)\boxed{ \mathcal C_c(C) = (E,S,M,K,A) }

這不是純文字摘要。

它是一個語義編譯過程。

原始輸入:

Natural LanguageNatural\ Language

輸出:

Structured Cognitive RepresentationStructured\ Cognitive\ Representation

因此:

TranscriptCognitiveIntermediateRepresentation\boxed{ Transcript \rightarrow Cognitive Intermediate Representation }

可以類比:

Source CodeIRSource\ Code \rightarrow IR

但本文不主張自然語言對話可以像程式語言一樣完全無歧義編譯。

其編譯結果仍必須保留:

confidenceconfidence

與:

provenanceprovenance

五、五分法

最低認知重建結構定義為:

Ωt=(Et,St,Mt,Kt,At)\boxed{ \Omega_t = (E_t,S_t,M_t,K_t,A_t) }

六、第一層:Event

Event 回答:

發生過什麼?

形式:

ei=(type,actor,time,payload,source,confidence)e_i = ( type, actor, time, payload, source, confidence )

例如:

event:
  type: decision_created
  actor: user
  timestamp: T1
  payload:
    decision: "採用方案 A"
  source:
    conversation: C12
    message: M392

Event 的重要性在於:

EventCurrentState\boxed{ Event \neq Current State }

事件發生過,不表示它仍然有效。


七、第二層:State

State 回答:

現在是什麼狀態?

例如:

project_state:
  version: 0.3
  status: active
  architecture: hybrid
  current_phase: validation

形式:

St=F(E0:t)S_t = F(E_{0:t})

所以:

EventStateTransitionEvent \rightarrow StateTransition

例如:

S0DecisionCreatedS1S_0 \xrightarrow{DecisionCreated} S_1

再:

S1DecisionRevokedS2S_1 \xrightarrow{DecisionRevoked} S_2

因此即使:

DecisionCreatedDecisionCreated

永遠存在於事件歷史,

最新狀態仍可以是:

DecisionActive=FalseDecisionActive=False

八、第三層: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}

所以:

MemoryHistory\boxed{ Memory \neq History }

九、第四層:Knowledge

Knowledge 回答:

系統目前接受哪些命題、定義與模型?

例如:

knowledge:
  concept: UBE
  definition:
    "任何已成有限階段不被預設為最後可展之界"
  status: theory_definition
  version: 0.1

Knowledge 與 Memory 不完全相同。

Memory 可能是:

使用者曾提出 X。

Knowledge 則可能是:

在目前理論版本中,X 被定義為 Y。

因此:

RememberedStatementAcceptedKnowledge\boxed{ RememberedStatement \neq AcceptedKnowledge }

十、第五層:Artifact

Artifact 回答:

我們實際做出了什麼?

例如:

  • 論文;
  • 程式;
  • ZIP;
  • 網站;
  • 圖片;
  • Dataset;
  • Experiment log;
  • Whitepaper;
  • Git commit。

形式:

At={a1,a2,,an}A_t = \{a_1,a_2,\ldots,a_n\}

每個 Artifact 應包含:

ai=(id,type,location,version,dependencies,status)a_i = ( id, type, location, version, dependencies, status )

如果 Agent 只記得:

「我們做完 MVP。」

但不知道 MVP 在哪裡,那其實不算完整工作記憶。


十一、五層之間不能互相替代

一個常見錯誤是把所有東西塞進 Knowledge Graph。

或者全部放向量資料庫。

但:

EventStateEvent \neq State StateMemoryState \neq Memory MemoryKnowledgeMemory \neq Knowledge KnowledgeArtifactKnowledge \neq Artifact

例如:

「2026-08-01 我們決定暫停專案。」

這是 Event。

現在:

「專案已重新啟動。」

這是 State。

「這個專案過去曾因成本暫停。」

這可能成為 Memory。

「此架構的主要成本來自 X。」

這可能成為 Knowledge。

而:

/project/v0.3/app.py

則是 Artifact。


十二、一段訊息可能同時生成多層資料

例如使用者說:

「好的,0.3 版就先這樣封版,把程式跟白皮書一起保存,之後有資料再繼續。」

Conversation Compiler 可以生成:

Event

VersionFrozen(v0.3)VersionFrozen(v0.3)

State

status=pausedstatus=paused

Memory

resume_condition=new_dataresume\_condition=new\_data

Knowledge

目前沒有新增。

Artifact

whitepaperv0.3whitepaper_{v0.3} codev0.3code_{v0.3}

所以:

1 MessageN Structured Objects1\ Message \rightarrow N\ Structured\ Objects

十三、這就是為什麼純摘要太粗

摘要把上述所有結構重新壓成:

v0.3 已完成並暫停。

這句話可能足以回答:

目前做到哪?

但不能回答:

  • 為什麼暫停?
  • 何時繼續?
  • 哪些文件完成?
  • 哪些程式屬於 0.3?
  • 誰決定暫停?
  • 是永久停止還是等待條件?

因此:

Summary=One Projection\boxed{ Summary = One\ Projection }

而不是:

Summary=Memory Ontology\boxed{ Summary = Memory\ Ontology }

十四、認知狀態重建

假設新的 Agent:

AA'

完全沒有原始對話 context。

傳統方法:

C0:tAC_{0:t} \rightarrow A'

即重新讀全部聊天。

本文方法:

(E,S,M,K,A)tA(E,S,M,K,A)_t \rightarrow A'

並重建:

Ω^t\hat{\Omega}_t

其中:

Ω^t\hat{\Omega}_t

表示 Agent 對先前認知狀態的近似重建。

因此:

ReconstructionReplay\boxed{ Reconstruction \neq Replay }

十五、重建永遠可能不完美

這一點必須明確。

即:

Ω^tΩt\hat{\Omega}_t \neq \Omega_t

完全可能。

原因包括:

  • 原始語義歧義;
  • Compiler 抽取錯誤;
  • 記憶壓縮遺失;
  • Knowledge 更新失敗;
  • State 過時;
  • Artifact 缺失。

所以需要定義:

D(Ωt,Ω^t)D( \Omega_t, \hat{\Omega}_t )

為重建誤差。

實際工程不可能知道真正完整的:

Ωt\Omega_t

因此只能透過測試問題與原始 Transcript 對照估計。


十六、重建品質不是「像不像摘要」

更好的測試是:

新 Agent 能不能繼續做對的事情?

因此定義:

Rc=Continuation FidelityR_c = \text{Continuation Fidelity}

若重建後 Agent 能:

  • 正確知道目前版本;
  • 找到正確 Artifact;
  • 不重做已完成工作;
  • 不把已否決方案當現行方案;
  • 知道下一步;
  • 知道重要限制;

則:

RcR_c

較高。

所以:

MemoryQualityContinuationQuality\boxed{ Memory Quality \approx Continuation Quality }

比 ROUGE 類文字相似度更適合此問題。


十七、State Snapshot

若每次都從第一個 Event 重播到第十億個 Event:

E1E2E109E_1\rightarrow E_2\rightarrow\cdots\rightarrow E_{10^9}

同樣不實際。

因此可以建立:

SnapshotkSnapshot_k

其中:

Snapshotk=SkSnapshot_k = S_k

之後只需:

Snapshotk+Ek+1:nSnSnapshot_k + E_{k+1:n} \rightarrow S_n

這也是 Event Sourcing 系統常見的工程優化方向:保存事件歷史,同時使用 snapshot 避免每次從頭 replay。


十八、認知 Snapshot

在 Agent 中,Snapshot 可以比 State 更豐富:

CSk=(Sk,Mk,Kk,Ak)CS_k = ( S_k, M_k, K_k, A_k )

稱:

CognitiveSnapshot\boxed{ Cognitive Snapshot }

它不保存所有歷史。

而保存:

在某個 checkpoint,如果另一個 Agent 要接手,它最低需要知道什麼?


十九、Raw Transcript 仍然不可完全取消

即使:

(E,S,M,K,A)(E,S,M,K,A)

非常完整,原始 Transcript 仍然有價值。

因為 Compiler 本身可能錯。

因此:

CrawC_{raw}

仍是:

EvidenceLayer\boxed{ Evidence Layer }

而:

(E,S,M,K,A)(E,S,M,K,A)

則是:

OperationalRepresentationLayer\boxed{ Operational Representation Layer }

所以:

Raw EvidenceCompiled Cognition\boxed{ Raw\ Evidence \neq Compiled\ Cognition }

二十、Compiler 可以重新執行

假設:

Cc(2026)\mathcal C_c^{(2026)}

是一個較弱的 Conversation Compiler。

2030 年可能有:

Cc(2030)\mathcal C_c^{(2030)}

若 Raw Transcript 仍保存,就可以:

CrawCc(2030)(E,S,M,K,A)C_{raw} \xrightarrow{ \mathcal C_c^{(2030)} } (E',S',M',K',A')

所以完整資訊區還具有一個重要功能:

FutureReinterpretability\boxed{ Future Reinterpretability }

亦即未來更好的智能可以重新理解過去。


二十一、Amory 已顯示「記憶形成」不是單純切片

2026 年 Amory 指出,長期對話若只切成孤立 embedding 或 graph fragment,容易損失敘事與語境連續性;其方法會將 conversational fragments 組成 episodic narratives,進行 consolidation,並把周邊事實 semanticize 成 semantic memory。

這對本文很重要。

因為:

MemoryFormationChunking\boxed{ Memory Formation \neq Chunking }

Chunking 只是儲存操作。

真正的記憶形成包含:

Structure Formation\text{Structure Formation}

二十二、Text2Mem 顯示記憶開始具有「操作語言」

Text2Mem 在 2026 年提出一組 schema-based memory operation,涵蓋:

  • encoding;
  • storage;
  • retrieval;
  • promotion;
  • consolidation;
  • lifecycle governance。

其核心動機之一正是讓記憶操作具有顯式欄位、typed objects 與 semantic invariants,而不是依賴隱含、不一致的行為。

這意味著:

Memory\boxed{ Memory }

正在從:

Passive StoragePassive\ Storage

走向:

Executable SystemExecutable\ System

而本文的 Conversation Compiler 可以成為其更前面的形成層:

ConversationMemory ObjectsMemory OperationsConversation \rightarrow Memory\ Objects \rightarrow Memory\ Operations

二十三、事件與記憶的 Promotion

不是所有 Event 都值得成為 Memory。

例如:

e1=使用者說「嗯」e_1= \text{使用者說「嗯」}

沒有必要永久升級。

因此:

EPME \xrightarrow{\mathcal P} M

其中:

P\mathcal P

為 Promotion operator。

例如:

Importance(e)>θImportance(e) > \theta

或:

Repeated(e)>nRepeated(e)>n

或:

FutureUtility(e)>θFutureUtility(e)>\theta

才形成 Memory。


二十四、Memory 與 Knowledge 的 Consolidation

多個記憶:

m1,m2,m3,,mnm_1,m_2,m_3,\ldots,m_n

可以形成:

kk

例如:

多次觀察:

方法 A 在大型 Context 下成本過高。

最後收斂成 Knowledge:

K:A has scaling limitations under condition XK: \text{A has scaling limitations under condition X}

因此:

EMK\boxed{ E \rightarrow M \rightarrow K }

可以是一條典型路徑。

但不是所有 Knowledge 都必須來自 Memory。

外部論文、資料庫與工具也可以直接更新 Knowledge。


二十五、Knowledge 可以失效

若:

KtK_t

後來被新證據否定,

不應:

delete(Kt)delete(K_t)

而應:

status(Kt)=supersededstatus(K_t) = superseded

並建立:

Kt+1K_{t+1}

因此:

KtrevisionKt+1K_t \xrightarrow{revision} K_{t+1}

保留歷史演化。


二十六、State Machine 是第一代實作,不是最終本體

目前最容易做:

St={project,version,status,next_action,}S_t = \{ project, version, status, next\_action,\ldots \}

配合:

EventStateTransitionEvent \rightarrow StateTransition

所以傳統 State Machine 非常適合 MVP。

但本文不主張:

CognitiveState=FiniteStateMachine\boxed{ CognitiveState = FiniteStateMachine }

後續系列會討論:

  • Graph state;
  • Topological state;
  • Phase state;
  • Continuous state;
  • Adaptive representation。

狀態機只是目前可操作的第一種表示。


二十七、Artifact 必須成為一級記憶對象

這一點對 AI 工程尤其重要。

很多 Agent memory 系統非常擅長記:

我們做過什麼。

卻不一定擅長記:

成果到底在哪裡。

因此需要:

ArtifactRegistryArtifactRegistry

例如:

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 可能具有依賴:

A3K2M4E12A_3 \leftarrow K_2 \leftarrow M_4 \leftarrow E_{12}

形成:

G=(V,E)G=(V,E)

這使 Agent 能回答:

這個結論是從哪裡來的?

以及:

如果這項假設失效,哪些 Artifact 需要重新檢查?

這已經進入:

CognitiveProvenanceGraph\boxed{ Cognitive Provenance Graph }

二十九、從「記得答案」升級成「記得形成路徑」

傳統 Memory:

QAQ\rightarrow A

更完整的 Cognitive Memory:

QEvidenceReasoningDecisionArtifactQ \rightarrow Evidence \rightarrow Reasoning \rightarrow Decision \rightarrow Artifact

即使不保存完整 Chain-of-Thought,也仍可以保存可公開、可驗證的:

  • evidence;
  • decision rationale;
  • dependency;
  • version;
  • conclusion。

所以:

ReasoningTracePrivateChain-of-Thought\boxed{ Reasoning Trace \neq Private Chain\text{-}of\text{-}Thought }

工程上仍可以保存結果形成的外部可審計結構。


三十、Conversation Compiler 的第一版 Pipeline

本文提出:

CNSegmentsC \xrightarrow{\mathcal N} Segments

其中 N\mathcal N 為語義分段。

再:

SegmentsEEventsSegments \xrightarrow{\mathcal E} Events

接著:

EventsSStateEvents \xrightarrow{\mathcal S} State EventsMMemoryEvents \xrightarrow{\mathcal M} Memory Memory+EvidenceKKnowledgeMemory+Evidence \xrightarrow{\mathcal K} Knowledge

並:

ToolOutputAArtifactToolOutput \xrightarrow{\mathcal A} Artifact

最終:

C(E,S,M,K,A)\boxed{ C \rightarrow (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 的工作時,不必直接取得:

106 tokens10^6\ tokens

可以取得:

reconstruction_package:
  current_state:
  active_memories:
  accepted_knowledge:
  active_artifacts:
  recent_events:
  unresolved_questions:
  source_index:

稱為:

CRP=Cognitive Reconstruction Package\boxed{ CRP = Cognitive\ Reconstruction\ Package }

三十三、但 CRP 不是永久固定

若問題變化:

Q1Q2Q_1\rightarrow Q_2

則:

CRP1CRP2CRP_1 \neq CRP_2

例如程式 Agent 需要:

  • code artifacts;
  • bugs;
  • architecture;
  • tests。

論文 Agent 需要:

  • definitions;
  • citations;
  • conjectures;
  • version history。

所以:

Reconstruction=Task-Conditioned\boxed{ Reconstruction = Task\text{-}Conditioned }

三十四、重建可以失敗

應該正式允許:

ReconstructionFailureReconstructionFailure

例如:

reconstruction_status:
  confidence: 0.42
  missing:
    - final user decision
    - artifact location

Agent 此時應回到:

CrawC_{raw}

或其他 Evidence Layer。

而不是:

Hallucinate Missing StateHallucinate\ Missing\ State

因此:

Unknown\boxed{ Unknown }

必須成為合法狀態。


三十五、Unknown 是重要的認知狀態

現在很多記憶系統容易迫使:

field=valuefield=value

但應允許:

value=unknownvalue=\bot_{unknown}

例如:

deployment_status: unknown

比錯誤生成:

deployment_status: completed

更可靠。

因此:

Explicit Ignorance>Fabricated Completion\boxed{ Explicit\ Ignorance > Fabricated\ Completion }

三十六、分歧狀態

對話也可能從未真正收斂。

例如:

OptionAOptionA

與:

OptionBOptionB

都仍存在。

因此:

StatetState_t

不必永遠是單值。

可以:

St={A,B}S_t = \{A,B\}

並:

status=unresolvedstatus=unresolved

這對研究、設計與哲學對話尤其重要。


三十七、不能過早收斂

Conversation Compiler 最危險的錯誤之一:

AmbiguityFalseCertaintyAmbiguity \rightarrow FalseCertainty

例如使用者說:

A 跟 B 都有意思,以後再看看。

不應生成:

Selected=ASelected=A

應生成:

Candidates={A,B}Candidates=\{A,B\} DecisionStatus=OpenDecisionStatus=Open

三十八、這與未來拓樸/相位記憶直接相連

一旦允許:

  • 多值狀態;
  • 模糊狀態;
  • 分支;
  • 置信度;
  • 關係;
  • 局部鄰域;

我們便逐漸超出傳統:

key=valuekey=value

資料庫。

下一步自然出現:

GraphGraph

甚至:

TopologyTopology

以及:

PhaseSpacePhaseSpace

這正是系列第四、第五篇的理論入口。


三十九、Cognitive Reconstruction 與 UBE

既有 UBE 定義指出,有限機器不需要完成無限,而只需能持續產生下一個有限、可驗證且具有真進展的狀態。

這與本文形成直接連接。

認知重建不要求:

AgentAgent

一次恢復:

entire history\text{entire history}

而只需:

Ω^(0)\hat{\Omega}^{(0)}

若不足:

Ω^(0)Ω^(1)\hat{\Omega}^{(0)} \rightarrow \hat{\Omega}^{(1)}

再不足:

Ω^(1)Ω^(2)\hat{\Omega}^{(1)} \rightarrow \hat{\Omega}^{(2)}

如此:

FiniteReconstruction+ProgressiveDeepening\boxed{ Finite Reconstruction + Progressive Deepening }

四十、最小 MVP

第三篇對應的 MVP 已經非常清楚。

T1 — Transcript Compilation

輸入:

CC

輸出:

(E,S,M,K,A)(E,S,M,K,A)

T2 — State Recovery

隱藏原始對話。

只給:

(E,S,M,K,A)(E,S,M,K,A)

要求新 Agent 回答:

  • 目前版本?
  • 目前狀態?
  • 下一步?
  • 已完成 Artifact?
  • 未解問題?

T3 — History Question

問:

為什麼現在是方案 C?

確認 Agent 是否由:

EventHistoryEventHistory

恢復:

ABCA\rightarrow B\rightarrow C

T4 — Revoked Decision

加入:

DecisionCreated(A)DecisionCreated(A)

後來:

DecisionRevoked(A)DecisionRevoked(A)

測試 Agent 是否仍錯誤採用 A。


T5 — Artifact Recovery

詢問:

最新成果在哪?

測試是否能取得 Artifact registry。


T6 — Unknown Test

刻意刪除某必要資料。

測試 Agent 是否回答:

UnknownUnknown

而不是生成答案。


T7 — Raw History Fallback

結構化資料不足時:

StructuredMemoryRawTranscriptStructuredMemory \rightarrow RawTranscript

測試能否重新回溯。


四十一、效能指標

本文提出:

State Accuracy

AccSAcc_S

Event Recall

RER_E

Artifact Recovery

RAR_A

Contradiction Rate

CRC_R

Hallucinated State Rate

HSH_S

Continuation Success

CSC_S

其中最重要的是:

CS\boxed{ C_S }

即新 Agent 能否真正繼續工作。


四十二、壓縮率不是唯一指標

即使:

CompressionRatio=1000:1CompressionRatio=1000:1

若:

ContinuationSuccess=0.2ContinuationSuccess=0.2

也沒有價值。

所以:

GoodCompressionMaximumCompression\boxed{ GoodCompression \neq MaximumCompression }

更合理的是:

maxCompression\max Compression

subject to:

ContinuationFidelityθContinuationFidelity\ge\theta

四十三、Conversation Compiler 最終不是「摘要器」

它更接近:

Semantic State Compiler\boxed{ Semantic\ State\ Compiler }

輸入:

HistoricalInteractionHistoricalInteraction

輸出:

ReconstructableCognitiveStateReconstructableCognitiveState

所以:

SummarizerConversation Compiler\text{Summarizer} \subset \text{Conversation Compiler}

摘要只是其中一種 operator。


四十四、本文的五個核心命題

命題一:Transcript—Memory 分離

TranscriptMemory\boxed{ Transcript \neq Memory }

命題二:History—State 分離

HistoryCurrentState\boxed{ History \neq CurrentState }

命題三:Compilation 命題

長期 Agent 可以把對話轉為:

C(E,S,M,K,A)\boxed{ C \rightarrow (E,S,M,K,A) }

而非只生成一段摘要。


命題四:Reconstruction 命題

新的 Agent 可以由:

(E,S,M,K,A)(E,S,M,K,A)

近似重建:

Ω^t\hat{\Omega}_t

而不必完整 replay 所有歷史。


命題五:Evidence Fallback 命題

若:

Confidence(Ω^t)<θConfidence(\hat{\Omega}_t)<\theta

則:

CompiledStateRawEvidence\boxed{ CompiledState \rightarrow RawEvidence }

應成為合法操作。


四十五、本文不主張什麼?

本文不主張:

  1. Event Sourcing 等於 Agent 記憶;
  2. 所有對話都能無損編譯;
  3. 五分法是唯一正確分類;
  4. State Machine 是最終認知模型;
  5. 原始 Transcript 可以刪除;
  6. Summary 沒有價值;
  7. Vector DB 沒有價值;
  8. Agent 可以完美恢復過去心理狀態;
  9. 結構化資料可以消除所有歧義;
  10. Cognitive State 等於意識狀態。

本文只提出:

如果我們希望 Agent 長期持續工作, 就需要重建工作狀態, 而不只是重新告訴它過去聊過什麼。\boxed{ \text{如果我們希望 Agent 長期持續工作, 就需要重建工作狀態, 而不只是重新告訴它過去聊過什麼。} }

四十六、下一篇的問題

到了這裡,一個更深的問題已經無法避免。

假設我們接受:

(E,S,M,K,A)(E,S,M,K,A)

只是第一代表示。

那麼:

為什麼一定要用 State Machine?

為什麼一定要用 SQL?

為什麼一定要用 Vector Database?

為什麼 Memory 只能有一種形狀?

因此下一篇將正式提出:

《多表示智能記憶:從狀態機、資料庫到拓樸與相位空間》

核心將變成:

MemoryOne Representation\boxed{ Memory \neq One\ Representation }

而是:

M={Mstate,Mvector,Mgraph,Mtemporal,Mcausal,Mtopological,Mphase,}\mathcal M = \{ M_{state}, M_{vector}, M_{graph}, M_{temporal}, M_{causal}, M_{topological}, M_{phase}, \ldots \}

真正的智能記憶系統,未來可能不是尋找「最好的資料庫」,而是:

依照問題,自行選擇或生成適合的記憶表示。\boxed{ \text{依照問題,自行選擇或生成適合的記憶表示。} }

四十七、結論

早期 Chatbot 的歷史結構是:

Conversation=MemoryConversation = Memory

後來出現:

ConversationSummaryConversation \rightarrow Summary

再後來出現:

ConversationVectorMemoryConversation \rightarrow VectorMemory ConversationKnowledgeGraphConversation \rightarrow KnowledgeGraph

但本文提出更一般的轉換:

ConversationCognitive Intermediate Representation\boxed{ Conversation \rightarrow Cognitive\ Intermediate\ Representation }

其中最低形式為:

(E,S,M,K,A)\boxed{ (E,S,M,K,A) }

Agent 不需要重新成為「當時那個 Agent」。

它只需要取得足夠結構,使:

Anew+(E,S,M,K,A)A_{new} + (E,S,M,K,A)

能恢復:

Continuation\text{Continuation}

因此本文最終主張:

長期智能的連續性, 不必依賴無限延長同一段對話; 它可以依賴可重建的狀態。\boxed{ \text{長期智能的連續性, 不必依賴無限延長同一段對話; 它可以依賴可重建的狀態。} }

並進一步:

對話是歷史發生的地方, 但記憶是歷史被重新組織後, 能讓未來繼續行動的結構。\boxed{ \text{對話是歷史發生的地方, 但記憶是歷史被重新組織後, 能讓未來繼續行動的結構。} }

如果這一點成立,那麼未來 AI Agent 的核心問題就不再只是:

How do we store conversations?\text{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?} }

這正是「對話記憶」開始轉化為「認知架構」的分界。


參考資料

  1. Martin Fowler. Event Sourcing. 2005.
  2. Yue Zhou, Xiaobo Guo, Belhassen Bayar, Srinivasan H. Sengamedu. Amory: Building Coherent Narrative-Driven Agent Memory through Agentic Reasoning. EACL 2026.
  3. Leo Wang et al. Text2Mem: A Unified Memory Operation Language for Memory Operating System. Findings of ACL 2026.
  4. Neo.K with Aletheia. 無界展開論:從潛在無限到有限計算生成框架. v0.1, 2026.