作者 @wquguru 把分層架構的第一層稱為「規則記憶」,並指出它其實比任何自動記憶系統都更早落地——它就是規則檔。

作者的論點

Claude Code 把這份檔案叫 CLAUDE.md,Codex 叫 AGENTS.md。本質是一份「工作憲法」:這個專案怎麼建置與測試、哪些目錄絕對不能碰、哪些命令必須在特定子目錄跑、哪些程式風格與提交規則不可破壞、哪些業務紅線比完成當前任務本身更重要。

它的優點一目了然:可讀、可改、可審計、可放進 Git。團隊能 review,CI 能檢查,agent 每次啟動都看得到。

但作者也劃出明確邊界:規則檔適合放「長期穩定、每次都該遵守」的東西,不適合塞所有歷史細節。把每個 bug、每次實驗、每條日誌都往 CLAUDE.md 裡堆,最後只會把上下文變成一坨低密度噪音。由此他確立了第一條設計原則:必須遵守的規則,不要只放在自動記憶裡,它們應該進入版本化的規則檔。規則記憶解決的是「以後都按這個方式做」。

業界脈絡:作者引用的官方分界,確實成立

作者主張「Claude Code 官方文件把 CLAUDE.md 和 auto memory 拆得清清楚楚」「Codex 強調團隊必須遵守的規則該放 AGENTS.md、memories 只是本地 recall layer」。這一點可獨立佐證:Claude Code 官方記憶文件確實說明,每個 session 都從一個全新的 context window 開始,靠兩個機制跨 session 傳遞知識——人寫的 CLAUDE.md 指令/規則,與 Claude 根據你的修正與偏好自己累積的 auto memory,兩者都在每次對話開頭載入。這與作者的描述一致。

幾個值得補充、且常被誤解的工程事實:

  • 載入策略是「累加」而非「覆寫」:Claude Code 從當前工作目錄往上走訪目錄樹直到 repo 根,沿途收集每一個 CLAUDE.md 串接起來,不做優先序合併、不過濾。這代表規則檔的「位置」會影響最終指令集。
  • 跨工具可攜性有坑:Claude Code 讀 CLAUDE.md不會自動 fallback 去讀 AGENTS.md。要共用同一份規則,官方可行的做法是在 CLAUDE.md 裡用 @AGENTS.md import,把內容在啟動時展開進 context;symlink 也是常見手法。網路上流傳的「Claude Code 會把 AGENTS.md 當備援讀取」說法並不正確。

換句話說,作者把規則檔列為「第一層記憶」是準確的觀察,而「規則檔該與自動記憶分離」也呼應各家官方立場;但實務上「同一份規則跨工具共用」需要額外的 import/symlink 設定,並非開箱即用。

延伸