ANTIGRAVITY LABEN
記事一覧/Agents & Manager
Agents & Manager/2026-06-20上級

無人実行のエージェントをタイムアウトで止めたとき、書きかけのファイルが残る問題

スケジュール実行のエージェントがタイムアウトで殺されると、書きかけのファイルが静かに残ります。原子的な書き込み・固定名temp残骸の排除・書き込み後の内容検証で、無人パイプラインを壊さない設計をまとめました。

Antigravity245エージェント37無人実行信頼性5ファイル書き込み

プレミアム記事

ある朝、スケジュールで回しているエージェントの出力を確認したら、生成物の一部が途中で切れていました。ログ上は「失敗」と記録されていたのに、切れたファイルはそのままディレクトリに残っていて、後続のビルド工程がそれを正常な入力として拾ってしまっていたのです。原因はすぐに分かりました。実行がタイムアウトに達してプロセスが SIGTERM で殺された瞬間、エージェントは目的のファイルへの書き込みの途中だったのです。

私自身、複数のコンテンツ生成パイプラインを夜間のスケジュールに載せて、寝ている間にエージェントへ作業を渡しています。手元で対話的に動かしているときは、途中で止まっても自分の目で気づけます。けれど無人実行では「中途半端な状態が静かに残り、それを誰も見ないまま次の工程が進む」という、対話実行には存在しなかった失敗モードが現れます。Antigravity 2.0 の CLI を cron 的な無人実行に組み込むほど、この問題は避けて通れなくなります。

ここでは、その「書きかけのファイル」を根絶するための原子的書き込みと、それに付随する二つの落とし穴(固定名 temp の残骸混入・exit code では守れない検証)への対処を、実際に私が落ち着いた形でまとめます。

タイムアウトで殺されたエージェントが残すもの

無人実行のエージェントを時間制限つきで動かすと、制限に達した時点で実行基盤がプロセスへシグナルを送って止めます。問題は、その瞬間にエージェントが何をしていたかを制御できないことです。

典型的に残るのは次の3種類です。

残るもの起きること後続への影響
半分書けた出力ファイル書き込みの途中で SIGTERM を受け、先頭だけが書かれる後続が「正常な入力」として拾い、壊れた成果物が伝播する
固定名の一時ファイル前回の失敗で消されずに残った temp が、今回そのまま読まれる今回の生成物に 前回の内容が混入する(しかも無音)
ロックファイル正常終了時に消す前提のロックが残る次回起動が「実行中」と誤判定してスキップされる

いちばん厄介なのは2番目です。1番目(半分書けたファイル)は中身を見れば異常に気づけますが、固定名 temp の残骸は「もっともらしい正しさ」を装って混入するため、出力件数も整合性チェックも通ってしまい、内容を一行ずつ照らし合わせるまで気づけません。私はこの混入で一度、別の記事の段落が紛れ込んだ生成物を危うく公開しかけたことがあります。

なぜ exit code だけでは守れないのか

無人パイプラインの守りを exit code に寄せるのは自然な発想です。けれど、上の3つはどれも exit code では捉えきれません。

  • 半分書けたファイル: プロセスは「失敗(非ゼロ)」で終わるのに、ファイルはすでに部分的に存在する。exit code を見て「失敗だから後続を止める」だけでは、残ったファイル自体は掃除されない。
  • 固定名 temp の混入: 今回の生成は**成功(ゼロ)**で終わる。前回の残骸を読んでしまっただけなので、exit code は何も警告しない。
  • 空ファイル: 書き込み先は開けたが中身を書く前に死ぬと、サイズ0のファイルが成功扱いで残ることがある。

つまり守りには二つの軸が要ります。ひとつは「書き込みを途中状態で外に見せない」原子性。もうひとつは「書けたものが本当に意図した内容か」を確かめる、exit code とは独立した内容アサーションです。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
タイムアウトで殺されたエージェントが残す『半分書けたファイル』を、temp + rename の原子的書き込みで根絶する具体パターン
固定名の一時ファイルが次回実行へ静かに混入する事故を、ユニーク名と起動時クリーンアップで防ぐ手順
exit code では検知できない『成功したのに中身が空/前回の残骸』を、書き込み後の内容アサーションで弾く検証ゲート
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Antigravity Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

Agents & Manager2026-04-29
Antigravity エージェントの『失敗から学ばせる』を仕組み化する — 失敗履歴を次のタスクに活かす設計
Antigravity エージェントは同じ失敗を繰り返すことがあります。失敗履歴を構造化して次の実行に渡すことで、個人開発の運用コストを抑えながら賢く育てる方法を、廣川政樹の運用例とともに解説します。
Agents & Manager2026-06-14
Managed Agents API のバッチを、途中で落ちても作り直さない形にした記録
Managed Agents API で 200 件規模のバッチを回すと、途中失敗のたびに前半をやり直してトークンを溶かしていました。チェックポイントと冪等キーを足して、落ちた箇所から再開できるようにした設計と実装をまとめます。
Agents & Manager2026-06-14
「直しました」を信じる前に — 本番URLの描画をエージェント自身に確かめさせる完了ゲート
エージェントが「修正してデプロイしました」と報告したのに、本番ページが真っ白だった。ビルドもデプロイも成功(200)なのに本文が空になる事故を防ぐため、Antigravity 2.0 の Browser Sub-Agent に本番URLを開かせて主要セレクタの存在を確認させる、完了前の検証ステップの組み方をまとめます。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →