iT邦幫忙

2026 iThome 鐵人賽

DAY 20
0
Claude AI

用 AI Agent 重構一套無框架的 legacy PHP 系統系列 第 20

Day 20:記憶會過期——怎麼避免 AI 依賴已經失效的舊資訊

  • 分享至 

  • xImage
  •  

前言:AI 說「我記得」,是好事還是壞事?

「AI 有長期記憶,不用每次都重新解釋專案背景,這樣效率不是更高嗎?」

效率確實更高——直到那份記憶跟現實脫節的那一刻。昨天講的是「一次被糾正的教訓,怎麼變成往後都會遵守的規則」,今天要講一個更麻煩的橫切問題:不管是哪一種記憶類型,只要時間夠久,都可能悄悄過期。而 AI 讀到一條記憶時,沒有自帶「這還新鮮嗎」的判斷力,除非有人明確要求它去查。

這正好是 Day 01 那句主題句的另一種變形——不是查證範圍不夠,而是查證的時間點太舊,兩者都是同一個根本問題:AI 自信的範圍(不管是空間範圍還是時間範圍),跟它實際查證過的範圍不一致。

今日目標

  • 理解「記憶會過期」跟「記憶內容錯誤」是兩種不同的問題,前者更難察覺
  • 看兩個具體案例:進度追蹤清單的過期、以及「已經有人在動」這種狀態性記憶的過期
  • 建立「引用具體 claim 前先驗證」這個習慣的判斷邏輯
  • 為明天「多 Agent 協作」的主題打底——因為驗證記憶是否還新鮮,往往也是一個適合委派的獨立任務

案例一:進度追蹤清單,是最容易過期的記憶類型

有一份記憶追蹤著一項橫跨數十個項目的長期遷移計畫進度——哪些已經完成、哪些還沒開始、哪些查過但發現條件不滿足。這種記憶天生就會過期,因為它記錄的是「某個時間點的狀態」,而狀態本身會一直變。

這份記憶裡後來多次出現同一句自我提醒:「這份清單已過時,選下一項之前先跑指令確認真正現況,不要只看這份文件。」這句提醒本身就是一個很誠實的信號——記憶的作者已經意識到,單純把「上次查到的結果」寫下來是不夠的,還必須明確標注「這個結論的保鮮期有多長」。

案例二:「已經有人在動了」,一句話可能過期得比想像中快

另一種常見的記憶樣貌是狀態性提醒,例如「這條線已經有人在處理了,不要重複造輪子」。這種提醒立意良好,但如果 AI 讀到這句話就直接停手、什麼都不查,反而可能造成新的問題——因為「已經有人在動」跟「現在做到哪裡了」是兩件事,前者可能還成立,後者八成早就變了。

正確的用法不是「看到這句提醒就完全放棄查證」,而是把它當成「先去看那條線目前做到哪裡,而不是照單全收記憶裡的舊狀態」的提示——記憶負責告訴你該往哪裡查,不負責替你把查證這個動作省略掉。

用一組對照來看這個差異:

❌ 直接引用記憶裡的舊 claim:
AI:「根據之前的記錄,這項工作已經有人在處理,
     這裡的進度是 30%,我先跳過這部分。」
→ 這個「30%」可能是三個月前的數字,沒人知道現在是多少

✅ 引用前先驗證現況:
AI:「記憶顯示這項工作之前有人在處理,進度記錄是 30%(記錄時間:X);
     實際查詢後發現目前已經到 70%,且處理方式跟原本記錄的不同,
     以下依據目前的實際狀態繼續。」
→ 記憶只負責指路,實際結論一律以當下查證的結果為準

記憶的價值在於「告訴你該往哪裡看」,而不是「替你把往哪裡看這件事省略掉」。 一旦把記憶當成不需要驗證的既定事實,它就從一個省時間的工具,變成一個讓你自信地走向錯誤結論的陷阱——跟 Day 01 那個「查證範圍不夠就下結論」的案例,本質上是同一種錯誤,只是這次錯的是時間軸而不是空間範圍。

怎麼判斷一條記憶「保鮮期」有多長

不是所有記憶都一樣容易過期。大致上可以分三層:

  • 原理/規則類記憶(例如「容器單例不能在建構子快取 Request」):技術原理本身不太會過期,除非架構整個換掉。
  • 偏好/習慣類記憶(例如使用者不喜歡冗餘註解):相對穩定,除非使用者明確改變偏好。
  • 進度/狀態類記憶(例如某項工作做到哪裡、某個判斷是否還成立):保鮮期最短,幾乎每次要引用都該先驗證,尤其是牽涉到具體檔案路徑、函式名稱、完成度百分比這類會隨時間變動的具體 claim。

引用具體 claim(檔案路徑、函式名稱、完成度數字)之前,先驗證這個東西現在還存在、還是原本記錄的樣子——不能「記憶說有就當作有」。 這條規則的重點不是不信任記憶系統,而是把記憶系統的角色從「答案來源」調整成「查證起點」。

今日思考題

回想你上一次讀取一份舊筆記、舊文件、或 AI 的長期記憶時,你有沒有先看過它的「記錄時間」?如果那份記錄已經是好幾個月前寫的,你還會直接把裡面的具體數字當成現在的事實嗎?

今日重點回顧

  • 記憶會過期是所有類型記憶的共同風險,不只是進度追蹤這一種
  • 案例一:進度清單本身就要求「引用前先跑指令確認現況」的自我提醒
  • 案例二:「已經有人在動」這類狀態性提醒,要拿來當查證起點,不是拿來當停手的理由
  • 判斷保鮮期:原理類記憶穩定、偏好類記憶中等、進度/狀態類記憶保鮮期最短
  • 記憶的角色是「查證起點」,不是「答案來源」——跟 Day 01 主題句是同一個根本問題的不同樣貌

明日預告

明天要接續這個脈絡往下走:當一項工作需要驗證的東西夠多、夠獨立時,什麼情況下該把它切出去交給一個獨立的 agent 處理,而不是自己一路查到底——這是「多 Agent 協作」這個主題的第一篇。


上一篇
Day 19:從「被使用者糾正」到「記住規則」——feedback 記憶怎麼運作
下一篇
Day 21:多 Agent 協作——什麼情況該讓子任務跑在獨立 agent
系列文
用 AI Agent 重構一套無框架的 legacy PHP 系統21
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言