Claude Code 與 AGENTS.md 標準:互操作性衝突

衝突點:CLAUDE.md vs. AGENTS.md

Claude Code 使用專有的 CLAUDE.md 檔案來為 AI 提供特定於專案的上下文與記憶。然而,一個名為 AGENTS.md 的日益增長的開放標準——已被超過 20,000 個開源專案採用,並受到 Cursor 和 Codex 等工具的支持——旨在為任何編碼 AI 提供統一且與代理程式無關的指令檔案。

開發者正要求 Claude Code 採用雙檔案方法:優先使用 CLAUDE.md 進行 Claude 特有的優化(例如 MCP server 配置或子代理程式定義),同時在一般專案指南、建置指令和風格規則方面回退到 AGENTS.md。這將使 Claude Code 能夠立即在數千個現有儲存庫中發揮作用,而無需手動複製指令。

目前狀態與社群反彈

儘管獲得了大量的支持(GitHub issue 上有超過 4,600 個反應),該功能請求卻在沒有於核心產品中進行原生實作的情況下被標記為「已完成」並關閉。這引發了開發者社群的顯著批評,用戶指出缺乏透明度、公關表現不佳,以及感覺正朝向「圍牆花園」生態系統發展。

批評者認為,要求使用 CLAUDE.md 檔案是對 Anthropic 的一種「免費廣告」,迫使每個儲存庫即使在指令與開放標準相同的情況下,也必須顯示一個 Claude 特有的檔案。一些用戶表達了極度的挫折感,表示在沒有變更日誌或文件說明的情況下靜默關閉該 issue,對於一個旨在服務專業開發者的工具來說是不可接受的。

實現互操作性的技術變通方法

由於目前無法原生支持 AGENTS.md,社群已經開發了幾種變通方法,以在不同的 AI 工具之間維持單一事實來源:

1. 匯入方法

Claude Code 的 CLAUDE.md 支持匯入其他檔案。開發者可以創建一個 CLAUDE.md 檔案,其中包含單行內容來拉取一般標準:

@AGENTS.md

2. 符號連結 (Symbolic Linking)

在 macOS 和 Linux 上,用戶可以創建一個符號連結,使 Claude Code 讀取 AGENTS.md 檔案時就像是在讀取 CLAUDE.md 一樣:

ln -s AGENTS.md CLAUDE.md

3. 透過 Session Hooks 自動化

為了在嵌套目錄中獲得更流暢的體驗,開發者可以使用 .claude/settings.json hooks 來自動將儲存庫中找到的所有 AGENTS.md 檔案注入到啟動時的 session 上下文中:

設定配置:

{
  "hooks": {
    "SessionStart": [
      {
        "matcher": "startup",
        "hooks": [
          {
            "type": "command",
            "command": "$CLAUDE_PROJECT_DIR/.claude/hooks/append_agentsmd_context.sh"
          }
        ]
      }
    ]
  }
}

Shell 腳本 (append_agentsmd_context.sh):

#!/bin/bash
echo "=== AGENTS.md Files Found ==="
find "$CLAUDE_PROJECT_DIR" -name "AGENTS.md" -type f | while read -r file; do
    echo "--- File: $file ---"
    cat "$file"
    echo ""
done

開發者觀點綜述

關於 AGENTS.md 的辯論突顯了工具特定優化與生態系統互操作性之間的根本緊張關係。

"明顯的原因是他們更希望在每個儲存庫中都有 CLAUDE.md 檔案... 這就像是我們這個時代的 'Sent from my iPhone'。"

雖然有人認為工具特定的檔案可以讓指令更好地針對模型的特定特性進行調整,但資深用戶的主流觀點是,在大型組織或許多開源專案中維護多個幾乎相同的檔案所產生的開銷,是一個阻礙 AI 編碼代理程式普及的重大摩擦點。

Sources

相關