MEMORY.md 裡寫的內容,是 Claude 自動決定要記什麼,還是我可以主動要求它記住特定事項?
從官方給的例子來看(「發布時程改到週五了」「動帳務程式碼前要先問誰」),這類資訊聽起來像是在對話過程中自然浮現、Claude 判斷屬於「決策性、規則性」的內容,主動寫進索引裡——這代表機制本身傾向於自動化,不完全是你每次都要明確下指令「幫我記住這件事」才會運作。
但反過來說,如果某件事對你來說很重要,比較保守的做法還是直接在對話裡明確講出來,而不是假設 Claude 一定會自己判斷出這件事的重要性、主動寫進 MEMORY.md——畢竟這是一份 Claude 主動維護的索引,你目前沒有辦法在文件裡直接看到它的完整判斷邏輯,與其事後才發現某個關鍵決策沒被記住,不如在當下就明確說出來,降低漏記的風險。
為什麼「記憶」跟「程式碼脈絡」要走兩條不同的繼承路徑,不乾脆全部放進同一份索引裡?
這兩者的性質本來就不一樣。程式碼脈絡(repository 本身、CLAUDE.md、skills、plugins)是每個 thread 執行工作時,實際需要拿來操作、編輯、測試的素材本身——這類內容體積可能很大,而且每個 thread 通常需要一份完整、獨立的複本,才不會在並行執行時彼此干擾。如果把這些內容也塞進 MEMORY.md 這種索引檔案裡,索引本身會變得龐大而低效,而且失去「每個 thread 有自己獨立工作副本」這個並行執行的基本前提。
記憶(MEMORY.md 索引裡的內容)則相反,它的價值恰恰在於「輕量、跨 thread 共享、持續累積」——這類決策性資訊通常很短,但需要被所有後續的 thread 看到,不需要、也不應該像程式碼那樣被每個 thread 複製一份獨立副本(複製多份反而會造成資訊不同步的風險)。把兩者拆成不同機制,是因為它們對「要不要共享」「要不要獨立複本」這兩個問題的答案剛好相反。
如果我的 project 橫跨多個 repository,權限規則只在啟動目錄裡生效這件事,實際上會造成什麼具體影響?
實際影響是:你在其中一個 repository 底下設定的權限規則(例如某條 deny 規則、某個 hook),不會自動延伸到 project 裡的其他 repository——如果一個 thread 是從另一個 repository 的目錄啟動,它不會受到你在第一個 repository 裡設定的那套規則約束,除非你在那個 repository 底下也各自設定了對應的規則。這代表在多 repository 的 project 裡,權限規則的把關程度,取決於你有沒有在「每一個」repository 底下都個別做好設定,而不是設定一次就能保護整個 project。
實務上比較保險的做法,是先盤點你的 project 裡涵蓋幾個 repository,針對每一個都個別檢查權限規則、hooks、env 是否符合你的預期,而不是因為在其中一個 repository 裡設好了規則,就假設整個 project 都已經套用了同一套防護——這個假設在單一 repository 的 project 裡是成立的,但一旦 project 橫跨多個 repository,就不再成立。
協調者看不到 thread 執行過程的每一步,只看得到回報結果,這對我實際監督工作進度會不會造成問題?
這代表你如果只盯著 project 對話本身,能掌握的是「這個 thread 現在到哪個階段了、最後回報了什麼」這種高層次的進度,而不是「它剛才試了三種方法,前兩種失敗了」這種執行細節。對於大部分只需要知道結果的情境,這個層級的資訊已經夠用,不需要每一步都盯著看。
但如果某個 thread 的結果不如預期,或是你需要理解它為什麼做出某個特定選擇,單靠協調者這一層的資訊會不夠——這時候需要主動打開那個 thread,才能看到完整的執行過程跟中間嘗試。所以比較實際的監督習慣,是把協調者對話當成「巡視進度用的儀表板」,只有在儀表板顯示的結果讓你有疑問、或是結果本身需要更仔細審查時,才進一步點開個別 thread 去看細節——不需要、也不太可能對每個並行執行的 thread 都全程緊盯。
Claude Code Projects 在 2026 年 9 月 17 日重新設計上線,核心概念是把一個 project 變成一個持續進行的對話,由 Claude 擔任協調者(coordinator),把實際工作拆給多個並行執行的 thread。多篇報導都提到這次更新「有共享記憶」,但共享記憶具體是怎麼運作的——資料存在哪裡、哪些內容會被寫進去、新開的 thread 怎麼讀到——這篇文章聚焦在這個機制本身。
Claude 透過一份叫 MEMORY.md 的索引檔案讀寫 project 記憶。這不是一個抽象的「AI 記得你」概念,而是一份實際存在、Claude 會主動寫入跟讀取的文字檔案。官方給的例子很具體:「發布時程改到週五了」,或是「動到帳務相關程式碼之前要先問誰」——這類決策性、規則性的資訊,會被寫進這份索引,而不是散落在某個 thread 各自的對話紀錄裡,消失在那個 thread 結束之後。
每個新的 thread 開始執行時,會自動繼承幾類固定情境,不需要你每次重新交代:project 底下的所有 repository 跟你上傳的檔案、最多 16,000 字元的 project instructions(協調者跟每個新 thread 都會收到同一份)、以及透過 MEMORY.md 索引讀寫的 project memory。除此之外,每個 thread 還會各自複製一份完整的 project repository,並從裡面載入 CLAUDE.md、skills 跟 plugins——這代表記憶(決策性資訊)跟程式碼脈絡(repository 本身)是兩條分開的繼承路徑,分別由不同機制負責。
官方文件裡特別點出一個容易被誤解的地方:權限規則、hooks 跟 env 環境變數的行為,只會從 thread 啟動時所在的目錄開始生效——這代表如果你的 project 只包含單一 repository,這些規則會照常運作;但如果你的 project 橫跨多個 repository,這些規則不會自動套用到所有 repository,只有 thread 實際啟動的那一個目錄底下才會生效。這跟 MEMORY.md 索引的運作邏輯不一樣——記憶是整個 project 層級共享的,權限規則卻是依目錄範圍生效,兩者不能用同一套心智模型去理解。
協調者(project 對話本身)跟 thread 之間,不是對等的資訊流通——協調者會讀取你傳送的內容、就地回答簡單問題、決定要不要開新的 thread;但協調者看到的是 thread「回報回來的結果」,不是 thread 執行過程中的每一個步驟。這代表如果你只看 project 對話本身,不會看到 thread 在背後具體做了哪些嘗試、走過哪些彎路,只會看到它最後回報的結論——要看執行細節,得個別打開那個 thread 才行。
MCP 工具的存取,是透過你 claude.ai 帳號本身的連接器提供的,project 對話本身沒有連接器——這代表任何需要用到 MCP 工具的工作,必須交給某個 thread 去執行,協調者這一層本身無法直接呼叫 MCP 工具。這也解釋了為什麼「協調者只負責分派、thread 才是真正做事的」這個架構分工,不只是任務管理上的設計,也直接受限於工具存取權限本身的架構安排。