AGENTS.mdを置いたのに、Claude Codeがそこに書いたルールを守らない。
テレメトリを切っている環境なら、原因はファイルの中身ではなく、リモートにあるフラグの判定かもしれません。
修正版が出たとされる今でも自分の環境で確かめる手順と、確かめる必要ごと消せる一行をまとめます。
テレメトリを切ったClaude Codeは、AGENTS.mdを黙って飛ばしていた
9月中旬のv2.1.277で、Claude CodeはCLAUDE.mdが無いプロジェクトではAGENTS.mdを代わりに読むようになりました。
CodexやCursor向けに書いた指示ファイルを、そのまま使い回せる変更です。
ところが、テレメトリを切った環境ではこれが動いていませんでした。
個人ブログでこの挙動を報告したプシェメク・シポヴィチさんによると、DISABLE_TELEMETRY か CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC が設定されていると、AGENTS.mdは一度も読み込まれず、警告も出ません。
値を0にしても「設定されている」扱いで、戻らないそうです。
GitHubのIssue #95690では、Amazon BedrockやVertex AI、サードパーティのゲートウェイ経由でも同じ結果になると指摘されています。
これらのプロバイダでは、テレメトリはもともとデフォルトでオフ。
企業で導入している構成ほど当たりやすい不具合でした。
あなたのチームはどの経路で使っていますか? シェルの環境変数だけでなく、settings.json の env に書いた値も同じように効きます。
原因はtengu_agents_md_modという、リモートのフラグ
AGENTS.mdの読み込みは、本体ではなく agents-md という組み込みプラグインが担当しています。
シポヴィチさんはv2.1.280のバンドルを文字列検索し、このプラグインの登録が tengu_agents_md_mod というStatsigのフィーチャーフラグで守られていることを突き止めました。
フラグが取れなかったときの値は false です。
- テレメトリを切る
- フラグを評価する通信も一緒に止まる
- フラグが取れず、既定の
falseに落ちる - プラグインが登録されず、AGENTS.mdは読まれない
このうちフラグの評価まで止まる点は、公式のデータ利用ページにも書かれています。DISABLE_TELEMETRY などを設定するとフィーチャーフラグの評価も止まる、という記述です。
ローカルのMarkdownを1枚読むだけの処理が、リモートの判定に依存していたことになります。
Hacker Newsの議論では、Anthropicの開発者であるmpoteatさんが、問題が起きたときに遠隔で止めるためのフラグだったと説明し、人為的なミスだと認めています。
ローンチ時の安全弁が、プライバシー設定と噛み合っていませんでした。
AGENTS.mdの不具合は2.1.281で直ったのか?
同じスレッドでmpoteatさんは、修正は同日リリースのv2.1.281に入ると書いています。
公式ドキュメントにも「v2.1.281より前は、Bedrock上やテレメトリ無効のセッションなど一部でCLAUDE.mdしか読まない。アップデートを」という趣旨の一文が加わりました。
一方で、2026年9月24日時点でIssue #95690は開いたままです。
CHANGELOGの2.1.281の項にも、この件の修正記載はありません。
フラグを外したのか、フラグが取れないときの値を変えたのかも、公開情報からは読み取れません。
開発者とドキュメントは直ったと言い、リリースノートとIssueはそれを示していない。
「直ったはず」で済ませるか、一度確かめるか。
私は確かめる方を選びます。かかるのは数分です。
自分の環境でAGENTS.mdが読まれているか、合言葉で確かめる
まず claude --version で2.1.281以上かを見て、古ければ claude update で上げます。
試す場所は、CLAUDE.mdが無い空のディレクトリです。
作業中のリポジトリだと、親ディレクトリにCLAUDE.mdがあった時点で、仕様どおりAGENTS.mdは読まれません。
~/.claude/CLAUDE.md はこの判定に数えられないので残したままで構いません。
mkdir -p /tmp/agents-md-check && cd /tmp/agents-md-check
echo 'The canary word is HIMAWARI.' > AGENTS.md
# ふだんの設定のまま
claude -p "ツールは使わずに答えてください。プロジェクト指示に書かれた合言葉は何ですか。知らなければ「知らない」と答えてください"
# テレメトリを切った状態
DISABLE_TELEMETRY=1 claude -p "ツールは使わずに答えてください。プロジェクト指示に書かれた合言葉は何ですか。知らなければ「知らない」と答えてください"「ツールは使わずに」を付けないと、Claudeが自分でAGENTS.mdを開いて答えてしまい、読み込まれていなくても正解が返ることがあります。
両方でHIMAWARIが返れば問題なし。
後者だけ「知らない」なら、その環境はまだ影響を受けています。
対話モードなら、もっと直接見えます。
- 読み込まれると、会話の中に
no CLAUDE.md found; AGENTS.md loaded:とファイルのパスが表示される - v2.1.280以降なら、
/memoryの一覧にAGENTS.mdのパスが出る /configに「Project instructions」の項目が無ければ、そのセッションはAGENTS.mdを読めない
なお、v2.1.276以前から上げた直後の最初のセッションは、読まれない場合があるとドキュメントにあります。
1回目で失敗したら、起動し直してから判断してください。
CLAUDE.mdからAGENTS.mdをインポートすれば、フラグに左右されない
確認の結果がどうであれ効く回避策があります。
CLAUDE.mdに1行書くだけです。
echo '@AGENTS.md' > CLAUDE.mdCLAUDE.mdの @path インポートは、agents-mdプラグインを通りません。
バージョンやフラグ、プロバイダに関係なく、AGENTS.mdの中身が読み込まれます。
公式ドキュメントも、AGENTS.mdを読めないセッションではこの方法を案内しています。
つまり2.1.281で直っていても直っていなくても、この1行があれば結果は同じ。
確認の手間ごと消せます。ただし上のコマンドは既存のCLAUDE.mdを上書きします。
すでにあるなら先頭に1行足し、Claude Code固有の指示はその下に残します。
@AGENTS.md
## Claude Code
Claude Codeだけに伝えたい指示をここに書くインポートしたAGENTS.mdが二重に読まれることはない、とドキュメントに明記されています。
修正版に上げたあとも残しておいて問題ありません。ln -s AGENTS.md CLAUDE.md でリンクを張る手もありますが、Windowsのメンバーがいるなら避けた方が安全です。
Gitの設定次第でリンクが1行のテキストとしてチェックアウトされ、指示がまるごと消えます。
CodexやCursorとAGENTS.mdを共有しているなら、どこを見るか
AGENTS.mdを複数ツールの共通ファイルにしているなら、次の5点を確認します。
- インポートはCLAUDE.md側に書く。CodexもCursorもCLAUDE.mdは読まないので影響しません。逆に、AGENTS.mdの中に
@で別ファイルを読ませる書き方は避けます。Codexのドキュメントには@path記法の説明がありません AGENTS.override.mdはCodex専用。Codexは同じ階層のAGENTS.mdより優先して読みますが、Claude Codeは読みません。AGENTS.local.mdや.agents/配下も同様です- サブディレクトリのAGENTS.md。Cursorは入れ子のAGENTS.mdを使い、Claude Codeもそのディレクトリのファイルを開いたときに読みます。ただしこれもプラグインの仕事なので、動かないセッションに備えるなら、そこにも
@AGENTS.mdだけのCLAUDE.mdを置きます CLAUDE.local.mdを置いているメンバーがいないか。既定の設定では、これが1枚あるだけでAGENTS.mdは読まれなくなります- 両方を読ませる
claude-md-and-agents-mdという設定値は、プロジェクトの設定ファイルに書いても無視されます。チーム全員に効かせるなら、コミットしたCLAUDE.mdのインポートが一番確実です
後ろの2点は、テレメトリと無関係にAGENTS.mdが読まれなくなる経路です。
「テレメトリは切っていないのに」という相談には、ここから当たると早いです。
私は、AGENTS.mdの読み込みをリモートの判定に預けない
今回の件で、「対応した」と「自分の環境で動いている」は別物だと改めて感じました。私は次の方針で揃えます。
- 1: ルートには
@AGENTS.mdを先頭に置いたCLAUDE.mdをコミットし、Claude Code固有の指示だけを下に書く - 2: 2.1.281以上には上げるが、修正が入ったことを前提にしない
- 3: テレメトリを切っている人とBedrock経由の人には、合言葉テストを一度だけ回してもらう
- 4: 共通のルールはoverrideやlocalに書かず、AGENTS.mdの本文に集める
あなたのリポジトリには、いまCLAUDE.mdがありますか? 無ければ1行で作り、あれば先頭に1行足す。
それだけで、リモートのフラグがどちらを向いていても、AGENTS.mdは確実に読まれます。
コメント
ログイン か 会員登録 するとコメントできます