Claude CodeのAGENTS.md設定と移行: 4つの読み込みモードとCLAUDE.mdとの違い
更新日

要点: Claude Code v2.1.277(2026 年 9 月 18 日)以降、AGENTS.md があり、パス上のどこにも CLAUDE.md がないリポジトリでは、AGENTS.md から自動的に指示を読み込みます。インストールも、import 行も、シンボリックリンクも不要です。作業ディレクトリまたはその親ディレクトリに CLAUDE.md か CLAUDE.local.md があれば、Claude Code は引き続きそちらを読み、AGENTS.md を無視します。これを変えるには、/config の Project instructions 設定を切り替えます。
確認は 10 秒で済みます。AGENTS.md だけがある repo で新しいセッションを開始し、会話の先頭付近に次の行が出るか見てください。
no CLAUDE.md found; AGENTS.md loaded: /path/to/repo/AGENTS.mdこの行が出ない場合、原因は次の 4 つのどれかで、いずれも本記事で扱います。古いバージョンを使っている、親ディレクトリに CLAUDE.md か CLAUDE.local.md が隠れている、アップグレード後の最初のセッションである、あるいはセッションの種類が AGENTS.md をそもそも読めない(Bedrock、Vertex、Foundry、テレメトリ無効)のいずれかです。
以下で 実測 と記した項目は、2026 年 9 月 21 日に macOS 上の Claude Code 2.1.278 で、新規の検証用リポジトリと claude -p を使って確認したものです。それ以外は公式のメモリに関するドキュメント (opens in a new tab)と changelog (opens in a new tab) に基づいています。
- Claude Code が AGENTS.md を読むように:設定方法、4つの読み込みモード、Codex・OpenCode・Cursor との共用
- GPT Image 2.5の使い方:FlareとSunburstの違い・API料金
- DeepSeek Harness の使い方:インストール、初期設定、最初のエージェント実行まで
- Runcell Science:Claude Scienceのオープンソース代替となるAI研究ワークスペース
- Macをスリープさせない方法:Codex・Claude Codeを止めずに動かす
- OpenClaw vs ZeroClaw vs Pi Agent vs Nanobot: 2026年に選ぶべきAIエージェントスタックは?
- Claude CodeでJupyterノートブックを分析する方法|Data Science向けの実践ポイントと限界
- Claude Code Routinesとは?AIエージェントの定期実行と自動化を理解する
- Claude Code DesktopでBypass permissionsを有効にする方法
- GoogleのA2Aプロトコルで2つのPythonエージェントを構築する方法 - ステップバイステップチュートリアル
- 2025年のPythonで人気のあるトップ10のデータ可視化ライブラリ
何が変わったのか
2.1.277 の changelog エントリは 1 文だけです。
Added AGENTS.md support: in a project with no CLAUDE.md, Claude Code reads AGENTS.md instead; change it under "Project instructions" in
/config(not yet on Bedrock, Vertex or Foundry)
(要約: CLAUDE.md のないプロジェクトでは代わりに AGENTS.md を読む。/config の「Project instructions」で変更できる。Bedrock、Vertex、Foundry ではまだ未対応。)
このリリース以前は、Codex、OpenCode、Cursor などのために AGENTS.md (opens in a new tab) に統一していたチームも、その横に CLAUDE.md を置き続ける必要がありました。中身は複製、@AGENTS.md の import、またはシンボリックリンクのいずれかです。このリリースに関する Hacker News のスレッド (opens in a new tab)(725 ポイント、273 コメント)は、ほとんどがこうした回避策のどれを維持してきたかを語る内容です。
このリリースで AGENTS.md が CLAUDE.md と同等になったわけではありません。追加されたのは、切り替えスイッチ付きのフォールバックです。本ガイドの残りは、そのフォールバックがどこで止まり、スイッチがどこで効くかについてです。
どのファイルが優先されるか: 判定テーブル
これはデフォルトの動作、つまりモード claude-md-or-agents-md の場合です。「CLAUDE.md が存在する」の判定対象は、作業ディレクトリとそのすべての上位ディレクトリにある CLAUDE.md、.claude/CLAUDE.md、CLAUDE.local.md です。個人用の ~/.claude/CLAUDE.md、組織の managed CLAUDE.md、.claude/rules/ 配下のファイルは判定に含まれず、AGENTS.md と一緒に読み込まれ続けます。
| repo と親ディレクトリにあるファイル | Claude Code が読むもの(デフォルト) | 2.1.278 での実測 |
|---|---|---|
AGENTS.md のみ | AGENTS.md | 確認済み: 返答が AGENTS.md に置いたマーカーで始まった |
AGENTS.md + CLAUDE.md | CLAUDE.md のみ | 確認済み: CLAUDE.md のマーカーだけが出た |
AGENTS.md + CLAUDE.local.md(gitignore 済み) | CLAUDE.local.md のみ | 確認済み: AGENTS.md はスキップされた |
AGENTS.md + 親ディレクトリの CLAUDE.md | 親の CLAUDE.md のみ | ドキュメントと DevelopersIO の検証 (opens in a new tab)に基づく。本記事では未再現 |
@AGENTS.md を含む CLAUDE.md | CLAUDE.md(import 経由で AGENTS.md がインライン展開される) | ドキュメントに基づく |
3 行目が、多くの人が最初にはまる落とし穴です。CLAUDE.local.md は、コミットしない個人用の指示を置く場所としてドキュメントに記載されています。AGENTS.md に依存しているプロジェクトにこれを 1 つ追加するだけで、Claude は何も言わずに AGENTS.md を無視する挙動に戻ります。対処は設定 1 つで済み、次のセクションで扱います。
検証方法
検証用 repo の各 AGENTS.md と CLAUDE.md には、指示を 1 つだけ書きました。すべての返答を [AGENTS_MD_LOADED] のような固定マーカーで始める、というものです。その上で次を実行します。
mkdir agentsmd-test && cd agentsmd-test && git init -q
printf '# AGENTS.md\n\nAlways begin your reply with the exact token [AGENTS_MD_LOADED].\n' > AGENTS.md
claude -p "What is 2+2? Answer in five words or fewer." < /dev/null返答が [AGENTS_MD_LOADED] で始まればファイルは読み込まれています。素の 4. なら読み込まれていません。/context より粗い方法ですが、/context と /memory は直接読み込まれた AGENTS.md を一覧に出しません(後述の相違点テーブルを参照)。そのため、両方のファイルに使えるのはこのマーカー方式です。
Project instructions の 4 つのモード
セッション内で /config を開いて Project instructions を設定するか、~/.claude/settings.json の組み込み agents-md プラグインの項目に同じ値を書きます。Claude Code はプロジェクト単位およびローカルの設定ファイルではこのキーを無視するため、repo にコミットして共有することはできません。ユーザー単位または managed の設定です。
| 値 | 読み込まれるもの | 使う場面 |
|---|---|---|
claude-md-or-agents-md(デフォルト) | CLAUDE.md。パス上に CLAUDE.md / CLAUDE.local.md がない場合のみ AGENTS.md | 設定ゼロで済ませたい、かつ各 repo がどちらか一方の規約に統一されている |
claude-md-and-agents-md | ディレクトリごとに両方。CLAUDE.md が先、次に AGENTS.md。CLAUDE.md から import またはシンボリックリンク済みの AGENTS.md は二重には読まれない | 全ツール共通の AGENTS.md に加えて Claude 専用の短い CLAUDE.md を置いている、または CLAUDE.local.md を使っている |
claude-md | CLAUDE.md のみ。AGENTS.md は単独であっても無視 | AGENTS.md が別ツール向けに書かれていて Claude を混乱させる |
managed-only | 組織の managed CLAUDE.md と起動時の auto memory のみ | ロックダウンされたエンタープライズ環境 |
設定ファイルでの書き方:
{
"pluginConfigs": {
"agents-md@builtin": {
"options": { "instructionFiles": "claude-md-and-agents-md" }
}
}
}実測: 両方のファイルがある repo でこの JSON を --settings both.json で渡すと、返答は [CLAUDE_MD_LOADED] [AGENTS_MD_LOADED] の順で始まりました。AGENTS.md だけの repo で "instructionFiles": "claude-md" を渡すと素の 4. が返り、ドキュメント通りファイルは無視されました。
アップグレード直後の最初のセッションで動かない理由
これで検証を 2 回無駄にしました。ドキュメントには、「インストールまたはアップグレード後の最初のセッション」では利用できず、「次のセッション以降」で AGENTS.md を読む、と書かれています。
実測: インストールしたばかりの 2.1.278 と AGENTS.md だけの repo では、1 回目の claude -p はファイルを無視しました。2 回目も同様です。3 回目で読み込まれました。非対話の -p 実行は短時間で終わるため、AGENTS.md 対応を制御する feature flag が 2 回目の開始時点でまだ取得できていなかった可能性があります。実務上のルールはこうです。アップグレード後は使い捨てのセッションを 1 つ開いて閉じ、そのあとで AGENTS.md が読まれているかを判断してください。
ドキュメントによると、AGENTS.md をそもそも読めないセッションは次の通りです。
- Amazon Bedrock、Google Vertex AI、Microsoft Foundry
- テレメトリ無効(feature flag を取得できないため)
disableAllHooksまたはallowManagedHooksOnlyが設定されている、または/pluginで組み込みのagents-mdプラグインが無効化されている- 上記の通り、インストールまたはアップグレード後の最初のセッション
これらのいずれでも、/config に Project instructions 自体が表示されません。これが最も手早い見分け方です。こうしたセッションでの代替手段は、次のセクションで説明する import です。
直接読み込まれた AGENTS.md と CLAUDE.md の違い
設定経由で読み込まれた AGENTS.md は、CLAUDE.md の完全な代替ではありません。ドキュメントに記載された目に見える違いは 3 つです。
CLAUDE.md | 設定経由で読み込まれた AGENTS.md | |
|---|---|---|
/memory と /context の Memory files 一覧に表示される | はい | いいえ。AGENTS.md loaded の行を探すか、プロジェクト指示の内容を Claude に尋ねる |
InstructionsLoaded フック | 発火する | 発火しない(CLAUDE.md から import された AGENTS.md では発火する) |
CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD 付きの --add-dir で追加したディレクトリ | その CLAUDE.md は読み込まれる | その AGENTS.md は読み込まれない |
サブディレクトリの AGENTS.md は、Claude が Read ツールでそのディレクトリ内のファイルを開いたときに、そのディレクトリに固有の CLAUDE.md がなければオンデマンドで読み込まれます。AGENTS.md 内の @path import は展開され、claudeMdExcludes のパターンも適用されます。
移行: 既存の回避策をどうするか
2.1.277 より前に AGENTS.md を読ませる仕組みを作っていた場合、構成ごとのドキュメントの指針と、いつ動くべきかについての私の見解は次の通りです。
@AGENTS.mdだけを含むCLAUDE.md: 使用するすべてのセッションが新しい挙動に対応しているなら削除できます。チームの誰かが Bedrock、Vertex、Foundry 経由で作業しているなら残してください。それらではまだ import が必要です。残しておいても二重読み込みにはなりません。- 散文で「AGENTS.md を読んで」と書いた
CLAUDE.md: その文を@AGENTS.mdに置き換えるか、ファイルを削除します。散文は Claude がファイルを開くと判断した場合にしか効きませんが、import は確定的です。 AGENTS.mdへのシンボリックリンクにしたCLAUDE.md: どちらでも動きますが、Edit ツールと Write ツールはシンボリックリンク越しの書き込みを拒否し、リンク先にリダイレクトします。Windows では、core.symlinksが有効でない限りコミットされたシンボリックリンクは 1 行のテキストファイルとしてチェックアウトされるため、そこでは import を優先してください。AGENTS.mdを出力するSessionStartフック: 削除してください。Claude がAGENTS.mdを直接読むようになると、フックがコンテキストに 2 つ目のコピーを注入します。- 内容の異なる両ファイル: Claude 固有の部分が別ファイルに値するかを決めます。値するなら、共通ルールは
AGENTS.mdに、Claude 専用ルールは短いCLAUDE.mdに残し、両方が読み込まれるようclaude-md-and-agents-mdを設定します。値しないなら、AGENTS.mdにマージしてCLAUDE.mdを削除します。
ドキュメントでは、CLAUDE.md を残さざるを得ない repo 向けに次の共有パターンも提案されています。
@AGENTS.md
# Claude-specific
- Use the `Bash` tool for git; do not call the GitHub MCP for pushes.Claude はまず import を読み、次に Claude 専用の行を読みます。
他のツールが読むもの
AGENTS.md に統一する意味は、1 つのファイルがすべてのエージェントに使えることにあります。各ツールが実際にどう扱うかを、現在のドキュメントからまとめます。
| ツール | ルートの AGENTS.md を読む | サブディレクトリのネストした AGENTS.md | CLAUDE.md を読む | 補足 |
|---|---|---|---|---|
| Claude Code ≥ 2.1.277 | 読む。パス上に CLAUDE.md がない場合(デフォルト) | 読む。そこにあるファイルを読むときにオンデマンドで | 読む。最優先 | 上記の 4 モード。Bedrock / Vertex / Foundry では未対応 |
| OpenAI Codex CLI | 読む | 読む: repo ルートから作業ディレクトリまで下り、ディレクトリごとに最大 1 ファイル。AGENTS.override.md が AGENTS.md より優先 | 読まない | グローバルの ~/.codex/AGENTS.md が先。合計サイズは project_doc_max_bytes(デフォルト 32 KiB)で上限。追加のファイル名は project_doc_fallback_filenames で指定。Codex ドキュメント (opens in a new tab) |
| OpenCode | 読む。現在のディレクトリから上方向に探索 | 独立した仕組みはない。opencode.json の instructions 配列を使う | 読む。ただし AGENTS.md がない場合のフォールバックのみ(無効化可能) | グローバルの ~/.config/opencode/AGENTS.md。/init で AGENTS.md を作成または更新。OpenCode ドキュメント (opens in a new tab) |
| Cursor | 読む | 読む。そのディレクトリと配下に適用され、より具体的なものが優先 | ドキュメントに記載なし | 「.cursor/rules のシンプルな代替」として位置づけ。Cursor ドキュメント (opens in a new tab) |
共有ファイルにとっての帰結は 2 つあります。
- Codex は
CLAUDE.mdをまったく読みません。 そこにしかない内容は Codex には見えません。同じ repo で Codex と Claude Code を 2 つのファイルで使っていたなら、両方が見るのはAGENTS.mdだけです。 - OpenCode が
CLAUDE.mdを読むのはAGENTS.mdがないときだけで、Claude Code のデフォルトとちょうど鏡写しです。両方のファイルがある repo では、Claude Code はCLAUDE.mdを、OpenCode はAGENTS.mdを読みます。2 つのファイルの内容が食い違っていると、2 つのエージェントはどちらも何も告げずに別々のルールに従います。
したがって、複数ツールで使う repo の安全な最終形はこうです。共通ルールを書いた AGENTS.md を 1 つ置き、Claude 専用ルールがなければ CLAUDE.md は置かない。あるなら、@AGENTS.md で始まる CLAUDE.md を置く。
状況別のおすすめ構成
| 状況 | やること |
|---|---|
| 新規 repo、Claude Code のみ | どちらのファイルでも動きます。AGENTS.md なら他ツールへの道も残ります。なお /init は CLAUDE.md を生成し、CLAUDE_CODE_NEW_INIT=1 を付けると既存の AGENTS.md をその CLAUDE.md に取り込み、以後はそちらが優先されます。AGENTS.md を唯一の情報源にしたいなら、/init を使わないか、生成されたファイルを削除してください |
既存の AGENTS.md に Claude Code を追加 | 何もせず、2 回目のセッション以降に AGENTS.md loaded の行で確認します。~/ を含むどの親ディレクトリにも CLAUDE.md がないことを確かめてください |
既存の CLAUDE.md に Codex や OpenCode を追加 | AGENTS.md にリネームします(Codex は CLAUDE.md を読めません)。Claude 専用ルールが必要なら、@AGENTS.md とそのルールを含む CLAUDE.md を追加します |
| 両ファイルが同じ内容 | CLAUDE.md を削除するか、中身を @AGENTS.md だけにします。内容の重複は編集のずれを生みます |
| 両ファイルが別内容で、両方読ませたい | 各マシンで Project instructions を claude-md-and-agents-md に設定するか、設定なしでも動くよう CLAUDE.md に @AGENTS.md の import を入れます |
個人メモに CLAUDE.local.md を使っている | claude-md-and-agents-md を設定するか、個人メモを ~/.claude/CLAUDE.md に移します。こちらは AGENTS.md をブロックしません |
| Bedrock / Vertex / Foundry | AGENTS.md を直接読むことはできません。@AGENTS.md を含む CLAUDE.md を残してください |
トラブルシューティング: AGENTS.md が読み込まれない
上から順に確認してください。いずれも上で再現したか、ドキュメントに原因として明記されているものです。
claude --versionを実行します。 2.1.277 以降が必要です。古ければclaude updateで更新してください。- すべての親ディレクトリで
CLAUDE.md、.claude/CLAUDE.md、CLAUDE.local.mdを探します:
d="$PWD"; while [ "$d" != "/" ]; do for f in CLAUDE.md .claude/CLAUDE.md CLAUDE.local.md; do [ -f "$d/$f" ] && echo "blocks AGENTS.md: $d/$f"; done; d=$(dirname "$d"); done~/.claude/CLAUDE.md 以外がヒットしたら、claude-md-and-agents-md に切り替えない限り Claude はそのファイルを読みます。
- アップグレード直後なら 2 つ目のセッションを開始します。 私の検証では 3 回目の実行で初めて読み込まれました。
/configを開き、Project instructions がclaude-mdやmanaged-onlyになっていないことを確認します。設定自体が表示されない場合、そのセッションの種類ではAGENTS.mdを読めません。@AGENTS.mdの import を使ってください。- 確認に
/memoryや/contextを頼らないでください。 直接読み込まれたAGENTS.mdはそこには表示されません。AGENTS.md loadedの行を探すか、プロジェクト指示を引用するよう Claude に頼んでください。
FAQ
Claude Code はデフォルトで AGENTS.md を読みますか?
はい、v2.1.277 以降は読みます。ただし、作業ディレクトリとそのすべての親ディレクトリに CLAUDE.md、.claude/CLAUDE.md、CLAUDE.local.md がない場合に限ります。いずれかが存在すれば Claude Code はそちらを読み、Project instructions を claude-md-and-agents-md に設定しない限り AGENTS.md を無視します。
CLAUDE.md と AGENTS.md の両方を読ませることはできますか?
できます。/config で Project instructions を claude-md-and-agents-md に設定するか、~/.claude/settings.json の pluginConfigs → agents-md@builtin → options.instructionFiles に同じ値を書きます。各ディレクトリの CLAUDE.md が先に、次にその AGENTS.md が読み込まれます。CLAUDE.md から import 済みのファイルは二重には読まれません。
Claude Code を更新した直後に AGENTS.md が読み込まれないのはなぜですか?
インストールまたはアップグレード後の最初のセッションでは AGENTS.md を読めず、対応はそれ以降のセッションから始まります。claude -p での検証では、3 回目の実行で初めて読み込まれました。使い捨てのセッションを開始して閉じてから、もう一度確認してください。
すでに AGENTS.md があるなら CLAUDE.md は削除すべきですか?
CLAUDE.md の中身が @AGENTS.md だけで、チームに Bedrock、Vertex、Foundry のユーザーがいなければ削除できます。Claude 固有のルールが書かれているなら残し、1 行目に @AGENTS.md を置いて、どの環境でも両方が読み込まれるようにしてください。
Codex は CLAUDE.md を読みますか?
読みません。Codex は repo ルートから作業ディレクトリまで、ディレクトリごとに AGENTS.override.md または AGENTS.md を読み、さらに ~/.codex/AGENTS.md も読みます。フォールバックのファイル名は config.toml で設定できます。CLAUDE.md にしかない内容は Codex には見えません。
関連ガイド
- Codexの使い方ガイド: 始め方、5つのTips、Best Practicesまで
- OpenCodeの使い方ガイド: 始め方、実践Tips、Oh My OpenCodeとの使い分け
- Claude Code DesktopでBypass permissionsを有効にする方法
- Claude Code Routinesとは?AIエージェントの定期実行と自動化を理解する
- DeepSeek Harness の使い方:インストール、初期設定、最初のエージェント実行まで