跳到主要內容

AI 103 · 模組 2

設計 Agent Memory 系統

Agent 的記憶應該如何組織,而不是什麼都記住?

開始第一節
已完成 0 / 6
同步我的進度加入梯次後,進度可跨裝置保存,講師也能看到

資訊

加入後,你已完成的模組編號會連同「學員代碼」傳送給講師,講師可以看到你的進度。請使用講師提供的代碼,不要輸入姓名、公司機密或其他個資。進度資料與該梯次的其他資料一起保存。

學習目標

  • 說明 Memory Lifecycle:Observe、Select、Store、Retrieve、Update、Forget
  • 用白話說明記憶的建立、檢索、更新、整合(Consolidation)、過期、遺忘、衝突、隱私與治理
  • 運用六個設計面向(Relevance、Recency、Reliability、Privacy、Cost、Context Budget)判斷一項記憶是否值得保留
  • 撰寫 Agent Memory Policy,說明記住什麼、保留多久、誰能存取、何時更新、何時遺忘

問題與需求

8 分鐘

什麼都記住,不是一種設計

要解決「忘記」的問題,最直覺的做法是把 Agent 看過的一切全部存起來。三個月後,這本身就變成另一個問題。

工作情境

一個課程支援 Agent 把教學團隊一學期的每一則訊息都存了下來,約 2,000 則。學生詢問作業繳交期限時,它檢索出三則筆記:原本的期限、另一位學生的展延,以及一則關於期限的玩笑。它很有把握地把三者混成一個答案。

什麼都記住

  • 雜訊擠掉真正有用的筆記
  • 舊事實與新事實並存
  • 沒有理由地保留私人細節
  • 檢索成本上升,Context Budget 縮小

經過設計的記憶

  • 只保留經挑選、有用的資訊
  • 每則記憶有來源、日期與負責人
  • 敏感資訊被排除或受到控管
  • 記憶會依規則更新、過期與遺忘

注意

錯誤、過時或未經授權的記憶,比沒有記憶更糟,因為 Agent 會很有把握地使用它。人仍然必須能夠檢視、修正與刪除 Agent 保留的內容。

重點: 好的 Agent Memory 是有組織、受治理的,不是 Agent 看過一切的堆疊。

Memory Lifecycle

9 分鐘

Memory Lifecycle

記憶不是一次「存檔」動作而已,它有自己的生命週期:被注意到、被判斷、被儲存、被使用、被修正,最後被放掉。設計 Memory,就是決定每一個階段會發生什麼事。

Memory Lifecycle
  1. Observe(觀察):在工作中注意到新資訊
  2. Select(挑選):判斷是否值得保留(Memory Creation)
  3. Store(儲存):連同來源、日期、負責人與存取規則一起寫入
  4. Retrieve(檢索):只取回這次任務需要的部分
  5. Update(更新):事實改變時修正、合併(Consolidation)或取代
  6. Forget(遺忘):不再需要或不再被允許時,令其過期或刪除
  1. Observe 與 Select
    Agent 看到的多數資訊都不該成為記憶。Select 就是套用模組 1 判斷框架的地方。
  2. Store
    沒有來源與日期的記憶,日後無法查證。要記錄它從哪裡來、何時取得、誰可以看。
  3. Retrieve
    檢索也是一種選擇。Relevance 與 Context Budget 決定哪些記憶會重新進入 Context。
  4. Update 與 Forget
    事實會改變。記憶需要能被修正、整合、過期與刪除,包括在當事人要求時刪除。
自我檢測

對話中,Agent 注意到使用者說「我下週請假」。哪一個 Lifecycle 階段決定這句話是否會成為記憶?

對話中,Agent 注意到使用者說「我下週請假」。哪一個 Lifecycle 階段決定這句話是否會成為記憶?

重點: 每個階段都要設計:Observe、Select、Store、Retrieve、Update、Forget。最常被跳過的是 Select 與 Forget。

9 分鐘

示範:一則記憶的六個階段

讓我們跟著一則模擬的記憶走完整個 Lifecycle。細節皆為示範用的模擬內容。

一則記憶隨時間的變化(示意)
階段發生什麼事設計問題
Observe週一的會議記錄寫著:「團隊同意等待供應商 B 的修正版報價。」這項新資訊與進行中的工作相關嗎?
Select保留為追蹤專案的 Task Memory。同一份記錄中的一則玩笑則被忽略。它在這次對話之外還重要嗎?
Store連同來源(週一會議)、日期、負責人(專案主持人)、存取範圍(專案團隊)與專案結束時過期的設定一起儲存。日後能被查證與控管嗎?
Retrieve下週一,Agent 因任務相符而取回它,用來整理追蹤清單。相關性足以值得花費 Context Budget 嗎?
Update供應商 B 寄來修正版報價。記憶更新為「已收到報價」,而不是繼續保留「等待中」。什麼該取代舊的狀態?
Forget專案結案。Task Memory 過期並被移除,只有最後的決定保留在專案記錄中。誰確認哪些可以刪除?

真實的記憶系統還會遇到衝突:兩則記憶彼此矛盾。這時不要讓 Agent 默默自行選一個。優先採用較新或較權威的來源,把舊的標記為已被取代,並在決定有實際後果時請人確認。

資訊

Consolidation(整合)是把許多小記憶合併成一則準確的摘要。它能減少雜亂,但摘要是衍生資料,可能帶有錯誤,所以要保留回到原始資料的路徑。
自我檢測

Agent 的記憶寫著「供應商 X 是優先廠商」。採購處較新的一封電子郵件指出供應商 X 已從核准名單中移除。最適當的處理是什麼?

Agent 的記憶寫著「供應商 X 是優先廠商」。採購處較新的一封電子郵件指出供應商 X 已從核准名單中移除。最適當的處理是什麼?

重點: 記憶會隨時間改變。要為更新、衝突、過期與遺忘做好規劃,而不只是儲存。

設計面向

8 分鐘

六個設計面向

要判斷一則候選記憶是否值得保留、是否要取回,可以用六個面向檢查。你不一定能同時讓六項都最大化,重點是讓取捨被看見。

六個設計面向
面向要問的問題決策例子
Relevance(相關性)這對未來的任務有幫助嗎?保留偏好的報告格式,略過閒聊
Recency(時效性)它還是最新的嗎?三年前的地址要設定過期或重新確認
Reliability(可靠性)它從哪裡來?值得信任嗎?來自正式記錄的資料,優先於順口一提的說法
Privacy(隱私)適合保留嗎?誰可以看?個人資料被排除或受存取控管
Cost(成本)儲存、檢索與維護要付出什麼代價?存短摘要,而不是完整逐字稿
Context Budget它能與其他內容一起放進視窗嗎?取回 3 則筆記,而不是 30 則

完成

Relevance、Recency、Reliability 決定一則記憶好不好;Privacy 決定它被不被允許;Cost 與 Context Budget 決定它值不值得使用。
自我檢測

Agent 把每一場會議的逐字稿完整存下來。每次回答問題都取回 40 頁,導致目前任務幾乎沒有空間。哪個面向是最直接的問題?

Agent 把每一場會議的逐字稿完整存下來。每次回答問題都取回 40 頁,導致目前任務幾乎沒有空間。哪個面向是最直接的問題?

重點: 用 Relevance、Recency、Reliability、Privacy、Cost 與 Context Budget 檢查每一則記憶。

實作

9 分鐘

實作:撰寫 Agent Memory Policy

Agent Memory Policy 是一份簡短、可被審閱的聲明,說明 Agent 可以記住什麼。請為一個你想使用的 Agent 撰寫一份,例如教學團隊的課程支援 Agent。請只使用模擬或一般性的資訊,不要輸入公司機密、客戶個資或其他未經授權的敏感資訊。

Agent Memory Policy(每種記憶各填一列)
問題思考方向起始範例(模擬情境)
什麼應該被記住?只記穩定、可重複使用且適合保留的內容特定課程班別已同意的作業展延
保留多久?單次對話、專案期間、學期、直到被更新到學期結束為止
誰可以存取?負責人、角色、需要知道的人課程主持人與被指派的助教
何時應該更新?什麼事件會改變它,由誰確認課程主持人公告修正後的期限時
何時應該遺忘?過期、刪除要求、目的結束學期結束時,或學生要求移除時
  • 指定一位負責人,對這份政策負責
  • 寫明 Agent 絕對不能儲存什麼
  • 寫明哪些情況下,Agent 依據記憶行動之前必須由人審核
  • 確保人可以檢視、修正與刪除已儲存的記憶
自我檢測

哪一列政策寫得最好?

哪一列政策寫得最好?

重點: Memory Policy 要回答五個問題:記什麼、多久、誰可看、何時更新、何時遺忘。

重點回顧

7 分鐘

重點回顧:Memory 是設計出來的,不是累積出來的

完成

Observe、Select、Store、Retrieve、Update、Forget:對每一種記憶,你能說明每個階段會發生什麼事,以及誰負責嗎?

模組 1:該保留什麼?

  • Context 與 Memory 的差異
  • Memory 的類型
  • 立即使用、暫時保留、長期記住、不儲存

模組 2:如何管理?

  • 從 Observe 到 Forget 的 Lifecycle
  • 六個設計面向
  • 有負責人的 Agent Memory Policy

Human–AI–Human:由人制定政策,Agent 依政策執行,再由人審核並修正已儲存的內容。你的 Agent Memory Policy 是本課程的第一份成果,之後會成為期末 Canvas 的一部分。但 Memory 不是 Agent 取得資訊的唯一來源。當資訊很大、經常變動或屬於別人時,Agent 應該去查詢,而不是記住。這就是下一個模組。

重點: 把 Memory 視為需要在整個 Lifecycle 中設計、治理與審核的東西。

接下來做什麼?