Agent 的「記憶」與人類的記憶非常相似——它並非單一的資料庫,而是由不同層次、不同存取速度與生命週期的記憶機制組合而成。
如果只看大語言模型(LLM)本身,它是完全無狀態的(Stateless),每次請求都是一次全新的預測。Agent 之所以「能記住事情」,全靠外部系統架構幫它建構的記憶體系統。
現行 Agent 架構中的記憶體通常分為 四大層次:
| 記憶類型 | 對應人類大腦 | 實現技術 / 載體 | 生命週期 | 讀寫速度 / 成本 |
|---|---|---|---|---|
| 工作記憶 (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 / 權限規則 | 系統設定檔 | 靜態載入 |
messages = [...])。每次 Agent 執行完一步,就把該步驟 append 進去,作為下一次思考的上下文。user.language = "zh-TW" 的精確事實。當使用者輸入指令時,Agent 的記憶讀寫流程如下:
[使用者輸入]
│
├── (1) 讀取程序記憶 ──> 載入 System Prompt & 工具列表
├── (2) 檢索長期記憶 ──> 從 Vector DB 撈出相關偏好/知識 (RAG)
└── (3) 載入短期記憶 ──> 帶入當前 Session 的歷史對話紀錄
│
▼
[匯入 Context Window (工作記憶)] ──> LLM 推理與決策
│
├── (4) 寫入短期記憶 ──> 將本輪 Thought & Tool Call 紀錄 append 到 List
└── (5) 寫入長期記憶 ──> 評估是否有重要資訊需抽取並存入 Vector DB / 數據庫
Agent 其實什麼都記不住(LLM 本身沒有記憶),但透過 Context Window (工作記憶) + Message List (短期記憶) + Vector/KV DB (長期記憶) 的組合,架構工程師為它打造了一個運作良好的外接大腦系統。