AGENTS.mdは、AIコーディングエージェント向けの運用ドキュメントです。このツリーでどう働くかを伝えます。地図はどこか、どのコマンドを走らせるか、このリポジトリのgitのやり方、常にやること・先に聞くこと・決してやらないこと。
もう一つのREADMEではありません。READMEは人にプロジェクトを紹介します。スタイルガイドでもありません。コーディング標準はすでにリンタとコードベースが持っています。
フォーマットはプレーンなMarkdownです。必須スキーマもYAMLフロントマターもJSON設定もありません。オープンな約束はagents.mdにあります。ファイル名はAGENTS.md。編集中のファイルにいちばん近いものが勝ち、列挙したコマンドは実行され、チャットのメッセージは常にファイルを上書きします。
2025年12月、このフォーマットはLinux Foundation傘下のdirected fundであるAgentic AI Foundation (AAIF)に寄贈されました。AnthropicのModel Context Protocolと並びます。一つのファイル、多くのエージェント。
ルートは約200行を目安にします。地図、gitルール、境界を書くには足りる長さです。毎セッション読み込める短さでもあります。
ファイルに入れるもの
ブロックは五つです。この順を保ちます。
概要 — このツリーが何か。数文で。
地図と、続きを読む場所 — 重要なフォルダと、耐久知識のインデックスへのポインタ。指す。wikiを貼り付けない。
コマンド — 正確なinstall、test、lintコマンド。書けば、エージェントは試します。
Gitワークフロー — このリポジトリの出荷の仕方。ブランチ名、プルリクエストかmainへのpushか、命令形のコミットメッセージ。Gitはリポジトリ固有です。コーディング標準とは違います。
境界 — Always do。Ask first。Never do。
例: ルートのAGENTS.md
架空の請求モノレポです。名前は例示です。ブロックは残してください。
リポジトリルート — 架空の請求モノレポ
# AGENTS.md
## Project overview
Billing platform monorepo: a Node API (`apps/api`), a React dashboard (`apps/web`), and shared libraries under `packages/`. Root rules apply unless a nested AGENTS.md says otherwise.
## Map
- `apps/api` — invoice and payment API
- `apps/web` — operator dashboard
- `packages/` — shared types and clients
- `infra/` — Terraform for staging and production
- Durable product knowledge: `docs/INDEX.md`. Open that map when you need a service, runbook, or decision.
## Commands
pnpm install
pnpm test
pnpm lint
pnpm --filter @acme/api test
docker compose up -d # before API integration tests
## Git workflow
- Open a pull request against `main`. Do not push commits to `main`.
- Branch names: `feat/<short-name>` or `fix/<short-name>`
- Commit messages: imperative mood, complete sentences.
## Boundaries
### Always do
- Run `pnpm test` and `pnpm lint` before you consider a change done.
- Read `docs/INDEX.md` before inventing a service name or a runbook step.
### Ask first
- Changing auth, billing webhooks, or CI workflows.
- Adding a nested `AGENTS.md`.
- Touching `infra/` production modules.
### Never do
- Commit `.env`, API keys, or customer payment data.
- Invent an undocumented payment provider.
ネストしたファイル
編集中のファイルにいちばん近いAGENTS.mdが勝ちます。ネストは意図的に稀です。ほとんどのサブディレクトリはルートに従います。カバレッジのために別コピーをネストしないでください。
そのサブツリーがルートのルールを実際に破るときだけ、ネストファイルを足します。ネストファイルは差分です。pnpmもgitもnever-commit-secretsも繰り返しません。
infra/AGENTS.md — 差分であり、ルートの二冊目ではない
# AGENTS.md — infra/
Root git, pnpm, and Never-secrets still apply. This file is only the delta.
## Ask first
- `terraform plan` or `terraform apply` against staging.
## Never do
- Run `terraform apply` against the production workspace.
- Edit Terraform state by hand.
入れないもの
リンタが強制できるスタイル。リンタに置きます。
人向けのCONTRIBUTING.md。ただしエージェントが実行するgitの行は除きます。それが運用ルールなら、AGENTS.mdにも書きます。
ツールがまだCLAUDE.mdを読むなら、そのファイルをAGENTS.mdへのポインタにしてください。運用ルールをコピーしないでください。
耐久するプロダクト知識 — 人、サービス、決定 — は知識の地図に属し、運用ファイルには属しません。AIエージェントのための知識の整理を参照してください。
長い手順はリンクしたドキュメントかスキルへ。AGENTS.mdは一行で足ります。XならYを読む。スキルをファイルの主軸にしないでください。
生きたファイルにする
エージェントが同じ間違いを繰り返したら、境界の一行を足します。古くなった行は消します。200行の予算は、膨張に気づくためのものです。
まとめ
ルートに約200行のAGENTS.mdを書いてください。地図、gitルール、Always / Ask first / Neverを持たせます。サブディレクトリがそれらのルールを実際に破るときだけ、別ファイルをネストします。チャットは引き続きファイルを上書きします。
Dylan Engelbrechtはエージェントの実践が変わるたびにこのナレッジハブを更新します。これらの記事を生きた参照として扱ってください。今の実践であり、凍結されたスナップショットではありません。