AIワークフローが途中で失敗したときに成功済みをやり直さず再開する方法
AIに複数の工程を順番に任せていて、途中の1工程だけ失敗したとします。
私も以前は「もう一度最初から実行すればいい」と考えがちでした。しかし、すでに外部公開やファイル更新まで終わった工程がある場合、最初からやり直すと正常な成果物まで再び触ることになります。
実際に、WordPress、note、X、YouTube Shortsへ順番にコンテンツを展開する途中で、noteだけ止まったことがありました。
そのときはWordPressへ戻らず、失敗したnoteの工程から再開しました。
4工程のうち、1つだけ止まった
この作業では、WordPressはすでに公開し、表示確認まで終わっていました。
次のnoteでは、本文の見出し、太字、改行、区切りの再現が正本どおりにならず停止しました。
この時点の状態は次のように分かれます。
- WordPressは完了
- noteは失敗して修正待ち
- Xは未着手
- YouTube Shortsは未着手
ここで全工程を最初からやり直す必要はありません。
再開時はWordPressを変更しない対象として固定し、noteだけを修正して再実行しました。noteが完了した後に、XとYouTube Shortsへ進みました。
ワークフロー全体ではなく、工程ごとに状態を持つ
途中から再開するには、ワークフロー全体を「実行中」という1つの状態で持つだけでは足りません。
最低限、工程ごとに次の状態を分けます。
- 未着手
- 完了
- 失敗
- 保留
再開前にこの状態を確認し、完了済みの工程は原則として触らないようにします。
失敗した工程だけを再試行し、同じ原因で進めない場合は別の手段へ切り替えます。
「処理した」ではなく「完了条件を満たした」で判断する
工程の状態を持っていても、完了の基準が曖昧だと途中再開は不安定になります。
たとえばWordPressなら、投稿ボタンを押しただけではなく、公開URLが開き、表示や主要リンクを確認できたところまでを完了とする、といった考え方です。
noteなら、保存できたかだけでなく、見出しや改行が正本どおり表示されているかまで確認します。
工程を実行したことと、工程が完了したことは分けて考えます。
再開前に「触らない場所」を決める
途中で失敗すると、何を直すかに意識が向きます。
しかし再開時には、同じくらい「どこへ触らないか」を決める必要があります。
全工程をやり直すと、次のようなことが起こる可能性があります。
- 同じ内容をもう一度投稿する
- 公開済みの内容を書き換える
- 正常なファイルを上書きする
- 手動で直した内容を古い処理で戻す
そのため再開時は、完了済み工程を固定し、失敗した工程だけを対象にするようにしています。
後続工程との依存関係も確認する
失敗した工程の成果物を、後続工程が使う場合があります。
たとえばnoteの公開URLを次の投稿で使うなら、noteが完了するまで後続工程は進めません。
一方、後続工程がその成果物に依存していないなら、必ずしも全体を止める必要はありません。
再開地点だけでなく、何が何に依存しているかも確認します。
再開前に確認する5項目
途中で止まったら、再実行ボタンを押す前に次を確認します。
- どの工程まで完了しているか
- どの工程で失敗したか
- 完了と判断した根拠は何か
- 後続工程は失敗した成果物に依存しているか
- 再開時に変更してはいけない工程はどこか
ここまで整理してから、失敗地点から再開します。
再実行時の重複防止とは別の問題
途中から再開する設計と、同じ処理を2回実行しても重複しにくくする設計は近いテーマですが、別の問題です。
前者はどこから再開するか、後者は同じ対象をどう二重処理しないかを扱います。
両方を分けて設計すると、復旧時の判断が整理しやすくなります。
AIで記事公開まで自動化するときに、作成、確認、公開を分ける考え方は、AIで記事公開まで自動化するとき、どこで止める?でも紹介しています。
今日からできること
今使っているワークフローを1つ選び、各工程に「未着手、完了、失敗、保留」の状態を書いてみてください。
そのうえで、完了の条件を1行ずつ決めます。
途中で止まったときの現在地が分かれば、最初から全部やり直す以外の選択肢を持ちやすくなります。
停止や再開の判断を次の仕事でも使えるルールへ残したい場合は、AI改善OS Starter Kitに、ガイドラインと実例をまとめています。