返回文章列表

營運與維護 · 實作指南

AI 讀到的舊狀態,可能藏在快取裏

分清業務更新時間、讀取時間與 HTTP 快取新鮮度,以可重現測試核對預約狀態。

AI 讀到的舊狀態,可能藏在快取裏

AAHouse 原創解說影片,採用 AI 輔助概念畫面、合成旁白及原創音樂。

英文逐字稿 · 簡體中文普通話逐字稿 · 台灣華語逐字稿 · 澳門粵語逐字稿

客服説“已經刷新”,為什麼還是舊狀態?

設想一家美國維修公司的客服助手:後台已把預約改為下午,助手卻仍顯示上午。這個虛構排查案例不證明某家產品有故障。先別重寫提示詞:瀏覽器、中間快取與應用自己的快取,都可能影響看到的數據。排查應先問“這份回答的數據在哪裏、何時取到”,再判斷模型是否誤讀。

客服説“已經刷新”,為什麼還是舊狀態?
客服説“已經刷新”,為什麼還是舊狀態?
  • 業務記錄已更新
  • 助手仍顯示舊副本
  • 先查數據路徑

已接受的區域說明圖重繪,並非未經修改的原始截圖。

第一張證據:業務時間,不只是頁面時間

我們建議同時顯示業務記錄的更新時間與本次讀取時間。兩者回答不同問題:記錄何時變化,應用何時取得它。RFC 9111 的 Age 欄位描述回應生成或成功驗證後的估計時長,不是業務記錄修改時間。[1] 因此,“剛打開頁面”或 Age 很小,都不能單獨證明預約仍然有效。

第一張證據:業務時間,不只是頁面時間
第一張證據:業務時間,不只是頁面時間
  • 記錄更新時間
  • 應用讀取時間
  • Age:回應年齡

已接受的區域說明圖重繪,並非未經修改的原始截圖。

第二張證據:兩個相似名字,兩個不同要求

MDN 説明,回應中的 no-cache 允許保存,但再次使用前必須向源站驗證;no-store 則要求快取不要保存回應。[2] 別把 no-cache 翻譯成“從不保存”。選哪種策略應由工程與數據負責人決定,不能讓 AI 根據名字猜。驗證也不等於每次都重新下載完整內容。

第二張證據:兩個相似名字,兩個不同要求
第二張證據:兩個相似名字,兩個不同要求
  • no-cache:複用前驗證
  • no-store:不要存儲
  • 由負責人選擇策略

已接受的區域說明圖重繪,並非未經修改的原始截圖。

第三張證據:改了回應標頭,舊副本不一定消失

MDN 提醒,快取指令不能清除中間伺服器已經存儲的回應。[2] 我們建議排查時列出瀏覽器、內容分發層與應用快取,分別核對更新或失效方式。不要把新增一個回應標頭當作歷史副本已刪除的證據,也不要為排查而無差別清空與本次問題無關的數據。

第三張證據:改了回應標頭,舊副本不一定消失
第三張證據:改了回應標頭,舊副本不一定消失
  • 瀏覽器快取
  • 中間層快取
  • 應用快取

已接受的區域說明圖重繪,並非未經修改的原始截圖。

把“技術新鮮”與“可以承諾”分開

RFC 9111 把快取新鮮度定義為回應是否仍在規定的新鮮期內。[1] 這不是業務上的實時保證。我們的建議是:可瀏覽的狀態與最終承諾分開,確認預約前按業務規則重新核對權威系統;若無法核對,就明確説尚未確認。快取設置不能替代訪問控制或操作授權。

把“技術新鮮”與“可以承諾”分開
把“技術新鮮”與“可以承諾”分開
  • 技術新鮮期
  • 業務重新核對
  • 確認後才作承諾

已接受的區域說明圖重繪,並非未經修改的原始截圖。

結束排查前,留下一個可復現的小實驗

用虛構預約測試:先讀取上午狀態,再在源系統改到下午,觀察正常訪問、刷新及應用快取失效後的結果。記錄命中哪一層、實際回應標頭和業務時間,而非只寫“刷新好了”。這是建議的測試方案,未在客户系統執行;通過條件應由團隊明確,例如確認界面不得把過期副本當作當前承諾。

結束排查前,留下一個可復現的小實驗
結束排查前,留下一個可復現的小實驗
  • 讀取:上午
  • 源系統改為下午
  • 比較路徑與時間

已接受的區域說明圖重繪,並非未經修改的原始截圖。

想把想法變成可驗證的試行?

聊聊你的工作流程

來源與延伸閱讀

編輯原則

本系列以 AI 輔助原創撰寫,並對照連結的公開來源。實作建議與假設情境屬編輯分析,並非客戶實績。來源發布日期及產品細節可能與本系列整理日期不同。