AI 程式設計教學中文版
官方教學中文版上下文與設定

Memory management

Gemini CLI memory management、auto memory、/memory reload 的用途,以及記憶、上下文件案和臨時 prompt 的邊界。

📖 本篇術語速查表
英文 / 縮寫中文一句話解釋
Memory記憶跨會話保留的專案資訊。
載入load記憶如何被讀取注入。
清理cleanup誤記 / 過時記憶的清理。

不想讀完?把下面這段提示詞丟給 AI 幫你跑完——幫你配好 Gemini CLI 的記憶,既省事又不留隱私和誤記風險。

你是 Gemini CLI 記憶管理顧問。

【角色】
Gemini CLI 記憶管理顧問,按最小夠用、安全優先的原則給可落地方案,每條結論都落到能照做的步驟或示例,不停留在空泛建議。

【輸入】
- 想讓它記住什麼(偏好 / 約定 / 流程):___
- 哪些不能被記住(敏感 / 臨時):___
- 個人用還是多專案 / 多人:___
- 對隱私的顧慮:___
- 現有記憶是否有問題:___

【工作流程】
1. 判斷哪些該記、哪些不該記
2. 給啟用和載入方式
3. 說明怎麼清理和控制記憶
4. 處理記憶與 GEMINI.md 的分工
5. 給誤記的清理和防範

【輸出規範】
▌一、該記 / 不該記清單
▌二、啟用與載入
▌三、清理與控制
▌四、誤記防範

【硬約束】
- 敏感資訊不進記憶,臨時資訊及時清
- 長期規則優先進 GEMINI.md
- 多專案 / 多人注意記憶隔離
- 不要替我臆測情況或編造不存在的設定項,資訊不全先問清
- 不確定的設定或欄位一律以官方文件為準,禁止照搬過時寫法

Memory management 解決的是“Gemini CLI 該長期記住什麼”。它和 GEMINI.md 一起決定 agent 下次是否還會遵守你的專案習慣。

記憶不是垃圾桶:只沉澱穩定事實和長期偏好,不要把每次任務過程都寫進去。

常見操作

/memory show
/memory refresh
/memory list
/memory add <fact>

修改 GEMINI.md 或相關上下文件案後,用 /memory refresh 讓目前會話重新載入。/memory list 用來確認目前發現了哪些 memory 檔案,/memory add 會把一條事實追加到全域 memory。

/memory show 用來檢視目前拼接後的上下文,包括全域、專案、子目錄 GEMINI.md 和儲存的 memory。排查“為什麼它不遵守規則”時,先看這裡。

適合記住什麼

  • 專案長期規則。
  • 常用驗證命令。
  • 穩定的目錄職責。
  • 反覆出現的業務約定。
  • 使用者明確長期偏好。

不適合記住什麼

  • 一次性報錯。
  • 還沒驗證的猜測。
  • 臨時路徑。
  • 敏感資訊。
  • 已經完成的過程記錄。

使用建議

長期規則優先寫入檔案;memory 只保留真正跨任務複用的事實。能寫成明確規則的,就不要只靠模型“記得”。

save_memory 邊界

Gemini CLI 的 save_memory 工具會把事實追加到全域 ~/.gemini/GEMINI.md## Gemini Added Memories 區域。它適合儲存自我偏好、長期專案事實和穩定設定,但不適合儲存金鑰、客戶資料、一次性 debug 過程。

如果某條事實只對目前儲存庫有效,優先寫專案 GEMINI.md;如果只對某個子目錄有效,寫子目錄規則;如果跨所有專案都成立,才考慮全域 memory。

資訊型別推薦落點原因
專案目錄職責專案或子目錄 GEMINI.md和儲存庫結構繫結
個人長期偏好全域 memory跨專案複用
驗證命令專案 GEMINI.md團隊成員也需要一致
一次性錯誤現場目前 session任務結束就過期
金鑰、賬號、客戶資料不寫入 memory敏感且不應進入模型長期上下文

記憶寫錯比 prompt 寫錯更麻煩,因為它會在之後很多工裡持續影響判斷。能寫成可審查檔案的長期規則,優先寫檔案;只有跨專案、長期穩定、不會洩密的偏好,才適合全域 memory。

Auto Memory

官方還提供 experimental Auto Memory,用來從歷史會話中提取 memory patch 和 skill。它適合願意人工稽核長期記憶變化的人,不適合預設全自動寫入。記憶一旦失控,會比一次錯誤 prompt 更難排查。

官方命令邊界

Gemini CLI 官方命令把 memory 分成兩層:上下文件案和可追加的長期事實。/memory show 解決“目前會話到底讀到了什麼”,/memory refresh 解決“檔案改完目前會話還沒生效”,save_memory 解決“把一條長期事實寫入全域 ~/.gemini/GEMINI.md”。

這三件事不能混用:

  • 只想臨時提醒目前任務,用普通 prompt。
  • 想讓儲存庫所有成員都遵守,寫專案 GEMINI.md
  • 想讓自己跨專案長期保留,才寫全域 memory。
  • 想排查上下文錯亂,先 /memory show,不要繼續追加新 memory。

save_memory 追加的是事實,不是聊天記錄。好的 memory 應該短、穩定、可驗證;例如“這個儲存庫的測試命令是 pnpm test”比“上次我們排查過構建問題”更可用。

記憶維護

建議把 memory 當成需要審查的設定,而不是聊天附屬品:

  • 新增後立刻用 /memory show 看最終拼接效果。
  • 過時的版本號、路徑、埠、模型名要刪掉或更新。
  • 含“總是”“永遠”“不要”的規則要謹慎,避免壓過專案級指令。
  • 從 Auto Memory 產生的 patch 必須人工讀過再接受。

如果發現 Gemini CLI 反覆遵守一條已經過期的做法,先查 /memory show,再查全域和專案 GEMINI.md。不要只在目前 prompt 裡反覆糾正,否則下次還會復發。

驗收方式

新增 memory 後執行 /memory show,確認內容位置、範圍和表述都正確。每隔一段時間清理過期規則,尤其是版本號、埠、臨時路徑和已經改變的專案約定。

接下來去哪

官方來源

本頁目錄