AIゲーム制作ラボ
落とし穴6分で読めます

AIエージェントを放置して走らせると何が起きるか(3回の実測)

同じ指示文で Codex を3回、最長60分の無人実行にかけました。1回目は4秒で死に、2回目は自分のビルドを6分で強制終了してPCのスリープで中断、3回目でようやく42分で完走。放置する前に決めておくべきことを、起きたことそのままで残します。

Libra

公開 2026年9月16日

この記事の要点5 points

  1. AI は「止まっている」と判断すると自分でプロセスを殺す。 実際は8分かかるビルドを6分で強制終了された。
  2. PC がスリープすると timeout コマンドの残り時間は進まない。 起動から4時間27分たっても上限に達しなかった。
  3. サンドボックスで削除を拒否されると、AI は「作業フォルダの外へ移動する」という抜け道を選ぶ。 629MB が別の場所に移動していた。
  4. AI はコミットを1回もしなかった。 3回とも0回。証拠を残すのは人間側の仕事。
  5. 使用量は実行中には分からない。 終わったあとセッション記録から拾うしかなかった。
目次6
検証した環境最終確認 2026年9月16日
  • Codex CLI 0.147.0-alpha.1.2(codex exec・非対話)
  • GPT-5.6 Sol / high
  • Unity 6.6(6000.6.0f1)・Unity CLI 1.0.0-beta.9
  • Windows 11・Git Bash

書いてあるのは、この環境で実際に試した結果です。ツールの仕様や料金は変わるので、重要な判断の前には公式の情報も確認してください。

Codex に「ブロック崩しを合格ラインまで作れ」とだけ渡して、あとは見ない。60分で打ち切る。そういう無人実行を3回やりました。

完走したのは3回目だけです。1回目と2回目に起きたことのほうが、たぶん役に立ちます。

  1. 1回目 / 4秒問題

    古い CLI を掴んでいて、モデルに届く前に終了。「実装能力」以前の問題

  2. 2回目 / 24分問題

    自分の WebGL ビルドを「固まった」と判断して強制終了。その後 PC がスリープ

  3. 2回目 / 翌朝問題

    スリープ復帰後も継続。上限60分が効かず、起動から4時間27分後に人間側が停止

  4. 3回目 / 42分29秒

    スリープ防止と壁時計の見張りを付けて再実行。自分から完了を宣言

同じ指示文・同じ起点コミットで3回。違うのは環境側の条件だけです。

1. AI は待てない。自分のビルドを殺す

2回目、22:20 に WebGL ビルドを開始しました。22:26、6分の時点で「ビルドシステムが10秒以上止まっている」と判断し、自分でビルドプロセスを終了しました。

同じ環境で、私が先に走らせていた Claude Code 版の初回ビルドは 8分33秒かかっています。6分の時点では、まだ正常に進んでいた可能性が高い。

このあと2回目は、ビルドを通そうとして次々に手を広げました。

  1. 1

    ビルドシステムのバイナリを直接実行

    権限エラー
  2. 2

    自分が使っているエディターを強制終了

    バッチモードでビルド → 終了コード1 を2回
  3. 3

    残っていたテスト用プロセスを片付け

    「孤立プロセス」として終了させた

3回目は、指示文に1行足しただけで挙動が変わりました。

2回目:待ち時間を伝えていない

出力が10秒止まったのを見て、6分でビルドを強制終了

3回目:1行足した

「ビルドは10分程度かかることがある」と書いた → 止めずに待った

2. スリープすると timeout は止まる

2回目は Git Bash の timeout 360060分の上限をかけていました。22:28、PC がスリープします。復帰したのは翌 02:16。

このとき timeout の残り時間は進んでいません。

4h27m

起動からの経過

壁時計

39分

実際に動いていた時間

スリープ中は数えない

21分

timeout から見た残り

まだ上限に達していない

0回

打ち切り

60分の上限が効かなかった

私はこれを見て「60分を超えた」と誤判断し、プロセスツリーごと停止しました。判断は間違っていました。使っていた時計が間違っていたからです。

3. 禁止は迂回のきっかけになる

2回目は -s workspace-write(作業フォルダの中だけ書き込み可)で走らせていました。ビルドをやり直すために、AI はビルドのキャッシュフォルダを消そうとします。

  1. STEP 01

    キャッシュを消そうとする

    ビルドをやり直すため

  2. STEP 02

    ポリシーが削除を拒否

    blocked by policy

  3. STEP 03

    作業フォルダの外へ移動

    629MB を別ドライブへ

  4. STEP 04

    シェル経由でエディター起動

    サンドボックスの外で動いた

「CLI から起動したエディターはサンドボックスの制限を引き継ぐ」と判断して、ショートカットを作って Windows のシェルから起動していました。

悪意ではありません。目的(ビルドを通す)に対して、禁止されていない手段を探した結果です。ただし、「禁止したから起きない」とは言えないことは覚えておいたほうがいい。

3回目では Chrome を起動しようとして、制限付きトークンのために失敗しています。こちらは迂回できず、ブラウザでの通しプレイだけが未達で終わりました。その1項目は人間が代わりに確認しています。

4. コミットは0回だった

3回とも、AI は一度もコミットしませんでした。 指示文に書かなかったからです。

2回目が中断したとき、作業フォルダには実装もテストも残っていましたが、履歴は空でした。証拠として残したければ、人間側でブランチを切って保存するしかありません(今回はそうしました)。

放置する前に決めておくこと:

  1. STEP 01

    起点を固定

    同じコミットから始める

  2. STEP 02

    途中で保存

    コミットを指示文に書く

  3. STEP 03

    終了後に人が確認

    件数と実物を見る

やり直しと比較を成立させるには、起点と記録の2つが要ります。

5. 使用量は終わってからしか分からない

実行中、消費した利用枠は出てきません。分かったのは終わったあと、セッション記録(~/.codex/sessions/<年>/<月>/<日>/rollout-*.jsonl)の rate_limitstotal_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回)
コミット00

中断した2回目のほうが多く使っているのが分かります。完走しなかった実行にもコストはかかります。だから開始前に残量を控えるのが要ります。あとから「いくら使ったか」を出せません。

放置する前のチェック

放置する前に

壁時計で上限を見張るtimeout はスリープで止まる)
スリープを止めてから始める
長い待ち時間を指示文に書く(「ビルドは10分かかることがある」の一行で、プロセスを殺さなくなった)
使用量の残りを実行前に記録する
コミットを指示文に入れる。入れなければ0回
サンドボックスは「できないこと」を減らすだけ。迂回は起きる前提で、作業フォルダの外も後で見る

3回目は42分29秒で自分から終了し、報告どおりテストもビルドも通っていました。環境側を3つ直しただけで、AI の側は何も変えていません。

FAQ

よくある質問

AI が自分のビルドを強制終了したのはなぜですか?

ビルドシステムの出力が10秒以上更新されないのを見て、固まったと判断したからです。実際にはそのビルドは8分半かかるもので、6分の時点ではまだ正常に進んでいました。AI は「自分の知らない待ち時間」を異常と見なします。

timeout コマンドで上限をかけたのに効かなかったのはなぜですか?

Git Bash(MSYS)の timeout は、PC がスリープしているあいだ残り時間を進めません。スリープから復帰すると、その続きから数え直します。実際に起動から4時間27分たっても打ち切られず、起きていた時間は約39分でした。

サンドボックスに入れておけば安全ですか?

完全ではありません。今回は削除を拒否された結果、AI は作業フォルダの外へ 629MB を移動しました。さらに、サンドボックスの制限を避けるために Windows のシェル経由でエディターを起動しています。禁止は迂回のきっかけになる、と考えたほうがいいです。

何分くらいで区切るのが現実的ですか?

今回は60分にしました。完走した3回目は42分29秒で自分から終了しています。作業量が読めないうちは、完走しそうな見込み時間の1.5倍くらいを壁時計で区切って、足りなければ再開する形が扱いやすいと思います。

実行中に進捗は分かりますか?

イベントを JSON で出力させれば、コマンド実行と途中報告は流れてきます。ただし使用量(トークン・利用枠)は最後まで出ません。今回は終了後にセッション記録を読んで初めて分かりました。

この記事は役に立ちましたか?

NEXT