生活分享

GEMINI.md 進階:範圍、匯入與 /memory

同時使用多個專案時,GEMINI.md 不一定只有一份。Gemini CLI 可以從全域設定、工作目錄與相關子目錄取得指示,並合併成模型看到的上下文。本篇教你追查實際載入了哪些檔案、匯入共用規則,以及用可重現的測試確認更新是否生效。

更新日期: 閱讀時間約 5 分鐘

記憶載入的三個範圍的原創插畫,以文件、裝置與流程等物件呼應範圍、匯入與 /memory;非產品介面。
圖片:Mokaair (© Mokaair)
本篇目錄
  1. 開始前:建立兩個可辨識範圍
  2. 先理解:合併指示不等於設定覆寫
  3. 實作:列出、檢視與重新載入
  4. 進階:匯入共用規則
  5. 常見問題與記憶邊界
  6. 完成後的檢核

同時使用多個專案時,GEMINI.md 不一定只有一份。Gemini CLI 可以從全域設定、工作目錄與相關子目錄取得指示,並合併成模型看到的上下文。本篇教你追查實際載入了哪些檔案、匯入共用規則,以及用可重現的測試確認更新是否生效。

全域:個人的共通偏好;專案與匯入:本次專案工作規則;子目錄:隨工具路徑載入
記憶載入的三個範圍。此為原創教學圖解,並非產品畫面或實測輸出。 · 圖片:Mokaair (© Mokaair)

開始前:建立兩個可辨識範圍

先完成。準備一個練習專案,內有 GEMINI.md 與 docs 子目錄;再瞭解使用者家目錄中的 .gemini 資料夾位置。Windows 與 macOS 的完整路徑不同,檔案中的波浪號代表你的使用者家目錄,不是要建立一個真的叫波浪號的資料夾。

全域規則適合放普遍偏好,例如回答語言。專案規則適合放這份工作的目的與測試方法;子目錄規則則用來描述特定元件或資料。不要把某個客戶的規範放成所有專案共用規則,也不要把會經常變動的版本資訊複製到多份檔案,否則很容易互相矛盾。

先理解:合併指示不等於設定覆寫

官方文件描述的是階層式上下文:CLI 會找出相關檔案並將內容提供給模型。這和 JSON 設定中某個鍵被另一層覆寫並不相同。若全域說「一律英文」、專案又說「一律繁體中文」,你不應只猜最後一份會勝出;應主動整理規則,讓兩者描述不同範圍。

部分子目錄內容採存取時探索,也就是工具接觸檔案時才發現更具體的指示。因此剛啟動時沒有列出某個深層檔案,不一定代表它永遠不會生效。先分辨啟動載入與後續探索,再檢視實際路徑與內容。遇到行為差異時,把版本、啟動位置及載入清單一起記錄。

實作:列出、檢視與重新載入

  1. 在專案 GEMINI.md 寫入容易辨識的句子,例如「這是公告整理練習;輸出前核對來源檔名」。
  2. 從專案根目錄啟動 CLI,輸入 /memory list,確認列出的路徑屬於預期專案。
  3. 輸入 /memory show,搜尋剛加入的句子;只看 CLI 說「我記住了」不能取代這項檢查。
  4. 修改同一句話,加上「缺少日期時明確標示未提供」,儲存後執行 /memory refresh。
  5. 再次執行 show,確認新句子出現、舊句子沒有重複,最後用一份缺少日期的短公告測試。
Gemini CLI 內輸入 · text
/memory list
/memory show
/memory refresh

以上是三個依序執行的 CLI 指令,不是一整段自然語言提示詞。show 可能顯示你自己的完整專案規則,若要把結果貼到問題回報或團隊對話,先去除私人路徑、客戶名稱與不需分享的內容。教學檢查只需保留辨識句與檔案層級即可。

進階:匯入共用規則

把穩定的寫作規則放到 docs/writing-rules.md,再由 GEMINI.md 引用它。以下範例的相對路徑是依引用檔案的位置解讀;移動檔案後應重新確認。不要建立互相迴圈引用,也不要把整個大量資料目錄當作規則一次載入。

GEMINI.md · markdown
# 公告整理專案

輸出需指出公告來源檔名。

@./docs/writing-rules.md

匯入後執行 refresh,再用 show 檢查共用規則內容是否確實出現。接著把共用檔案的一句話修改,重做驗證;這能檢查路徑與更新流程,而不是只測模型是否剛好記得之前對話。若工具設定改過 context.fileName,應先到確認目前識別哪些檔名。

常見問題與記憶邊界

本篇另以 Windows、Node.js 24.13.0 與已安裝的 Gemini CLI 0.59.0 記憶載入程式完成隔離測試:全域與專案規則可載入,相對匯入會展開,子目錄規則在存取時載入,修改後重新載入會清除舊匯入。測試直接執行 CLI 的記憶管理程式,未呼叫模型,也不等同完整互動介面的實測;讀者仍應依上面步驟核對自己的工作階段。

在這個版本中,/memory reload 是重新載入的正式名稱,/memory refresh 保留為別名,兩者呼叫相同的重新載入操作。若你看到官方不同頁面使用不同名稱,可以先查目前 CLI 的說明與版本,不必建立兩套不同的記憶設定。

為了確認兩個專案不會互相汙染,可以在第二個練習專案寫另一句辨識文字,再從各自根目錄開啟新的 CLI 工作階段。各自儲存 list 的路徑與 show 的相關段落,確認只出現應適用的專案內容。全域偏好可能同時出現,這是你有意設定的共用範圍;第一個專案限定的規則則不應無理由出現在第二個專案。

完成範圍測試後,移除純粹用來辨識的測試句,保留真正有用的指示。規則檔案若有版本控制,可將一次整理視為一個小變更,讓同事能看見新增、刪除與搬移的原因。不要用載入檔案數量判斷品質:較少而清楚的規則,往往更容易維護與核對。

「跨專案出現不相關規則」通常要先看家目錄及祖先目錄的檔案。不要直接刪除全部全域設定;先找出是哪份檔案提供那句指示,將專案限定內容移回正確範圍,再重新啟動或重新載入測試。

「清除對話後規則還在」是因為對話歷史與檔案上下文是不同資料。/clear 不是刪除 GEMINI.md,也不是停用全域規則。需要整理對話時參考;需要移除固定指示時,修改來源檔案並重新載入。

「新增子目錄規則卻沒有變化」先確認工具是否真的存取該目錄,以及它是否在可信任的工作範圍內。你可以要求工具閱讀那個資料夾的一個公開測試檔,再檢視載入狀況。若仍不同,保留最小資料夾結構與版本資訊,依建立可重現案例,而不是混入更多新規則。

完成後的檢核

完成實作後逐項確認。
檢查項目通過條件
操作能依正文重做一次,說明每一步使用的輸入。
結果能用原始資料或可重現測試核對輸出,而非只看語氣。
延伸知道下一篇教學解決的問題,以及什麼時候需要它。

接著可以閱讀 、,把本篇的操作接到下一個工作流程。

  • 生活分享

    完整實作:文件摘要與資料擷取工具

    這篇把前面學過的提示詞、API 呼叫與 JSON 驗證串成一個可執行的檔案工具。輸入一份 UTF-8 活動公告,程式產生摘要、五個固定欄位、原文引用與待確認問題,再存成待審 JSON。你會練習把模型當作資料處理的一個步驟,讓驗證與儲存仍由程式明確控制。

  • 生活分享

    API 額度與錯誤:費用、重試與成本控制

    Gemini API 的費用取決於模型、輸入輸出、服務模式及使用的工具;速率限制則決定你的專案在一段時間內能送出多少工作。本篇教你找到真正對應的用量頁面、估算一次檔案處理成本、分類錯誤,並設計有限重試與停止條件,避免把每個失敗都當成多按一次就能解決。

  • 生活分享

    API 檔案與 JSON:結構化輸出及驗證

    Gemini API 可以讀取 PDF,再把結果整理成指定的 JSON 結構。本篇用虛構活動公告示範檔案輸入、欄位設計與本地驗證。學完後,你會知道「收到合法 JSON」與「內容確實來自檔案」是兩件需要分別檢查的事,並能保留缺漏資訊而不讓模型自行補齊。

  • 生活分享

    AI Studio 與第一個 Gemini API 呼叫

    Google AI Studio 是試用模型與建立 Gemini API 金鑰的開發入口。本篇從一個簡單提示詞開始,帶你建立獨立專案環境,分別用 Python 與 JavaScript 呼叫 API。完成後,你會知道網頁試跑、程式執行與帳號用量各自在哪裡確認,不再把消費者版 Gemini 的操作直接套程式式。

最新旅遊情報攻略

資料來源

生活分享