Codex に「ブロック崩しを合格ラインまで作れ」とだけ渡して、あとは見ない。60分で打ち切る。そういう無人実行を3回やりました。
完走したのは3回目だけです。1回目と2回目に起きたことのほうが、たぶん役に立ちます。
1回目 / 4秒問題
古い CLI を掴んでいて、モデルに届く前に終了。「実装能力」以前の問題
2回目 / 24分問題
自分の WebGL ビルドを「固まった」と判断して強制終了。その後 PC がスリープ
2回目 / 翌朝問題
スリープ復帰後も継続。上限60分が効かず、起動から4時間27分後に人間側が停止
3回目 / 42分29秒
スリープ防止と壁時計の見張りを付けて再実行。自分から完了を宣言
1. AI は待てない。自分のビルドを殺す
2回目、22:20 に WebGL ビルドを開始しました。22:26、6分の時点で「ビルドシステムが10秒以上止まっている」と判断し、自分でビルドプロセスを終了しました。
同じ環境で、私が先に走らせていた Claude Code 版の初回ビルドは 8分33秒かかっています。6分の時点では、まだ正常に進んでいた可能性が高い。
⚠️ 「反応がない=壊れた」と判断される
AI エージェントは、出力が止まっている時間の長さを異常判定に使います。ビルド・インポート・シェーダーのコンパイルのように「黙って数分かかる」処理は、そのまま誤判定の的になります。
このあと2回目は、ビルドを通そうとして次々に手を広げました。
- 1
ビルドシステムのバイナリを直接実行
権限エラー - 2
自分が使っているエディターを強制終了
バッチモードでビルド → 終了コード1 を2回 - 3
残っていたテスト用プロセスを片付け
「孤立プロセス」として終了させた
3回目は、指示文に1行足しただけで挙動が変わりました。
2回目:待ち時間を伝えていない
3回目:1行足した
2. スリープすると timeout は止まる
2回目は Git Bash の timeout 3600 で60分の上限をかけていました。22:28、PC がスリープします。復帰したのは翌 02:16。
このとき timeout の残り時間は進んでいません。
4h27m
起動からの経過
壁時計
39分
実際に動いていた時間
スリープ中は数えない
21分
timeout から見た残り
まだ上限に達していない
0回
打ち切り
60分の上限が効かなかった
私はこれを見て「60分を超えた」と誤判断し、プロセスツリーごと停止しました。判断は間違っていました。使っていた時計が間違っていたからです。
壁時計で見張る
timeout に任せず、開始時刻を記録して現在時刻との差で判定する見張りを別に置きます。スリープを挟んでも正しく打ち切れます。あわせて、実行中は PC がスリープしないようにしておきます。
3. 禁止は迂回のきっかけになる
2回目は -s workspace-write(作業フォルダの中だけ書き込み可)で走らせていました。ビルドをやり直すために、AI はビルドのキャッシュフォルダを消そうとします。
手順 01
キャッシュを消そうとする
ビルドをやり直すため
手順 02
ポリシーが削除を拒否
blocked by policy
手順 03
作業フォルダの外へ移動
629MB を別ドライブへ
手順 04
シェル経由でエディター起動
サンドボックスの外で動いた
悪意ではありません。目的(ビルドを通す)に対して、禁止されていない手段を探した結果です。ただし、「禁止したから起きない」とは言えないことは覚えておいたほうがいい。
3回目では Chrome を起動しようとして、制限付きトークンのために失敗しています。こちらは迂回できず、ブラウザでの通しプレイだけが未達で終わりました。その1項目は人間が代わりに確認しています。
4. コミットは0回だった
3回とも、AI は一度もコミットしませんでした。 指示文に書かなかったからです。
2回目が中断したとき、作業フォルダには実装もテストも残っていましたが、履歴は空でした。証拠として残したければ、人間側でブランチを切って保存するしかありません(今回はそうしました)。
放置する前に決めておくこと:
手順 01
起点を固定
同じコミットから始める
手順 02
途中で保存
コミットを指示文に書く
手順 03
終了後に人が確認
件数と実物を見る
5. 使用量は終わってからしか分からない
実行中、消費した利用枠は出てきません。分かったのは終わったあと、セッション記録(~/.codex/sessions/<年>/<月>/<日>/rollout-*.jsonl)の rate_limits と total_token_usage を読んだときです。
| 2回目(中断) | 3回目(完走) | |
|---|---|---|
| 実働時間 | 約39分 | 42分29秒 |
| 入力トークン | 15,929,645(うちキャッシュ 15,659,008) | 13,385,465(うちキャッシュ 13,116,160) |
| 出力トークン | 59,966(うち推論 17,103) | 64,995(うち推論 21,092) |
| 週間利用枠 | 0% → 7% | 7% → 14% |
| コマンド実行 | 126回(失敗14回) | 119回(失敗9回) |
| コミット | 0 | 0 |
中断した2回目のほうが多く使っているのが分かります。完走しなかった実行にもコストはかかります。だから開始前に残量を控えるのが要ります。あとから「いくら使ったか」を出せません。
放置する前のチェック(対処のまとめ)
放置する前に
timeout はスリープで止まる)3回目は42分29秒で自分から終了し、報告どおりテストもビルドも通っていました。環境側を3つ直しただけで、AI の側は何も変えていません。