Codex CLI 実行記録 / AGENTS.md

AGENTS.mdの有無で結果は変わるか

あいさつを出す PowerShell スクリプトを、作業フォルダに AGENTS.md を置かない場合と、3行のルールを置いた場合で1回ずつ作らせました。ルールが守られたか、スクリプトを実行して確かめたか、できたファイルが動くかを、実際の出力で並べます。

各条件1回の記録です。AGENTS.md の読み込みの順序などの仕様は公式の説明を参照してください。このPCにはホーム側の設定フォルダにも別の AGENTS.md があり、どちらの実行でも読み込まれています(中身は GitHub のリポジトリの置き場所のルールで、この課題とは関係しません)。

先に答え:ルールを3行書くだけで、確認の手順まで変わりました

自分もこの設定で試すべきか:はい。3行の AGENTS.md で、1行目のコメント、あいさつの書き出し、「実行して出力を確かめる」の3つがすべて守られました。

差が大きかったのは3つ目です。AGENTS.md なしでは作っただけで実行せず、できたファイルは私が手元で実行すると構文エラーになりました。ありでは実行して同じエラーを見つけ、自分で直して終わりました。

記録の条件

項目内容
実行した日2026年11月1日(日本時間 22時台)
CLI の版codex-cli 0.162.0-alpha.17.2(codex --version の出力)
環境Windows 11 Home(日本語)。ChatGPT デスクトップアプリに同梱の codex.exe をターミナルから直接実行
実行の形codex exec(非対話)。ログイン済みの状態をそのまま使い、ログインのし直しはしていない
作業フォルダ課題ごとに新しい空のフォルダを作って使った(フォルダの外は触らせていない)
モデル・推論-m gpt-5.6-luna・low・-s workspace-write
AGENTS.mdあり側の作業フォルダにだけ置いた(下に全文)

課題とコマンド

課題文(2回とも同じ):「あいさつを表示する PowerShell スクリプト greet.ps1 を作ってください。名前を引数で受け取ります。」

あり側に置いた AGENTS.md(全文)

# 作業ルール
- 作るスクリプトの1行目に、必ず `# 編集: ちんあなご編集部` というコメントを書く。
- あいさつの文は、必ず「ようこそ、」で始める。
- スクリプトを作ったら、実行して出力を確かめる。
- 作る前に、これらのルールに従っていることを一文で言う必要はない。
codex exec --skip-git-repo-check --ephemeral -c notify=[] -s workspace-write -m gpt-5.6-luna -c model_reasoning_effort="low" "<課題文>"   (AGENTS.md なしのフォルダ)
codex exec --skip-git-repo-check --ephemeral -c notify=[] -s workspace-write -m gpt-5.6-luna -c model_reasoning_effort="low" "<課題文>"   (AGENTS.md ありのフォルダ)

時間は、Node の spawnSync で codex.exe を起動してから終了するまでの実測(壁時計)です。各条件1回ずつの実行なので、同じ操作をもう一度すると数字は変わります。

出力(抜粋)

AGENTS.md なし:標準エラーの経過(見出しは省略・差分の再表示は省略)

あいさつを表示する PowerShell スクリプト greet.ps1 を作ってください。名前を引数で受け取ります。
codex
`greet.ps1` を作成し、名前を引数で受け取ってあいさつを表示する形にします。
apply patch
patch: completed
<作業フォルダ>\greet.ps1
diff --git a/greet.ps1 b/greet.ps1
new file mode 100644
index 0000000000000000000000000000000000000000..d378ad344b5b20d2ba758801f0919a3b15ba07c2
--- /dev/null
+++ b/greet.ps1
@@ -0,0 +1,6 @@
+param(
+    [Parameter(Mandatory = $true, Position = 0)]
+    [string]$Name
+)
+
+Write-Output "こんにちは、$Name さん!"

(同じ差分の再表示を省略)

codex
[greet.ps1](/<作業フォルダ>/greet.ps1) を作成しました。

実行例:

```powershell
.\greet.ps1 -Name "太郎"
```

出力:

```text
こんにちは、太郎 さん!
```
(同じ差分の再表示を省略)

tokens used
13,938

AGENTS.md あり:標準エラーの経過(見出しは省略・差分の再表示は省略・長い1行は後ろを省略)

あいさつを表示する PowerShell スクリプト greet.ps1 を作ってください。名前を引数で受け取ります。
codex
PowerShell スクリプトを作成し、名前を引数に渡して実行結果を確認します。
apply patch
patch: completed
<作業フォルダ>\greet.ps1
diff --git a/greet.ps1 b/greet.ps1
new file mode 100644
index 0000000000000000000000000000000000000000..2113e3ed86612481df9ba455c6b1c7f9b4729c57
--- /dev/null
+++ b/greet.ps1
@@ -0,0 +1,7 @@
+# 編集: ちんあなご編集部
+param(
+    [Parameter(Mandatory = $true, Position = 0)]
+    [string]$Name
+)
+
+Write-Output "ようこそ、$Name さん!"

exec
"C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command "powershell -NoProfile -ExecutionPolicy Bypass -File .\\greet.ps1 太郎" in <作業フォルダ>
 exited 1 in 264ms:
At <作業フォルダ>\greet.ps1:7 char:14
+ Write-Output "繧医≧縺薙◎縲・Name 縺輔s・・
+              ~~~~~~~~~~~~~~~~~~~
The string is missing the terminator: ".
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : TerminatorExpectedAtEndOfString
 

(同じ差分の再表示を省略)

codex
実行時に Windows PowerShell の文字コード解釈で日本語が崩れたため、スクリプトを UTF-8 BOM 形式に変換してから再実行します。
exec
"C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe" -Command '$p = (Resolve-Path .'"\\greet.ps1).Path; "'$s = [System.IO.File]::ReadAllText($p); [System.IO.File]::WriteAllText($p, $s, (New-Object System.Text…(行の後ろを省略)
 succeeded in 302ms:
ようこそ、太郎 さん!

(同じ差分の再表示を省略)

codex
作成しました:[greet.ps1](<作業フォルダ>/greet.ps1)

実行例:

```powershell
.\greet.ps1 太郎
```

出力:

```text
ようこそ、太郎 さん!
```
(同じ差分の再表示を省略)

tokens used
15,338

Codex の外で、私が実行して確かめた結果

できあがった greet.ps1 を、作業フォルダの中で powershell.exe -NoProfile -ExecutionPolicy Bypass -File ./greet.ps1 太郎 と実行しました(Windows PowerShell の出力を Shift_JIS として読み直しています)。

AGENTS.md なしでできたファイル

cmd: powershell.exe -NoProfile -ExecutionPolicy Bypass -File ./greet.ps1 太郎
exit: 1
seconds: 0.32
--- stdout

--- stderr
発生場所 <作業フォルダ>\greet.ps1:6 文字:14
+ Write-Output "縺薙s縺ォ縺。縺ッ縲・Name 縺輔s・・
+              ~~~~~~~~~~~~~~~~~~~~~~
文字列に終端記号 " がありません。
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : TerminatorExpectedAtEndOfString
 

AGENTS.md ありでできたファイル

cmd: powershell.exe -NoProfile -ExecutionPolicy Bypass -File ./greet.ps1 太郎
exit: 0
seconds: 0.27
--- stdout
ようこそ、太郎 さん!

--- stderr

--- first bytes of greet.ps1 (hex): efbbbf2320e7

ファイルの先頭バイトは、なしが 706172616d28(param()、ありが efbbbf 始まり(BOM つきの UTF-8)でした。

計測した時間と比較

AGENTS.md なしAGENTS.md あり
かかった時間8.0 秒12.6 秒
使ったトークン(画面の表示)13,93815,338
1行目に『# 編集: ちんあなご編集部』なしあり
あいさつの書き出し『こんにちは、』『ようこそ、』(ルールどおり)
スクリプトを実行して確かめたか実行していない実行した(構文エラー→BOM つきに直して再実行)
私の手元での実行構文エラー(終了コード1)『ようこそ、太郎 さん!』(終了コード0)

分かったこと

  • AGENTS.md に書いた3行は、1回の実行で全部守られた。書き出しの文言のような細かい指定も効いた。
  • 『作ったら実行して確かめる』と書いたことで、文字化けによる構文エラーが納品前に見つかった。書かなかった側は、動かないスクリプトを『作成しました』と報告して終わった。
  • トークンと時間は、ありの方が増えた(1,400 トークン・4.6 秒)。実行と直しの分。

向かない場面

  • 『AGENTS.md を書けば必ず守られる』という意味に取ること。今回は短い3行を1回だけ試した。長い規約や、ルール同士がぶつかる場合は試していない。
  • AGENTS.md の代わりに毎回の課題文で伝えること。課題文に毎回書くより、置いておいた方が抜けにくい。
  • 実行して確かめる手順を書かないまま、動作の保証を Codex の『作成しました』に頼ること。

公式ドキュメント

編集:ちんあなご編集部/最終確認:2026年11月1日。実行日:2026年11月1日。使った CLI:codex-cli 0.162.0-alpha.17.2(Windows)。

EDITED & REVIEWED

編集・検証情報

編集責任
運営者 ちんあなご編集部
最終確認
(実際に実行した日)
更新履歴
(新規掲載)

公式情報、実際の操作で確かめたこと、運営者の判断を区別して記載しています。画面や上限は変わる場合があるため、重要な操作の前に公式資料と現在の画面を確認してください。