部落格

如何在單一專案中關閉 Claude Code 自動記憶

Markdown

在單一專案中,透過在 .claude/settings.json 加入 autoMemoryEnabled: false 這一行,即可關閉 Claude Code 自動記憶。這比 /memory 好在哪裡?又該如何整理筆記?

閱讀全文

若只要在一個專案中關閉 Claude Code 自動記憶,請在該專案的 .claude/settings.json 檔案中加入 "autoMemoryEnabled": false。/memory 指令中的切換開關不適合這種情況:它會將設定寫入全域檔案,並關閉電腦上所有專案的記憶功能。

代理很快就可能被不需要的資訊塞滿。在這裡描述的案例中,Hermes 花了 2 小時思考一項任務。當被問到「你用了多少個 token?」時,它回答:「粗略估計是 1 億個。」你解決任務了嗎?「沒有,我做了研究。」它接著逐一查看所有檔案,結果越來越混亂。

因此,代理的記憶中只應放入最有價值的資訊。而在這裡的評估中,Claude Code 自動記憶功能相當薄弱:內容非常少,而且壓縮得很厲害。如果你希望 Claude 只依照你的規則工作,只要在專案設定中加入 1 行就夠了。

接下來看看自動記憶與 CLAUDE.md 有何不同、如何關閉,以及如何處理舊筆記。開始吧。

Ailoot 參考文件:ailoot.ai/docs/。

重點整理

開啟專案的 .claude/settings.json 檔案,並加入 "autoMemoryEnabled": false。如果其他人也會使用這個專案,而你只想替自己關閉記憶功能,請將相同的鍵值放入 .claude/settings.local.json。此鍵值只適用於這個專案;其他專案的記憶功能仍會正常運作。/memory 中的切換開關會將鍵值寫入 ~/.claude/settings.json,並關閉所有專案的記憶功能。停用記憶後,舊筆記仍會留在磁碟上。你可以透過 /memory 開啟並手動整理。

自動記憶和 CLAUDE.md 有何不同?

CLAUDE.md 是主要的指示檔案,由你親自撰寫。每次開始新對話時,Claude 實際上都在問:「這裡有什麼?我是誰?我該做什麼?」當所有事情都寫在 CLAUDE.md 中時,它就會說:「好,我是專家。明白了。」

自動記憶則由 Claude 自行撰寫。你告訴它:「記住,請一律用我偏好的語言回覆」,或「不要將值寫死;一律從資料庫取得」,它就會在記憶資料夾中寫入一個類似「別再那樣做」的檔案。之後的工作階段中,它會想起這些內容。

當然,也不總是如此。代理還是會忘記事情,所以你得盯著它們:「喂,老兄,你又忘了。我們之前已經說過這件事了。」它會回答:「喔,對,我記得了;我在檔案這裡找到了。」因此,我們通常會把所有重要內容都寫在 CLAUDE.md,而不仰賴記憶。

另一篇文章詳細說明哪些規則應該放進 CLAUDE.md;另一篇文章則介紹 Claude 聊天中的 Memory 與 CLAUDE.md 有何不同。

如果你使用 AI 代理建構專案,請將所用工具的文件放在手邊。

Claude 自行撰寫的內容

Claude Code 會儲存 4 種筆記:

  • user — 你的角色、經驗,以及偏好的工作方式;
  • feedback — 你提出的修正,以及你確認過的做法;
  • project — 目前的工作、期限,以及程式碼中看不出來的決策;
  • reference — 專案外資訊的所在位置,例如任務追蹤工具。

這些內容全都位於 ~/.claude/projects/<project>/memory/。其中的主要檔案是 MEMORY.md,它是目錄,每則筆記各占 1 行。每次工作階段開始時,Claude 會讀取其中最前面的 200 行或 25 KB,並在需要時開啟其他檔案。記憶只存在你的電腦上,不會移到其他電腦或雲端。

在這裡描述的範例中,內容包含使用者的姓名和角色,以及一條禁止將動態值寫死的規則,總共只有 5–7 行。這些是給代理本身的規則,說明它應如何工作。

你可以用檔案資料夾建立第二大腦,讓代理透過連結讀取其中的檔案。採用這種做法時,最好定義一個「第二大腦」技能,並將記載 Hermes 安裝指令的 PDF,以及一份「不同任務該用哪個模型」的表格,與專案檔案放在一起。

如何為單一專案關閉自動記憶

  1. 在專案設定中加入該行

    專案的主資料夾中有一個隱藏的 .claude 資料夾,裡面有 settings.json 檔案。最簡單的做法是直接請 Claude Code:「在這個專案的 .claude/settings.json 檔案中加入 "autoMemoryEnabled": false,並保留其他設定不變。」如果你要手動開啟,而檔案不存在,請建立檔案並加入以下內容:

    {
      "autoMemoryEnabled": false
    }
    

    如果檔案中已有其他設定,請將這個鍵值加在旁邊,並保留其餘內容不變。當 autoMemoryEnabled 為 false 時,Claude 不會讀取記憶資料夾,也不會在其中寫入任何內容。

  2. 選擇設定的適用對象

    .claude/settings.json 是共用的專案檔案,適用於所有在此專案工作的人。如果你只想替自己關閉記憶功能,請將相同的鍵值放入 .claude/settings.local.json:這是你在此專案中的個人設定檔案。

    專案設定的優先順序高於全域設定。即使 ~/.claude/settings.json 中已啟用記憶功能,在這個專案中仍會以 false 為準。

  3. 重新啟動 Claude Code

    關閉工作階段,然後在專案資料夾中再次執行 claude。輸入 /status:你的專案檔案應會出現在 Setting sources 那一行。如果有顯示,就表示 Claude 已讀取該檔案。鄰近的其他專案仍會保持記憶功能啟用。

還有另外 2 種方法,但用途各不相同:

  • CLAUDE_CODE_DISABLE_AUTO_MEMORY=1 環境變數。 執行 CLAUDE_CODE_DISABLE_AUTO_MEMORY=1 claude,只會在這次執行期間停用記憶,並覆寫設定檔中的鍵值。不過,你每次都得輸入這段指令。
  • /memory 中的切換開關。 它會將 autoMemoryEnabled 寫入 ~/.claude/settings.json,也就是電腦上所有專案共用的全域檔案。在一個專案中使用它,就會關閉所有專案的記憶功能。

還有一件事:在背景工作階段中,切換開關只能關閉記憶,無法重新開啟。若要啟用記憶,請使用你在終端機中自行執行 claude 啟動的一般工作階段。

警告

停用記憶不會刪除 Claude 已經寫入的任何內容。在你親自整理之前,memory 資料夾會一直留在磁碟上。

如何處理舊筆記

/memory 指令會列出記憶檔案,並讓你開啟其中任一檔案。它們都是一般文字檔,你可以編輯或刪除。

不要不看內容就直接刪除,先檢查裡面有什麼。在這裡描述的規則資料夾整理案例中,代理在自我反思時,記錄了關於使用者的不必要資訊。規則雜亂無章、塞滿過時內容,就和根目錄中的 CLAUDE.md 堆滿過時規則一樣有害:代理仍會沿用這些內容,產生幻覺,並提供品質較差的脈絡。

你可以請代理協助整理。每週一次,你可以交給它類似以下的任務來檢查業務資料夾;同樣的方法也適用於記憶資料夾:

找出已不再相關或已過時的內容,並證明它確實已過時。現在先不要刪除;只要找出來並呈現給我。

它會附上證據,列出相關項目,再由你決定要刪除哪些內容。只將筆記中最有價值的資訊移到 CLAUDE.md。另一篇文章說明如何讓指示保持精簡,使 Claude 能遵循;至於如何用資料夾和規則整理整個專案的記憶,則請參閱第二大腦文章。

你有保留自動記憶功能,還是已將它關閉?檢查看看 Claude 記住了哪些關於你的事情。你可以前往 ailoot.ai 繼續探索 Ailoot。

來源

更多詳情

常見問題:如何在單一專案中關閉 Claude Code 自動記憶

哪個設定檔能只在一個專案中關閉我的記憶?

在該專案的 .claude/settings.local.json 設定 "autoMemoryEnabled": false。若要與團隊共用,才放進 .claude/settings.json。/memory 的開關會修改全域設定,不適合需要保留其他專案記憶的情況。

關閉自動記憶會刪掉舊筆記嗎?

不會,記憶資料夾仍在磁碟上。刪除前先查看檔案,必要時把有用決策保存到別處。修改專案設定後重新啟動 Claude Code,並在 /status 確認載入設定的來源。

所有文章