Claude CodeがAGENTS.mdをテレメトリ有効時のみ読む欠陥
原題: Claude Code reads AGENTS.md only when telemetry is on [fixed]
なぜ重要か
テレメトリ無効化という正当なプライバシー設定が機能を無音で損なう設計は、エンタープライズ利用やオフライン環境での信頼性に直接影響する。
Claude Code 2.1.277で追加されたAGENTS.mdサポートが、テレメトリや非必須通信を無効にした環境では機能しないことが判明した。原因はリモートフィーチャーフラグ「tengu_agents_md_mod」の取得失敗で、ローカルファイルを読むだけの処理にもかかわらず、警告なく静かにスキップされる。AWS BedrockやVertex AI経由でも同様の問題が発生する。
エンジニアのPrzemek氏が自身のブログで報告した内容によると、Claude Code 2.1.277で導入されたAGENTS.mdのサポートは、内部プラグイン「agents-md」がリモートフィーチャーフラグ「tengu_agents_md_mod」を取得できない場合に無効化される仕組みになっている。このフラグのデフォルト値はfalseであるため、ネットワーク到達性がなければそのまま機能が無効のままとなる。
Przemek氏の検証では、「CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1」または「DISABLE_TELEMETRY=1」のいずれかを設定した状態では、AGENTS.mdがプロジェクトに存在しても一切読み込まれなかった。両変数を「0」に設定してもブロックは解除されず、公式ドキュメントに記載されている「任意の値が有効」という仕様が逆に罠になる形だ。また、プロジェクトの.claude/settings.jsonのenvブロックで変数をクリアしても効果はなく、リポジトリ単位での有効化も現状は不可能だ。
さらに問題なのは、ファイルがスキップされる際に一切の警告が表示されないことだ。モデルはプロジェクト指示なしで応答を始め、何かが欠落していることをユーザーに伝えない。AWS BedrockやVertex AI経由でも同じ問題が生じる。これらの環境ではフラグをtrueに解決する手段がないためだ。
回避策として同氏が提案しているのは、AGENTS.mdと同じ場所に「@AGENTS.md」という1行だけのCLAUDE.mdを作成する方法だ。CLAUDE.mdの@pathインポートはフィーチャーフラグに依存しないため、テレメトリを無効にしたままでもファイルが読み込まれる。ただしこの方法は、AGENTS.md対応がそもそも解消しようとしていた「リポジトリごとに余分なファイルを置く手間」を再び生じさせる。
同氏はGitHub Issue #95690でも計測結果を共有しており、本記事はその内容をまとめたものだ。記事の公開後、Anthropicはバグとして認識しフィックスを行ったとされる。