LLMs 是無狀態的。這對 Agent 記憶實際上意味著什麼。
有句話大多數 AI agent 教學都會跳過,而它解釋了
為什麼建置可靠的長期運行 agent 如此困難:
在 API 呼叫之間,模型什麼都不知道。
你見過的每一個「記憶功能」——ChatGPT 的記憶、Claude 的 Projects、
LangMem、Mem0——都是人類撰寫的系統,負責準備文字並在呼叫模型前注入到
上下文視窗中。模型本身沒有持久狀態。
人們忽略的意涵
如果 LLM 是無狀態的,那麼長期運行 agent 的智慧完全
存在於管理注入與丟棄內容的 harness 中。
這不是限制,而是設計原則。
研究社群已開始明確如此對待它:
MemGPT (2023) 提出了「LLM 即 OS」的類比:模型是 CPU,
外部記憶體是磁碟,而 harness 管理查詢時哪些頁面在 RAM 中。StateFlow (2024) 更進一步:agent 是有限狀態機。
LLM 只在狀態轉換時被呼叫,不負責狀態本身。ClawVM (2026) 將此形式化為虛擬記憶層:harness 在每個生命週期邊界
強制執行確定性且經驗證的寫回。
LLM 輸出原始思考;harness 決定要提交什麼。
記憶設計的後果
如果 LLM 純粹是一個處理單元,那麼 agent 記憶的品質
完全取決於你的harness——決定要儲存哪些事實、它們的有效期限,以及
何時應被取代的系統。
儲存平面嵌入並依相似度檢索的 harness 會給你一個
平庸的 agent。儲存時序斷言並以確定性解決衝突的 harness 則會給你一個可靠的 agent。
「時序斷言」在實務上的意義
時序斷言是帶有存續期的事實:
subject: user_project
predicate: uses_language
object: Python
valid_from: 2025-01-10
valid_to: 2025-06-15 ← closed when user switched to TypeScript
進入全螢幕模式 離開全螢幕模式
harness 儲存此斷言,而非 LLM。LLM 不再看到舊的事實
一旦 valid_to 被設定。活動狀態為 WHERE valid_to IS NULL。
這是 Smriti 背後的模型——一個開源的
時序記憶引擎,正是為了成為無狀態 LLM 的可靠 harness 而建置。
LLM 不是 agent。harness 才是 agent。把 harness 做好。
MIT 授權。PostgreSQL 支援。開源。
0 Comments
Log in to join the conversation.No comments yet. Be the first to share your thoughts.