Study Notes / 2026 ・ No.05

AGENTS.md覚書

AI に渡す「このリポジトリの約束ごと」

公開

この回で答えること

Q1AGENTS.md とは何なのか Q2どんな場面で使ったほうがいいのか Q3どう書けばいいのか(実例つき) Q4AI がもっと賢くなったら、要らなくなるのか

Q4 の結論を先に言うと、「書く量は減る。なくなりはしない」です

Codex、Claude Code、Copilot、Cursor。コーディングエージェントを使い始めると、
リポジトリに AGENTS.md というファイルを見かけるようになります。
何のためのファイルで、どう書けば効くのかをまとめます。

一

AGENTS.md とは ── Q1 の答え

CORE

AGENTS.md は、コーディングエージェントのための README です。リポジトリのいちばん上に置く、ただの Markdown ファイル。決まった書式も必須の項目もありません。エージェントは作業を始めるときにこれを読み、ビルドやテストのやり方、守るべき約束を知ります。

2025年8月に OpenAI が公開した形式で、Amp、Google の Jules、Cursor、Factory などと一緒にまとめられました。同じ年の12月には、Linux Foundation のもとで発足した Agentic AI Foundation(AAIF)に、第1回で触れた MCP などと並んで寄贈されています。特定の会社の持ち物ではない、共通の形式です。公式サイトによると、使っているオープンソースのプロジェクトは6万以上、読めるエージェントや IDE は30を超えます。

ツール自分の設定ファイルAGENTS.md の扱い
OpenAI CodexAGENTS.md本家。ホームの ~/.codex/AGENTS.md と、リポジトリのルートから作業フォルダまでの AGENTS.md をつなげて読む(合計は既定で32KiBまで)
Claude CodeCLAUDE.mdCLAUDE.md がなければ AGENTS.md を代わりに読む(v2.1.277 以降)。CLAUDE.md の中に @AGENTS.md と書いて取り込むこともできる
GitHub Copilot
(coding agent)
.github/copilot-instructions.md2025年8月から AGENTS.md にも対応
Cursor・Jules・Devin・Zed・Aider など公式サイトの対応一覧に掲載

README との違いは、読み手です。README は人のためのもので、何のプロジェクトか、どう使うかを書きます。AGENTS.md はエージェントが作業するためのもので、どのコマンドで確かめるか、何をしてはいけないかを書きます。人向けの説明を細かい指示で散らかさずに、置き場所を分けられる、というのが公式の説明です。

二

なぜ要るのか

WHY

エージェントは、毎回「初日の新人」です。第1回で書いたとおり、モデルが一度に見られるのはコンテキストの中身だけ。セッションが変わると、前回あなたが口で注意したことは消えています。

  • 推測できないことがある ── 「この HTML は生成物だから直接いじらない」「公開は人が確認してから」といったことは、コードをいくら読んでも分かりません
  • 推測にはお金と時間がかかる ── テストの流し方を探して、あちこちのファイルを開き、試しては失敗する。書いてあれば1行で済みます
  • 言う人によって指示がぶれる ── チームの誰がどのエージェントを使っても同じ約束で動くよう、口頭の注意をファイルに移します

人間の新人に渡すオンボーディング資料と同じ役目、と考えると分かりやすいでしょう。違うのは、相手が毎回かならず全文を読み、書いてあることにかなり素直に従うことです。だからこそ、短く、正確に書く必要があります。

三

どんな場面で使うか ── Q2 の答え

WHEN

置いたほうがいいのは、エージェントに繰り返し作業させるリポジトリ、とくに「コードを読んでも分からない約束」があるリポジトリです。1回きりの小さな作業なら、依頼の文面に書けば足ります。

場面向き理由
ビルドやテストの手順が独特◎独自スクリプト、Docker 経由、環境変数が要るなど。探させると時間とトークンを使う
触ってはいけない場所がある◎生成物、外部のコード、本番の設定。一度壊されると損害が大きい
業務システムの開発◎独自の命名規約や、変更に承認が要るテーブル。業務のルールはコードに書かれていない
チームで複数のエージェントを使う◎1つのファイルで、どのツールにも同じ約束を伝えられる
モノレポ○フロントと API で流儀が違っても、フォルダごとに AGENTS.md を置ける
定番の構成の小さなアプリ△定番どおりなら、エージェントは自分で分かる
使い捨てのスクリプト×書く手間のほうが大きい

目安は、「同じ注意を、エージェントに2回言ったかどうか」です。2回言ったことは、3回目もきっと言うことになります。その時点で AGENTS.md に1行足すのが、いちばん無駄のない育て方です。

四

どう書くか ── Q3 の答え

HOW

原則は三つです。短く、具体的に、そしてコードから読み取れないことだけを書く。何を書くかは、「エージェントが自分で分かるか」と「間違えたときの損害」の二つで決めると迷いません。

書くか、書かないか

仕組みで止める CI・フック・ブランチ保護 書いても強制はできない 必ず書く 禁止事項と、代わりの手順 生成物・本番・承認の要る所 書かない プロジェクトの概要 言語・構成・一般論 短く書く コマンド・命名の流儀 探す手間を省くため 損害 大 損害 小 エージェントが自分で分かる コードを読んでも分からない

右上だけは必ず書く。左上は、書くだけでなく仕組みで止める

  • コマンドは、そのまま実行できる形で ── 「テストする」ではなく npm test -- --run。エージェントは書かれたコマンドを実際に流します
  • 理由を一言添える ── 「生成物なので直接編集しない(元の build.py を直す)」のように。理由があると、書いていない似た場面にも正しく応用してくれます
  • 禁止は、代わりの手順とセットで ── 「〜しない」だけだと、エージェントは別の抜け道を探します
  • 長くしない ── Claude Code の公式ドキュメントは CLAUDE.md を200行以内を目安にしています。Codex は読み込む合計を既定で32KiBに制限。長いほど従われにくくなり、そのぶん毎回のコストもかかります
  • 秘密は書かない ── パスワードや API キーはリポジトリに入れない。ファイルは全員に共有されます
  • 絶対に守らせたいことは、仕組みで ── AGENTS.md はあくまで「文脈」で、強制力はありません。main に直接入れさせないならブランチ保護、書式を崩させないなら CI やフック(Claude Code の hooks など)で止めます

フォルダごとに置くと、近いものが優先

repo/ ├─ AGENTS.md ├─ web/ │ ├─ AGENTS.md │ └─ src/ └─ api/ └─ … ← ここで作業 web/src/ で作業すると 1 repo/AGENTS.md 全体の約束 2 web/AGENTS.md web だけの約束 3 あなたの依頼 いちばん強い 下にあるほど優先(近いものが勝つ)

Codex はルートから作業フォルダへ順につなげて読み、後ろ(近い方)が上書きの役になる

モノレポでは、サブフォルダにも AGENTS.md を置けます。公式サイトの説明は「いちばん近いファイルが優先」、そして「依頼の文面はすべてに優先」。OpenAI 自身のリポジトリには、AGENTS.md が88個あるそうです。

Claude Code と併用するときは、CLAUDE.md がなければ AGENTS.md がそのまま読まれます。両方置きたいなら、CLAUDE.md の先頭に1行 @AGENTS.md と書いて取り込み、その下に Claude Code だけへの指示を足すのが公式のやり方です。シンボリックリンク(ln -s AGENTS.md CLAUDE.md)でもいいのですが、Windows で clone する人がいるなら、取り込みの方が安全です。

# CLAUDE.md @AGENTS.md # ここから下は Claude Code だけへの指示 - 大きな変更の前に、計画を箇条書きで見せてから始める
五

実例:このサイトの AGENTS.md

例として、このサイト(kiji-site)に置くとしたら、という AGENTS.md を書いてみます。3言語のページを Python の1ファイルで生成して、Cloudflare Pages で公開している小さなリポジトリです。このブログを AI と一緒に作ってきたなかで、毎回説明していたことと一度やりかけた失敗だけを残しました。

# AGENTS.md — kiji-site 骐霁科技(KIJI Info-Tech)の会社サイト。日本語・中国語・英語の3言語。 ## 構成 - 全ページは build.py が生成する。ルートの *.html は生成物なので直接編集しない (直したいときは build.py の該当箇所を直して、ビルドし直す) - 画像は blog-img/<記事スラッグ>/ に、1600・960幅の webp と jpg で置く ## コマンド - ビルド: python3 build.py - 公開用の出力: ./build.sh(dist/ に書き出す) - 表示確認: python3 -m http.server 8765 で開き、幅1280pxと390pxの両方で見る ## 記事を足すとき - POSTS・FILE(3言語)・POST_CATEGORY に1行ずつ足す (POST_CATEGORY を忘れるとビルドが止まる) - 一覧のカードは新しい順。先頭に足す - 図の SVG はビルド後に getBBox で検査する (文字のはみ出し・重なり。英語版で壊れやすい) ## 守ること - 写真は再利用が許されたものだけ(CC BY・BY-SA・CC0 など)。 作者とライセンスをキャプションに書く - 料金・時刻・バージョンは一次情報で確かめ、「2026年9月時点」のように時点を書く - git push はしない。公開は人が確認してから行う - コミットメッセージは日本語で、要点を箇条書き
書いたことなぜ書いたか
*.html は生成物見た目の修正を頼むと、つい HTML を直接直してしまう。次のビルドで消える
コマンドと確認の幅探させない。どの画面幅で見るかまで決めておく
記事を足す手順3か所の変更をセットで覚えさせる。1つ忘れるとビルドが止まる
図の検査英語版でラベルがはみ出す事故が、実際に2回あった
写真のライセンスネットで見つけた画像を拾ってこないように
push しない公開前に人の目を通すため。取り返しのつかない操作は人が行う

逆に、書いていないことも大事です。「Python で書かれている」「blog.html は記事の一覧」といったプロジェクトの紹介は入れていません。ファイルを開けば分かることは、エージェントが自分で読みます。30行ほどのこのファイルは、次の章で見る研究の結果とも合う大きさです。

六

本当に効くのか ── 研究の結果

DATA

研究はまだ少なく、結果も割れています。ただ向いている方向は同じで、「人が書いた、短い、コードから分からないことだけの AGENTS.md」なら効く見込みがあり、それ以外は効かないか、かえって邪魔になる、というものです。

研究調べたもの結果
Lulla ほか
(2026年1月)
10リポジトリ・124件のプルリクエストAGENTS.md があると、実行時間の中央値が28.64%短く、出力トークンが16.58%少ない。完了率は同程度
Gloaguen ほか
ETH チューリッヒ
(2026年2月)
AGENTbench 138件・SWE-bench Lite 300件。Claude Code・Codex・Qwen CodeLLM が自動生成したファイルは成功率を0.5〜2ポイント下げ、人が書いたファイルは平均約4ポイント上げる。どちらも推論コストは20%以上増える。リポジトリの概要説明は役に立たなかった
Khatri
(2026年7月)
Claude Code と Codex CLI、17タスク・288回正しさへの有意な効果は見られず。失敗の原因は「知らなかったこと」ではなく、設計や実装の腕だった

ETH の論文は、効かない理由をこう説明しています。エージェントは書かれた指示に忠実に従い、テストや探索を増やす。その結果、課題そのものが余計に難しくなる。書けば書くほど良くなるわけではないのです。

ここから言えるのは、/init などで自動生成したファイルをそのまま置かないこと。生成したなら、人が読んで、コードを見れば分かる行を削ってから置く。それが今の時点でいちばん確かな使い方です。

3本目は個人の研究者による査読前の論文です。どの数字も、それぞれの実験条件のもとでのものです。

七

賢くなったら要らなくなるか ── Q4 の答え

VIEW

私の答えは、「書く量は減る。なくなりはしない」です。AGENTS.md に書かれがちな中身を三つに分けると、賢さで要らなくなる部分と、賢さでは埋まらない部分がはっきり分かれます。

モデルが賢くなったあと、何が残るか

いま 賢くなったあと 読めば分かる 調べれば分かる 書かれていない意思 要らなくなる 書かれていない意思 ここは残る

幅は分量のイメージ。書かれていない意思の部分は、モデルの賢さでは小さくならない

  • 読めば分かること(プロジェクトの概要、使っている言語、フォルダ構成)── これはもう今の時点で要りません。研究でも役に立たないと出ています
  • 調べれば分かること(ビルドやテストのコマンド、ローカルでの動かし方)── モデルが賢く、速く、安くなるほど、自分で探す手間は気にならなくなります。書く意味は「時間とお金の節約」だけになっていきます
  • どこにも書かれていない意思(なぜこうしたのか、何をしてはいけないのか、誰が決めるのか)── これはコードや履歴をどれだけ読んでも出てきません。賢さの問題ではなく、情報がそこにないからです

人に置き換えると分かりやすいでしょう。どんなに優秀なエンジニアでも、転職した初日に「本番のデータベースは金曜に触らない」「このテーブルの変更は経理の承認が要る」ことは知りません。優秀な人ほど、そういう約束を最初に聞きに来ます。

変わっていくのは、形です。エージェントが自分で気づいたことをメモに残す仕組み(Claude Code の自動メモリなど)、必要なときだけ読み込まれる手順書(スキル)、強制力のある仕組み(フックや CI)がすでにあり、AGENTS.md 1枚に全部を書く必要は減っています。それでも、人が決めたことを、人が書いて、人も AI も同じものを読む場所は残るはずです。README が要らなくならないのと、同じ理由で。

この章は、ここまでの事実をもとにした筆者の見立てです。

結 — 一枚まとめ

  1. AGENTS.md はエージェントのための README。ただの Markdown で、Codex・Copilot・Cursor など30以上のツールが読み、Claude Code も CLAUDE.md がなければ読む。
  2. 使いどころは、エージェントに繰り返し作業させる、コードを読んでも分からない約束があるリポジトリ。同じ注意を2回言ったら書き足す。
  3. 書くのはコマンド、禁止事項と代わりの手順、その理由。短く、人の手で。概要説明や一般論は書かない。
  4. 絶対に守らせたいことは、ブランチ保護・CI・フックで止める。AGENTS.md に強制力はない。
  5. AI が賢くなるほど書く量は減る。それでもコードに書かれていない意思を伝える場所として残る。

参考

AGENTS.md覚書 — 全七章 / 2026.09

← 記事一覧へ