CLAUDE.md 與 AGENTS.md:哪個代理程式讀哪個檔案。
兩者都是寫給程式碼代理程式的 Markdown 指示檔,內容重疊很多,所以大家常會不小心兩個都留著。這裡說明各自的用途、誰會讀它,以及如何避免維護兩份副本。
需要 macOS 14 或以上版本。閱讀免費;編輯與審閱為一次付費。
快速解答
CLAUDE.md 是 Claude Code 讀取的指示檔。AGENTS.md 是開放格式,Codex、Cursor 和許多其他代理程式都會讀取。如果你同時使用 Claude Code 和其他代理程式,請把共用規則放在 AGENTS.md,並在 CLAUDE.md 最上方寫 @AGENTS.md,Claude 專用的指示寫在它下面。
@AGENTS.md
## Claude Code
Use plan mode for changes under `src/billing/`.
·
兩個檔案各是什麼
兩者都是純 Markdown,代理程式在工作階段開始時載入它的情境。你寫建置與測試指令、程式碼風格、專案結構,以及像「不要編輯產生的檔案」這樣的規則。它們是指示,不是強制執行的設定:代理程式把它們當作指引。
- CLAUDE.md 專屬於 Claude Code。它可以放在專案根目錄(
./CLAUDE.md或./.claude/CLAUDE.md)、放在~/.claude/CLAUDE.md供你所有專案使用,也可以放在子資料夾中。CLAUDE.local.md則存放單一專案的私人備註。 - AGENTS.md 是 agents.md 上說明的開放格式,是寫給代理程式的 README。Codex、Cursor、GitHub Copilot 的程式碼代理程式、Gemini CLI、Zed 等許多工具都會讀取。在 monorepo 中,子資料夾的 AGENTS.md 套用於該部分,並以最近的檔案為準。
內容是同一類的東西,差別在於哪個工具會讀取該檔案。
Claude Code 如何處理 AGENTS.md
Claude Code 的文件針對 2.1.277 版以後,描述了三種情況:
- 專案中只有 AGENTS.md,沒有 CLAUDE.md:Claude Code 會讀取 AGENTS.md。
- 專案中兩個檔案都有:Claude Code 只讀取 CLAUDE.md 檔案。
- CLAUDE.md 以
@AGENTS.md匯入 AGENTS.md:Claude 讀取 CLAUDE.md,並一併包含 AGENTS.md。
第二種情況最讓人意外。如果你在已有 AGENTS.md 的儲存庫加入 CLAUDE.md,即使很小,除非 CLAUDE.md 匯入它,Claude 就不會再讀取 AGENTS.md。CLAUDE.local.md 也一樣。較舊版本的 Claude Code 只讀取 CLAUDE.md,這就是匯入仍然是安全選擇的原因。文件中也說明了 /config 裡的 Project instructions 設定,可以讓 Claude 同時讀取兩個檔案。
只維護一份指示
選一個檔案作為唯一的資料來源。文件中記載了兩種做法:
-
在 CLAUDE.md 中匯入 AGENTS.md
在 AGENTS.md 旁邊建立 CLAUDE.md,第一行寫
@AGENTS.md,然後在下面加上 Claude 專用的指示。匯入使用@path語法,相對路徑從包含它的檔案開始解析,被匯入的檔案還可以再匯入其他檔案,最深四層。 -
把 CLAUDE.md 做成 AGENTS.md 的符號連結
如果沒有 Claude 專用的內容要加,執行
ln -s AGENTS.md CLAUDE.md。文件警告說,Claude 的編輯工具不會透過符號連結寫入,而且在 Windows 上,已提交的符號連結可能會被檢出為只有一行的文字檔,所以對共用儲存庫來說,匯入是比較安全的選擇。
避免第三種做法:在 CLAUDE.md 裡用文字寫「請閱讀 AGENTS.md」。Claude 只有在決定開啟那個檔案時才會看到,而匯入則每次都會載入。
共用的 AGENTS.md
把任何代理程式都需要的內容放進 AGENTS.md:
# AGENTS.md
## Commands
- Install: `npm ci`
- Test: `npm test`
- Lint: `npm run lint`
## Conventions
- TypeScript, strict mode. No default exports.
- Update the tests with every change.
## Do not
- Edit files under `generated/`.
- Commit without running the tests.
保持簡短而具體。Claude Code 文件建議每個 CLAUDE.md 維持在約 200 行以內,因為較長的檔案會佔用情境,也較不容易被可靠地遵循。
常見錯誤
- 兩個檔案各走各的。一份更新了,另一份沒有。請使用匯入。
- 加了 CLAUDE.md 卻讓 AGENTS.md 失效。見上文:把它匯入。
- 在任一檔案中放入機密。它們會被提交,並載入每個工作階段。
- 模糊的規則。「寫乾淨的程式碼」沒有任何作用。「說完成之前先執行 npm test」才有用。
- 規則互相矛盾:父資料夾的檔案與子資料夾的檔案說法不一。
閱讀與審查這些檔案
兩者都是一般的 Markdown,因此 DotMD 可以開啟 CLAUDE.md 與 AGENTS.md,如同任何 .md 檔案,提供大綱與每次變更的歷史,並顯示代理程式在其中改了什麼。閱讀免費。另請參閱搭配 DotMD 使用的 Claude Code 與 Codex。
關於 CLAUDE.md 與 AGENTS.md 的常見問題
CLAUDE.md 與 AGENTS.md 有什麼差別?
CLAUDE.md 是 Claude Code 的指示檔。AGENTS.md 是開放、與工具無關的格式,Codex、Cursor 等許多代理程式都會讀取。內容相似,差別在讀取的工具。
Claude Code 會讀取 AGENTS.md 嗎?
較新的版本會,但只在你的工作目錄或其上層沒有 CLAUDE.md 時。如果兩者都有,它會讀取 CLAUDE.md 檔案,所以請在 CLAUDE.md 中以 @AGENTS.md 匯入 AGENTS.md。
我該同時保留 CLAUDE.md 與 AGENTS.md 嗎?
如果你同時使用 Claude Code 和其他代理程式,是的:把共用指示放在 AGENTS.md,讓 CLAUDE.md 匯入它,再加上 Claude 專用的內容。
CLAUDE.md 要放在哪裡?
專案請放在專案根目錄或 .claude/,所有專案共用請放在 ~/.claude/CLAUDE.md,不提交的私人備註則放在 CLAUDE.local.md。