AIエージェントを一晩放置する前に決めること|止め方・上限・ログ・作業範囲の安全設計
AIエージェントを長時間実行する前に決める最大実行時間、最大試行回数、料金上限、触ってよいファイル、push/deploy禁止、停止条件を整理します。
公開 2026.06.30 / 更新 2026.08.14
この記事のポイント
- 長時間実行は作業範囲、最大時間、最大試行回数、料金上限を先に決める
- 自動修正ループは料金と差分の両方を増やす
- push/deploy/本番反映は禁止または人間確認にする
一晩走らせる前に、作業フォルダを退避する
長時間のAIエージェント実行では、想定外の生成物、ログ、upload更新、未追跡ファイルが増えることがあります。開始前に作業フォルダを外付けSSDなどへコピーしておくと、朝の差分確認で迷ったときに実行前の状態へ戻りやすくなります。
DeepSeekのピーク時間を避ける前に、夜間実行の停止条件を決める
公式Pricingのピーク枠は日本時間10:00-13:00 JST / 15:00-19:00 JSTです。ただし夜間へ移すだけでは、失敗リトライを朝まで回す危険が残ります。DeepSeek公式Pricingを2026年8月14日に確認しました。DeepSeek公式Pricingで案内された新料金の適用開始日時は2026年8月16日16:00 UTC(日本時間2026年8月17日1:00)です。最新状態は利用前に公式Pricingを確認してください。
| 確認観点 | この記事で扱うこと | 詳しく読む |
|---|---|---|
| 時間帯 | 公式PricingのUTC枠を日本時間へ換算する | deepseek-api-peak-time-japan-schedule |
| Hermes | 最大時間と最大試行回数を決める | deepseek-hermes-ai-agent-cost-control |
| バッチ | 即時性の低い処理だけ移す | deepseek-api-cost-optimization-after-price-increase |
DeepSeek料金の補足FAQ
DeepSeekは夜間に回せば安全ですか?
料金面では候補になりますが、失敗時リトライ、ログ通知、生成物の公開範囲、実行上限がない夜間実行は危険です。
一晩の作業は、同じcheckoutで走らせない選択肢もある
Worktreeは、ローカルcheckoutとは別の作業コピーを作り、複数のbranchを並行して扱いやすくします。foregroundの作業を残したままbackgroundのchatやScheduled Taskを進められるのが利点です。ただし、作業コピーが分かれても、AIが触ってよい範囲、秘密情報、外部通信、公開条件、停止条件まで自動で安全になるわけではありません。
| 確認 | 公式Docsから読めること | 運用上の判断 |
|---|---|---|
| 前提 | WorktreeはGit repositoryで使う。非Git projectのScheduled Taskはproject directoryで動く | 開始前にGit repository、root、remote、branchを確認し、非Gitの直接実行と混同しない |
| 並行作業 | 複数の独立chatやbackground worktreeを同じprojectで動かせる | taskごとに目的、対象ファイル、停止条件を分け、同じ成果物を同時に編集しない |
| 開始点 | main / master、feature branch、未commit変更を含むcurrent branchから選べる | 選択前にgit statusとdiffを確認し、ユーザーの未commit変更を持ち込まない |
| checkout状態 | Codexは既定でdetached HEADのworktreeで作業する | branch、commit、作業場所を明示し、通常checkoutと同じ前提でpushしない |
| 移動 | HandoffでLocalとWorktreeの間をchatとcodeごと移動できる | 移動後にpath、branch、diff、生成物、test結果を再確認してから続ける |
Worktreeを使う前の停止条件
- Worktreeをbackupの代わりに扱わず、開始前にrepo、素材、upload、未追跡ファイルの退避を確認する。
- current branchに未commit変更がある状態で開始する場合は、対象と所有者を先に記録し、別taskの変更を混ぜない。
- detached HEADやbranchの状態を確認し、worktree側の完了報告だけでcommit、merge、pushを確定しない。
- Scheduled Taskのbackground worktreeも、通常の作業と同じくsecret、外部通信、権限、最大時間、最大変更量を確認する。
- Handoff後は作業ディレクトリが変わった前提で、AGENTS.md、設定、依存関係、生成先、実行したcheckを再確認する。
- 同じbranchをLocalとWorktreeで同時にcheckoutできないため、branchの所有場所と戻す手順を決めておく。
Codex WorktreeのFAQ
Worktreeなら一晩放置しても安全ですか?
安全とは限りません。Worktreeはcheckoutの衝突を減らす仕組みですが、権限、secret、外部通信、料金、停止条件、diff、test、push前レビューは別に必要です。
Worktreeとbackupは同じですか?
同じではありません。WorktreeはGit作業を分ける仕組みで、退避・復旧のためのbackupや、実行前後の差分保存を置き換えません。
Worktreeの保存・削除・復元をbackupと分ける
| 管理項目 | 公式Docsの現行案内 | 放置実行前の確認 |
|---|---|---|
| 保存先 | Codex-managed worktreeは既定で`$CODEX_HOME/worktrees`に作られ、Settings > WorktreesでWorktree rootを変更できる | `CODEX_HOME`、disk使用量、対象project、保存先のアクセス権を確認し、通常checkoutやbackupと混同しない |
| cleanup | 既定では直近15件を維持し、pinned chat、進行中chat、permanent worktreeは自動削除の対象外。chatをarchiveした時や上限維持時に削除され得る | 削除条件と設定上限を確認し、長期保存が必要な差分はbranch、commit、backup、release artifactへ別途残す |
| snapshot | Codex-managed worktreeを削除する前にsnapshotを保存し、chatを開き直すとrestoreの選択肢が表示される | snapshot復元をGit commitや完全なfilesystem backupと決めつけず、復元後にpath、branch、diff、生成物、secretを再確認する |
| 開始点 | 選択branchのHEADから作り、current branchに未commit変更がある場合はその変更もworktreeへ適用する。既定の作業状態はdetached HEAD | 開始前にgit statusと所有者を記録し、別taskの未commit変更を意図せず持ち込んでいないか確認する |
Handoffと`.worktreeinclude`の適用範囲を確認する
- HandoffはLocalとWorktreeの間でchatとcodeを移し、同じchatを後でworktreeへ戻すと関連付けられたworktreeへ戻す。移動後はpath、branch、diff、生成物、testを再確認する。
- `.gitignore`に入ったfileはHandoffだけでは移らず、local managed worktreeへコピーするにはrepo rootの`.worktreeinclude`で対象patternを指定する。tracked fileは列挙しない。
- `.worktreeinclude`でコピーされるのは一致したignored fileだけで、source symlinkはskipされ、new checkoutに既にあるfileは上書きされない。`.env`やsecret設定を含める時は、値の共有先とアクセス権を先に確認する。
- この`.worktreeinclude`の挙動はlocal ChatGPT desktop appのmanaged worktree向けで、Remote worktreeやCLIで自分が作るGit worktreeへ同じ挙動を推測しない。
- branchをworktreeで作成した後は同じbranchをlocal checkoutで同時にcheckoutできない。localで確認したい時は同じbranchを重ねてcheckoutせず、Handoffまたは別branchを選ぶ。
Codex Worktreesの保存・復元FAQ
Worktreeが自動削除されても、chatは失われますか?
必ずしも失われるとは限りません。公式Docsでは、Codex-managed worktreeを削除する前にsnapshotを保存し、chatを開き直すとrestoreできる場合があります。ただし、snapshotをbackupやcommitの代わりに扱わず、復元後のGit stateと生成物を確認します。
`.worktreeinclude`に`.env`を書けば、どのWorktreeにもコピーされますか?
そうは扱いません。Gitがignoreする対象をlocal managed worktreeへコピーする仕組みで、tracked fileは対象外、source symlinkはskip、既存fileは上書きされず、Remote worktreeやCLIで作るworktreeには同じ挙動を推測できません。
Worktree rootを変えれば、保存や削除の問題は解決しますか?
解決の保証にはなりません。Worktree rootはmanaged worktreeの場所を選ぶ設定です。disk容量、権限、backup、cleanup上限、pinned / in-progress / permanentの扱いを別に確認します。
Worktreeで作ったbranchをlocal checkoutでも使えますか?
同じbranchを同時にcheckoutしないでください。Gitのbranchは一つのworktreeでcheckoutされるため、localへ持ち込みたい時はHandoffを使うか、worktree側で別branchを選びます。
Subagentsはまず読み取り中心の仕事へ分ける
メインの会話を汚さないために、探索、テスト結果の分類、ログの要約、候補比較のようなread-heavyな作業を分けるのが向いています。同じファイルや同じbranchへ複数agentが同時に書き込むと、競合と調整負荷が増えるため、write-heavyな並列化は担当ファイル、所有者、統合方法を先に決めます。
| 確認点 | 公式Docsから分かること | 安全な運用 |
|---|---|---|
| 分割 | 専門化したagentを並列に動かし、結果を親の作業へまとめられる | 目的、対象ファイル、担当、返す要約を1行ずつ指定する |
| 待機 | 親は依頼した結果を待ち、activityや直接のpromptから進捗を管理できる | 全結果を待つのか、partial failureをどう扱うのかを依頼文に書く |
| 権限 | subagentは親のsandbox・permission policyを継承し、権限逃れにはならない | childをpermission bypassやsecret取得の経路にしない |
| 非対話実行 | fresh approvalが必要なactionをnon-interactiveなsubagentが行うと失敗し、親へerrorが返る | approval待ちのretry loopにせず、親で承認するか停止する |
| 設定 | built-in agentに加え、`.codex/agents/`または`~/.codex/agents/`のcustom agentを定義できる | custom agentはname、description、developer_instructionsを確認し、探索・reviewはread-only寄りにする |
| 上限 | `[agents]`でenabled、同時thread数、既定model・reasoning effort、interruptを設定でき、明示指定は既定値より優先される | `agents.max_concurrent_threads_per_session`(旧`agents.max_threads`)と費用・時間上限を先に確認する |
Subagentsを一晩実行へ組み込む前の停止条件
- 最初はread-heavyな探索や検証へ限定し、同じファイルを複数agentへ同時に編集させない。
- 各subagentに作業範囲、禁止事項、期待する要約、親が待つ条件、停止条件を渡す。
- subagentが親のsandbox・permissionを継承することを確認し、childをapprovalやnetworkの回避策にしない。
- non-interactive実行でfresh approvalが必要になったら、失敗を無限retryせず、親で判断するか停止して報告する。
- custom agentのTOMLとdeveloper_instructionsをレビューせず、知らないrepoや設定をそのまま読み込まない。
- 並列数を増やすほどtoken、実行時間、結果の確認量が増えるため、上限を決めて全subagentの報告をdiff、test、build、生成物と照合する。
- subagentの完了報告をcommit、push、deploy、本番反映の承認とは扱わず、公開前の人間レビューを残す。
Codex SubagentsのFAQ
Subagentsを使えば一晩放置しても安全ですか?
安全とは限りません。Subagentsは作業分割とコンテキスト分離の仕組みです。sandbox、permission、料金上限、停止条件、diff、test、生成物、公開前レビューは別に設計します。
複数のSubagentsに同じrepoを編集させてよいですか?
可能な場合でも、同じファイルやbranchの同時編集は競合と調整負荷を増やします。まず読み取り中心に分け、書き込みは担当範囲と統合手順を決めてから行います。
Goal modeの入力と停止・再開を完了条件に結び付ける
| 確認項目 | 公式Docsの現行案内 | 長時間作業での確認 |
|---|---|---|
| goalの入力 | `/goal`の文章が最初のpromptとcompletion criteriaになり、outcome、constraints、definition of doneを明確にする | 作業対象、禁止事項、検証方法、止める条件を開始時に書く。曖昧なら先に`/plan`で整理する |
| desktop app | `/goal`でGoal modeを開始し、progress rowからpause・resume・edit・clearを操作できる。side chatでstatusや説明を確認できる | 再開時にgoalの状態、project、host、path、branch、diffを確認し、side chatを作業指示と混同しない |
| CLI / IDE | Codex CLIは同じinteractive session、IDE extensionはopen workspaceの同じchatで進捗を確認し、方向を修正する | 新しいsessionへ移す場合は、未完了のscope、制約、実行済みcheckを明示的に引き継ぐ |
| parallel | 独立したgoalはchatごとにcontext、messages、results、goalを持つ。独立作業は別chat、コードの別checkoutにはworktreeを使う | 同じfileやconnected sourceを複数goalで同時に変更しない |
| access | Goalは同じsandboxとapproval policyで動き、automatic approval reviewsも境界を広げない | goalの継続をcommit、push、deploy、secret閲覧、外部送信の許可と解釈しない |
停止・再開するgoalの確認順
- 開始前にoutcome、constraints、verification、definition of doneを測定可能な形で書き、`/plan`が必要な曖昧さを残さない。
- pause、接続断、アプリ再開の後は、同じchatか、goal status、project / host / path、branch、git status、diffを確認してから続ける。これは作業状態を取り違えないための運用確認であり、公式のpause操作だけで完了を保証するものではない。
- side chatはstatusや説明の確認に使い、メインgoalへ意図しない編集指示を送らない。
- parallel chatは独立した対象に限定し、同じfile、同じgenerated output、同じconnected sourceを同時に書き換えない。
- Goalの進捗表示や継続状態は、commit、push、deploy、test成功、release準備完了の証明ではない。差分、check結果、未完了scopeを別にレビューする。
- sandbox、approval、MCP、network、secretの境界はgoalの再開で変わらない。外部影響のある操作は通常の承認と人間レビューを分けて確認する。
ChatGPT/Codex Goal modeのFAQ
`/goal`と、普通に「続けて」と送るのは同じですか?
同じではありません。`/goal`は最初のpromptとcompletion criteriaをGoal modeとして定義します。「続けて」は、現在のchatやgoalへ追加のcontextや指示を送るfollow-upとして扱います。どちらでも、完了条件と現在の差分は別に確認します。
pauseしてresumeすれば、安全にそのまま再開できますか?
pause・resumeは進行状態を操作する機能で、project、path、branch、diff、実行済みcheckが正しいことを保証する機能ではありません。再開時に状態を確認し、未完了scopeと停止条件を読み直します。
複数のgoalを同じfileで並列実行できますか?
避けます。公式Docsではgoalごとにcontextやresultsが分かれ、独立作業を別chat、コードの別checkoutをworktreeに分ける案内です。同じfileやconnected sourceを複数goalで同時に編集すると、差分と所有者の確認が難しくなります。
Goal modeにすると権限やsandboxが広がりますか?
広がりません。Goalは同じsandboxとapproval policyを使い、automatic approval reviewsも境界を拡張しません。MCP、network、secret、Git、deployの扱いは既存の設定と承認境界に従います。
関連記事
- DeepSeek値上げ後のAPIコスト対策|キャッシュ・短い入力・リトライ上限・夜間バッチ
DeepSeekのコスト対策は、モデル変更だけでは足りません。cache hit、短い入力、出力制限、リトライ上限、実行時間をセットで見ます。