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,確認內容位置、範圍和表述都正確。每隔一段時間清理過期規則,尤其是版本號、埠、臨時路徑和已經改變的專案約定。
接下來去哪
.geminiignore
繼續看哪些檔案不該進入 Gemini CLI 上下文。
GEMINI.md
需要團隊共享的長期規則,優先寫專案上下文件案。
Terms & Privacy
涉及長期記憶和資料使用時,繼續核對隱私與服務條款邊界。