Skip to main content

短い答え

AGENTS.md は Codex 向けのプロジェクト指示ファイルです。リポジトリ構成、コマンド、テスト、コーディングスタイル、コミットルール、共同作業の方針を Codex に伝えます。 これは一時的なタスクではなく、安定したプロジェクトルールのためのファイルです。今回だけの要件は現在の会話に記載してください。

記載する内容

  • 依存関係のインストール、プロジェクトの起動、テストの実行方法
  • よく使う検証コマンド
  • コーディングスタイルと命名規則
  • 安易に変更すべきでないディレクトリ
  • 完了前に必要なチェック
  • コミュニケーションと出力に関するチームの方針

記載しない内容

  • API Key、トークン、パスワード、非公開の認証情報
  • 一時的なタスク指示
  • 長い製品の背景説明
  • リポジトリと関係のない汎用プロンプト
  • 古くなったコマンドとパス

適用範囲と優先順位

Codex は実行開始時に初期の指示チェーンを構築します。起動ディレクトリが読み込み範囲に影響します。
  1. 最初に CODEX_HOME のグローバルルールを読みます。既定の場所は ~/.codex で、空でない AGENTS.override.md を優先し、なければ AGENTS.md を使います。
  2. 次にプロジェクトルート(通常は Git ルート)から現在の作業ディレクトリまで順に調べます。プロジェクトルートが見つからない場合、プロジェクトのルールは現在のディレクトリだけを確認します。
  3. プロジェクト内の各階層では空でないファイルを最大 1 つ使います。優先順は AGENTS.override.md、AGENTS.md、project_doc_fallback_filenames に設定した名前です。
競合する場合は、後から読み込まれる具体的な範囲のルールが優先されます。競合しない親のルールは引き続き適用されます。override は同じディレクトリの通常ファイルを置き換えますが、親の指示をすべて削除するものではありません。

ディレクトリの例

グローバルルールが npm test、リポジトリのルールが lint を要求し、payments の override がテストコマンドを make test-payments に置き換えるとします。repo/services/payments から起動すると、グローバルファイル、リポジトリのファイル、payments の override が読み込まれます。lint は維持され、payments のテストを使い、その階層の通常ファイルはスキップします。隣の search のルールはこの初期チェーンに含まれません。

推奨構成

以下のテンプレートは短く保ち、コマンドをリポジトリに実在するものに置き換えてください。ルールには適用条件と結果の確認方法を書きます。

未適用や競合を確認する

指示を変更したら、対象ディレクトリで新しいセッションを開始し、読み込んだ指示の出典と適用コマンドを Codex に確認します。
  • 作業ディレクトリと CODEX_HOME を確認します。リポジトリルートから起動しても、すべての子ディレクトリの指示を事前に読むわけではありません。
  • 正確なファイル名、空でない内容、同じ階層の AGENTS.override.md を確認します。代替名は project_doc_fallback_filenames への登録が必要です。
  • 長い指示が切り詰められる場合は project_doc_max_bytes を確認します。重複を減らし、重要なルールを先頭に置いてください。
  • 競合時は両方の出典ファイルと適用ディレクトリを特定します。矛盾するルールを各所にコピーするのではなく、該当ディレクトリに限定した例外を書きます。指示ファイルでサンドボックス権限は変更できません。

よくある間違い

  • AGENTS.md を非常に長い汎用プロンプトにすること。
  • ファイルにシークレットを書き込むこと。
  • プロジェクトコマンドが変わっても更新しないこと。
  • AGENTS.md とユーザーレベルの config.toml を混同すること。
  • ルールがあるため差分とテストのレビューは不要だと考えること。

BetterToken について

チームがモデルルーティングの統一に BetterToken を使用する場合でも、AGENTS.md は重要です。API レイヤーはモデルリクエストと使用履歴を扱い、AGENTS.md はプロジェクトの文脈と実行上の規範を扱います。 両方を使用することで、設定の混乱と共同作業のコストを減らせます。

関連ドキュメント

参照