iT邦幫忙

2026 iThome 鐵人賽

DAY 14
0
自我挑戰組

AI Agent 從零開始系列 第 14 篇

Memory——為什麼 Conversation History 不等於 Memory?

  • 分享至 

  • xImage
  •  

在開發 Agent 時,最常見的誤區之一就是把 Conversation History(對話歷史) 當作 Memory(記憶)。

簡而言之:

Conversation History 只是「未經整理的原始日誌(Raw Logs)」,而 Memory 是「經由抽取、結構化與索引後,具備檢索與行動價值的知識體系(Knowledge System)。」

如果把 Agent 比喻成一個人,Conversation History 就像是會議錄音檔,而 Memory 則是你腦海中消化後的重點、經驗法則與對與會者的認識。


1. 核心維度對比

維度 Conversation History (對話歷史) Agent Memory (代理人記憶)
資料形態 純文字序列(List[Message]),按時間線性堆疊 結構化數據(Key-Value)、語意向量(Embeddings)、圖譜(Knowledge Graph)
處理狀態 Unprocessed(未加工),包含大量的閒聊、廢話與中途嘗試 Processed(已加工),經過提煉、去重、歸納與語意摘要
生命週期 隨 Context Window 爆滿而被裁切,或隨 Session 結束而消失 Cross-Session(跨會話),長期存續並隨經驗持續迭代
檢索方式 全量被動載入(Pass-Through) 精準主動檢索(Vector Search, Graph Traversal, SQL Query)
主要目的 維持單次對話的「上下文連貫性」 累積「個體偏好」、「領域經驗」與「執行策略」

2. 為什麼「僅靠 Conversation History」無法當作真正的 Memory?

① 雜訊過多,極易造成「上下文污染」(Noise & Context Contamination)

對話歷史中充斥著無關緊要的問候、中間失敗的 Tool Call 錯誤訊息、使用者改口修正的過程。
如果直接把這些原始 Log 全部塞給 LLM:

  • Token 浪費:為了讓 Agent 記住「使用者偏好 Python」,卻被迫帶上過去 50 輪無關的除錯對話。
  • 推理干擾(Lost in the Middle):模型在面對過長的原始歷史時,專注力會分散,甚至被舊的錯誤嘗試(Observations)誤導。

② 缺乏「跨會話(Cross-Session)」的持久化能力

當使用者關閉視窗,或者開了一個全新的 Chat Session,Conversation History 就歸零了。

  • 無 Memory 的 Agent:每一次開新對話,都要重新問你「請問你習慣用什麼程式語言?」。
  • 具備 Memory 的 Agent:開新對話時,歷史紀錄是空的,但它會自動從長期記憶庫(如 Key-Value 或 Vector DB)載入 user_preference: { language: "Python", style: "Type Hints" }。

③ 無法進行「高階抽象與反思」(Reflection & Synthesis)

Conversation History 只能記載「發生了什麼(What happened)」,無法記載「這意味著什麼(What it means)」。

  • 歷史紀錄記載:「使用者在 9:00 點了咖啡」、「9:30 點了咖啡」、「10:00 又點了咖啡」。
  • 提煉出的 Memory:「使用者今天嚴重睡眠不足,且有高度咖啡因依賴。」(這需要一個額外的 Reflection Step 來產生)。

3. 從 History 到 Memory:如何構建真正的 Agent Memory System?

要將單純的「對話歷史」升級為「Agent 記憶體」,通常需要在後端加入 Memory Management Pipeline(記憶管理管線):

[ Conversation History (Raw Logs) ]
                │
                ▼
  ┌───────────────────────────┐
  │  1. Summarization (壓縮)  │ ──> 提取對話大綱,剔除廢話
  │  2. Extraction (實體抽取) │ ──> 提取 Key-Value (如: user.name = "Alice")
  │  3. Reflection (自我反思) │ ──> 總結失敗經驗,形成策略規則
  └───────────────────────────┘
                │
                ▼
 [ Long-Term Memory Storage ] (Vector DB / Knowledge Graph / SQL)

具體實現手段:

  1. 語意抽取 (Entity & Profile Extraction):
    每次對話結束時,背景觸發一個非同步 Task,分析歷史對話,抽出實體事實:
    {"favorite_framework": "FastAPI", "timezone": "UTC+8"},存入資料庫。
  2. 情節記憶與經驗庫 (Episodic Memory):
    當 Agent 成功解決了一個複雜 Bug,系統將「問題描述 + 最終成功的步驟鏈」轉為 Embedding 存入向量庫。下一次遇到類似問題時,Agent 可以去搜尋「我以前是怎麼搞定這個問題的」。
  3. 語意圖譜 (Knowledge Graph):
    將對話中出現的人、事、時、地、物建立關聯網(如 Alice --[works_on]--> Project X),讓 Agent 具備推理隱性關係的能力。

總結

  • Conversation History 是 Agent 的 「短期視圖(View)」——它讓 Agent 知道「我們剛才聊到哪了」。
  • Memory 是 Agent 的 「知識資產(Asset)」——它讓 Agent 隨著時間的推移,變得越來越了解你、越來越聰明、越來越像一個資深的數位員工。

上一篇
Agent State——Agent 到底記得什麼?
下一篇
Context Window——Agent 為什麼會「失憶」?
系列文
AI Agent 從零開始 共 18 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言