iT邦幫忙

2026 iThome 鐵人賽

DAY 13
0
自我挑戰組

AI Agent 從零開始系列 第 13 篇

Agent State——Agent 到底記得什麼?

  • 分享至 

  • xImage
  •  

Agent 的「記憶」與人類的記憶非常相似——它並非單一的資料庫,而是由不同層次、不同存取速度與生命週期的記憶機制組合而成。

如果只看大語言模型(LLM)本身,它是完全無狀態的(Stateless),每次請求都是一次全新的預測。Agent 之所以「能記住事情」,全靠外部系統架構幫它建構的記憶體系統。

現行 Agent 架構中的記憶體通常分為 四大層次:


1. 記憶架構全景圖

記憶類型 對應人類大腦 實現技術 / 載體 生命週期 讀寫速度 / 成本
工作記憶 (Working Memory) 專注力與當前思考 Context Window(Prompt 內容) 單次請求( Request ) 極快 / 成本最高
短期記憶 (Short-Term Memory) 對話歷程與執行軌跡 Message History List (Session State) 單次 Task / 對話 Session 快 / 隨對話增長
長期記憶 (Long-Term Memory) 經驗、知識與個人偏好 向量資料庫 (RAG) / Key-Value 庫 永久存續 (Cross-Session) 較慢 / 需檢索 (Retrieval)
程序記憶 (Procedural Memory) 肌肉記憶與技能 System Prompt / Tool Schema / 權限規則 系統設定檔 靜態載入

2. 四大記憶層次深入解析

① 工作記憶(Working Memory)

  • 記得什麼:Agent 當前這一秒正在處理的資訊、剛獲得的工具回傳結果(Observation)、目前的推理邏輯(Thought)。
  • 運作機制:直接佔用 LLM 的 Context Window。這是 Agent 唯一能「100% 直覺理解與精準推論」的區域。
  • 物理限制:受限於模型的 Context Window 上限(如 128k/1M tokens)。超過此長度,早期資訊就會被裁切或遺忘。

② 短期記憶(Short-Term Memory)

  • 記得什麼:從任務開始到現在的所有互動軌跡(User Inputs $\rightarrow$ Thoughts $\rightarrow$ Tool Calls $\rightarrow$ Tool Observations)。
  • 運作機制:系統在後端維護一個 List/Array(例如 messages = [...])。每次 Agent 執行完一步,就把該步驟 append 進去,作為下一次思考的上下文。
  • 管理策略(如何防止爆開):
  • 滑動視窗(Sliding Window):只保留最近 $N$ 輪的對話。
  • 摘要壓縮(Summarization):當訊息過長時,觸發一個小模型將舊的歷史紀錄壓縮成一段精簡的「過往進度摘要」。

③ 長期記憶(Long-Term Memory)

  • 記得什麼:跨 Session 的使用者個人偏好(例如:「使用者喜歡用 Python 開發」)、過去處理類似任務的成功經驗、外部知識庫。
  • 運作機制:
  • 語意記憶(Semantic Memory):利用向量資料庫(Vector DB)。Agent 將重要資訊轉為 Embedding 儲存,當未來遇到相關問題時,透過 RAG(檢索增強生成) 動態拉回工作記憶中。
  • 情節記憶(Episodic Memory):記錄「過去做過什麼事的日誌」。當 Agent 再次遇到類似問題,可以檢索過往的執行軌跡(Trajectories)來借鏡。
  • 結構化記憶(User Profile / Entity Graph):使用 Key-Value 庫或圖資料庫(Knowledge Graph),儲存如 user.language = "zh-TW" 的精確事實。

④ 程序記憶(Procedural Memory)

  • 記得什麼:Agent 「怎麼做事情」 的規則與技能。
  • 運作機制:寫死在 System Prompt、Tool Definition(JSON Schema) 或程式碼工作流(SOP)中。它決定了 Agent 的角色設定、安全邊界與工具的使用方法。這類記憶通常在模型訓練完成或系統初始化時就已固化。

3. Agent 是如何讀取與寫入記憶的?

當使用者輸入指令時,Agent 的記憶讀寫流程如下:

[使用者輸入]
   │
   ├── (1) 讀取程序記憶 ──> 載入 System Prompt & 工具列表
   ├── (2) 檢索長期記憶 ──> 從 Vector DB 撈出相關偏好/知識 (RAG)
   └── (3) 載入短期記憶 ──> 帶入當前 Session 的歷史對話紀錄
   │
   ▼
[匯入 Context Window (工作記憶)] ──> LLM 推理與決策
   │
   ├── (4) 寫入短期記憶 ──> 將本輪 Thought & Tool Call 紀錄 append 到 List
   └── (5) 寫入長期記憶 ──> 評估是否有重要資訊需抽取並存入 Vector DB / 數據庫


4. 記憶機制的致命瓶頸與現代解法

  1. Lost in the Middle(中間遺忘):當 Context Window 太長時,LLM 容易忽略放在中間的記憶資訊。
  • 解法:將關鍵約束(System Rules)固定放在 Prompt 的最開頭與最結尾。
  1. 幻覺與記憶污染(Memory Poisoning):如果 Agent 寫入長期記憶的內容本身是錯的,它會在未來的任務中重複出錯。
  • 解法:引入記憶審查機制(Memory Refinement),只有經由 Human Feedback 確認過,或經過 Reflection 驗證正確的經驗,才允許寫入長期資料庫。

總結

Agent 其實什麼都記不住(LLM 本身沒有記憶),但透過 Context Window (工作記憶) + Message List (短期記憶) + Vector/KV DB (長期記憶) 的組合,架構工程師為它打造了一個運作良好的外接大腦系統。


上一篇
Agent Loop——Agent 為什麼會一直工作?
下一篇
Memory——為什麼 Conversation History 不等於 Memory?
系列文
AI Agent 從零開始 共 18 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言