AIエージェントが途中で止まる原因と対策|やり直す範囲を決める

AIエージェントが途中で止まる原因と対策|やり直す範囲を決める

「夜に走らせた処理が朝見たら途中で止まっていて、どこからやり直せばいいのか誰も分かりませんでした」「とりあえず最初から流し直したら、同じ相手に同じ案内が2通届いてしまって」——AIエージェントを試作から日々の業務に移した組織からは、判で押したように同じ2つの声が届きます。止まること自体は珍しくもなければ、恥ずべきことでもありません。本当の問題は、止まった後にどこから再開するかを、止まる前に決めていなかったことのほうにあります。この記事では、止まり方の見分け方から、やり直してよい範囲の決め方、二重に起こさないための手当て、人に戻す線の引き方までを、運用に載せる順番で整理していきます。


カメ先生カメ先生

AIエージェントが途中で止まると、まず止まった原因を探したくなるよね。でも運用で先に効くのは原因より順番で、止まった場所がどこで、そこまでに外へ何を起こしたのかを確かめるほうが先なんだ。


カメ子カメ子

原因を直すより先に、外に何が起きたかを見るということですか。


カメ先生カメ先生

そう。原因が分からなくても、外に何も起こしていなければやり直して構わない。逆に、送信や登録が済んでいたら、原因が分かっていてもそのままやり直せば二重になる。順番を逆にすると、直している最中に事故が増えていくんだ。


カメ子カメ子

やり直してよいかどうかは、止まった理由ではなく、そこまでに何をしたかで決まるのでしょうか。


この記事のポイント
  • 止まり方は4つに分かれる。どれに当たるかで、やり直してよいかも、やり直す起点も、気づき方も変わる
  • やり直す前に問うのは「これは再試行できる失敗か」ではなく「そこまでに外へ何を起こしたか」。順番を逆にすると二重送信が起きる
  • 回数と間隔、行き止まりの置き場、人に戻す線の3つを、動かす前に文書で決めておく

AI活用を戦略に落とす前に、まずは導入・定着から始めませんか?

デボノはアカウント開設・初期設定など「そもそものAI導入」から社内定着まで伴走支援。マーケティング活用など一歩進んだご相談にも対応します。

目次

止まったという連絡は、たいてい翌朝に届く

AIエージェントを夜間や休日に動かし始めた組織で最初に起きるのは、性能の問題ではありません。走っていたはずの処理が途中で止まり、そのことに誰も気づかないまま朝を迎える、という出来事です。止まった瞬間に鳴る仕組みを置いていないと、止まってから見つかるまでの時間が、そのまま業務の遅れになります。遅れの大きさを決めているのは止まった原因ではなく、気づくまでの時間のほうです。

この場所でつまずく組織は少なくありません。ガートナーが2025年6月25日に公表した予測では、費用の膨張、事業価値の不明確さ、リスク管理の不備を理由に、自律的に動くAIの案件の40%超が2027年末までに中止されるとされています。止まったときの扱いを決めていないと、止まるたびに人手で後始末が要ります。その人手は、この「費用の膨張」の側に自分から寄っていく動きになります。

直し方に入る前に、言葉を1つ揃えておきます。ここでいう「止まる」は、異常終了だけを指しません。返事が返ってこないまま待ち続けている状態も、同じところを回り続けて先に進まない状態も、人の承認待ちのまま何日も置かれている状態も、業務から見ればすべて止まっています。画面に赤い文字が出ることだけを止まったと呼ぶと、いちばん件数の多い型を数え落とします

止まり方は4つに分かれる

止まり方を1つのものとして扱うと、対策も1つになります。実際には次の4つで、やり直してよいかどうかも、やり直す起点も、気づき方も違います。表の4列目は、その型に当たったときに最初にやることです。自分たちがどの型を多く出しているかは、直近1週間の記録を型ごとに数えるだけで見えます。

止まり方現場での見え方起きている中身まず何をするか
相手が返さない何分待っても次の行が出ない呼び出した先が応答を返していない、または返したが届いていない呼んだ先に本当に届いていたかを確かめる。届いていたら、やり直す前に結果を照会する
返ってきたが形が違う途中で読み取りに失敗して終わる想定した形式ではない答えが返り、次の処理が受け取れないそのままやり直しても同じ形が返る。渡し方か受け取り方を直してから再開する
上限に当たった決まった回数や時間でいつも同じように終わる回数・分量・実時間のどれかの上限に触れて打ち切られた上限を上げる前に、そこまでに何歩使ったかを数える。歩数の使われ方を先に見る
人の承認待ちのまま失敗は出ていないが何日も動かない承認を待つ状態で置かれ、その待ちに期限も持ち主も付いていない待ち状態に期限と担当を付ける。期限切れは自動で行き止まりの置き場へ送る

4つのうち、運用でいちばん取りこぼされるのが最後の型です。失敗として記録されないので監視にも映らず、失敗の件数にも数えられません。承認の依頼が誰かの受信箱で埋もれている間、その処理は生きたまま止まっています。待ち状態には必ず期限と持ち主を付ける、というのが実務での最低ラインです。期限が切れたら自動で人の目に触れる場所へ移す、というところまで含めて1つの設計になります。

やり直してよいかは「外に何を起こしたか」で決まる

やり直しの設計でいちばん多い誤りは、問う順番です。多くの現場は「この失敗は再試行できる種類か」から入ります。順番が逆です。先に問うべきは、止まった時点までに、外の世界に何を起こしたかのほうです。相手のシステムに登録が入ったのか、メールが出たのか、伝票が立ったのか。ここが白紙なら、原因が分からなくてもやり直して構いません。

2026年8月に公開され9月に更新された、AIエージェントの信頼性設計をまとめた技術文書でも、この順番が明示されています。そこでは失敗が3つに分けられています。通信の失敗だけが「そのままやり直してよい」もの。引数の誤りや対象の不在といった意味の失敗は「一度突き合わせてから決め直す」もの。そして送信・決済・公開のように取り消せない結果を出したものは、自動でやり直さず人に上げるものです。

気をつけたいのは、通信が切れた=相手に届いていない、ではないことです。要求は届いて処理も終わり、返事だけが戻ってこなかった、という形が実際に起こります。この場合、やり直せば同じ処理が2回走ります。だから通信の失敗であっても、やり直す前に相手側に結果が残っていないかを照会できる作りにしておくか、次の章の合言葉を持たせるかのどちらかが要ります。どちらも無いまま自動でやり直す設定だけを入れるのが、いちばん危ない状態です。

二度やると壊れるのは、送信・登録・課金の3つ

二重実行の被害は、業務の種類でおおよそ決まっています。危ないのは、外に対して取り消せない結果を出す3つです。1つ目が送信で、メールや通知など出たら引き戻せないもの。2つ目が登録で、顧客管理の仕組みや基幹側への書き込みに同じ相手が2行並びます。3つ目が課金で、決済や発注の金額がそのまま倍になります。次の表は、この線の引き方を業務の側から並べたものです。

処理の種類二度やったときに起きることやり直しの扱い
読み取り・検索・要約・下書き同じ結果がもう一度出るだけで、外には何も残らない無条件にやり直してよい。回数の上限だけ決めておけば足りる
社外への送信・通知同じ相手に同じ文面が2通届く。信用の面で取り返しがつかない合言葉を持たせたうえで、送信済みかどうかを照会してからでないとやり直さない
顧客管理や基幹側への登録・更新同じ相手が2行並ぶ。後から消しても履歴は残る合言葉を必須にする。相手側に重複を弾く仕組みがあるならそれを先に使う
決済・発注・課金金額がそのまま倍になる。打ち消しに別の承認が要る自動でやり直さない。行き止まりの置き場へ送り、人が判断する

表の1行目と、2行目以降の境目に線を引く作業が、やり直しの設計そのものです。線を引いたら、下3行に当たる処理の一覧を作ってください。数はたいてい想像より少なく、業務1つにつき10前後に収まります。少ないからこそ、そこだけ手厚く守れば済みます。

実際に多いのは、途中まで進んだ処理を「念のため最初から」流し直す形です。20歩のうち14歩目で止まり、1歩目から流し直す。1歩目から13歩目までに送信が含まれていたら、その分がもう一度外へ出ます。最初から流し直すという操作は、取り消せない処理を含んでいる限り復旧ではなく事故です。やり直す前に、どこまで進んだかを取り出せる状態にしておく必要があります。

二重に起きるのを防ぐ「合言葉」の作り方

二重実行を防ぐ仕組みは、考え方としては単純です。外に向かう処理の1つずつに、その処理を一意に指す合言葉を持たせます。受け取る側は、同じ合言葉の要求が2回来たら、2回目は実行せずに1回目の結果を返します。これで、何度やり直しても外に起きることは1回だけになります。

作り方に1つだけ落とし穴があります。合言葉はやり直しても同じ値になり、違う処理では違う値になる必要があります。前述の信頼性設計の技術文書は、案件の識別子と何歩目かを組み合わせて作るよう示し、試行回数や時刻を混ぜてはいけないと明記しています。呼び出すたびに新しい値を振るのは、重複を防ぐ合言葉ではなく、ただの通し番号です。

もう1つ。合言葉の判定は、AIに渡す指示文の中ではなく、呼び出される側の処理か、その先のシステムで行います。指示文に「二重に送らないこと」と書いても、それは制約ではなく助言にしかなりません相手側にもともと重複を弾く仕組みがあるなら、自作するより先にそれを使うのが確実です。決済や配信の仕組みには、たいてい同じ目的の受け口が用意されています。

やり直す回数と間隔をどう決めるか

回数と間隔に、どこでも通用する正解の数字はありません。前述の技術文書も、普遍的に正しい回数は存在せず、それを示す記事は当て推量だと断っています。代わりに使うのは、自分たちの成功した実行の分布です。うまくいった処理が実際に何歩で終わっているかを1か月分数え、その裾より少し上に上限を置きます。

間隔は、失敗するたびに待ち時間を伸ばす形にします。1秒、2秒、4秒と倍にしていく形が基本で、ここに少しばらつきを足します。ばらつきを足さないと、同時に止まった複数の処理が同じ瞬間に一斉にやり直し、弱っている相手をもう一度倒します。やり直しは、相手が弱っているところへ追加で負荷をかける行為だという前提で組んでください。

参考までに、広く使われている枠組みの初期値は、あるものでは2回、別のものでは1回の実行で呼べる回数の上限が500回、また別のものでは処理の入れ子の上限が1000回と、桁が大きく違います。これらは暴走を止めるための外柵であって、設計の目標値ではありません外柵をそのまま予算として使うと、止まったことに気づくのが何時間も遅れます

やり直しは層で掛け合わさる

やり直しの設定は、たいてい1か所ではありません。呼び出し1回ごとの再試行、1歩ごとの再試行、案件全体の再実行。層ごとに2回ずつ入れると、最悪の場合の所要時間は足し算ではなく掛け合わせで伸びます。歩数と各層の回数と1回あたりの待ち時間を掛け合わせると、想定していた時間を大きく超えます。

手当ては1つで、時間の上限を各層でばらばらに持たせず、案件を受け付けた瞬間にいつまでという絶対の期限を1つ決めて下へ渡すことです。各層は、自分の待ち時間を残り時間の範囲に切り詰めます。前述の技術文書は、期間ではなく絶対の期限を伝播させる、という言い方でこれを示しています。

もう1つ、やり直しそのものに予算を食わせてください。やり直した回数が歩数として数えられていないと、上限がいつまでも近づきません。予算は3種類に分けて持つのが実務的です。歩数、扱った分量、そして実時間。このうち実時間だけは、相手先と人の都合で決まるので社内で勝手に伸ばせません。実時間の上限を先に置き、そこから歩数と分量を逆算する順番にすると、数字が現実と食い違いにくくなります。

何回やってもだめなときの置き場所

回数を使い切った処理を、その場で消してはいけません。消すと、何件失敗したのかも、何が失敗したのかも残りません。使い切ったものは、行き止まりの置き場へ送ります。置き場に入るときに一緒に残すのは、案件の識別子、何歩目で止まったか、最後に受け取った内容、そしてそこまでに外へ起こしたことの一覧です。

置き場を作るときに必ず決めるのが、見る人と見る頻度です。持ち主のいない置き場は、3週間で誰も開かない棚になります。1日1回、朝の決まった時刻に中身を数えて共有する、という程度の軽い形で十分です。件数が前日より増えているかどうかだけで、仕組みの健康状態はかなり分かります。

置き場から戻すときの操作も先に決めます。そのまま再投入してよいのはどの型か、人が中身を直してから戻すのはどの型か。ここを決めずに全件再投入の操作を1つ用意すると、取り消せない処理まで一緒に流れます。行き止まりから戻す操作は、型ごとに分けて用意するのが原則です。ひとまとめのボタンは、いつか必ず急いでいる人に押されます。

途中までの結果をどこに残すか

やり直しの起点は、勝手には生まれません。作るには、処理の途中で状態を書き出しておく必要があります。書き出す場所は、1歩の結果を受け取った直後、次の判断に入る前です。ここが、状態としていちばん矛盾の少ない瞬間になります。手順にすると5つです。

STEP1
1歩の区切りを決める

何をもって1歩とするかを先に文書に書きます。呼び出し1回を1歩とするのか、判断から結果の受け取りまでを1歩とするのか。区切りが曖昧だと、やり直しの起点も曖昧になり、再開のたびに範囲が変わります。

STEP2
1歩の結果を受け取ったら書き出す

次の判断に入る前に書きます。判断してから書く作りにすると、判断の途中で落ちたときに、同じ判断をもう一度させることになります。書き出しの位置は、性能ではなく安全側で決めてください。

STEP3
4種類の状態を分けて持つ

やり取りの記録、途中の計画と分かったこと、外の世界に起こしたこと、使った予算。前の2つは作り直せますが、後ろの2つは作り直せません。作り直せないものを、作り直せるものと同じ場所に置かないことが要点です。

STEP4
書き出しの確実さを選ぶ

次の歩に進む前に書き切る形は遅いかわりに安全で、進めながら書く形は速いかわりに取りこぼす窓が残ります。取り消せない処理を含む工程だけ、書き切る形にするという選び分けができます。

STEP5
止めて、再開して、確かめる

途中で強制的に止め、書き出しから再開し、相手側に同じ行が2つ入っていないことを確かめます。試していない再開は、動くかどうか分かりません。ここまでやって初めて、再開の設計が済んだことになります。

3つ目に挙げた4種類のうち、使った予算は落としやすい項目です。再開のたびに予算が満タンに戻る作りだと、上限は事実上なくなります。予算の残りを状態の一部として書き出しているかは、再開の設計ができているかどうかの分かりやすい目印になります。

5つ目も飛ばされがちです。前述の技術文書は、処理の途中で強制終了させてから再開させる試験を、価値の高い故障注入の1つとして挙げています。なお、直した後に前の動きが壊れていないかを確かめる回帰テストは、目的が別なので別の記事の領分です。ここで確かめるのは動作の正しさではなく、再開したときに外の世界で同じことが二度起きないか、という一点だけです。

外に起こしたことの記録は、会話の外に置く

ここは見落とされやすい一方で、効き方がはっきりしています。外の世界に何を起こしたかの記録を、AIとのやり取りの中に混ぜて持ってはいけません。長く動く処理では、やり取りが伸びすぎたときに要約して詰める操作が入ります。要約は要点を残す仕組みなので、「相手側に1件登録した」のような、地味で個別の事実から先に落ちます。

落ちると何が起きるか。再開したAIは、登録済みであることを知らないまま同じ登録をやり直します。やり取りの要約は、二重実行を静かに作り出す装置になり得ます。だから外に起こしたことの記録は、やり取りとは別の場所に、詰められない形で置きます。前述の技術文書も、副作用の記録は会話の外に置くことを条件として挙げています。

記録に残す項目も決めておきます。重複を防ぐ合言葉、相手側での識別子、やろうとしたことと実際に返ってきた結果、そして状態の4つです。状態は、確認できた・確認できていない・打ち消し済みの3つに分けます。書くのは処理を試した後ではなく、試す前です。後に書く形だと、書く前に落ちたときに、起きたかもしれない結果が記録に一行も残りません。

人に戻す線を、動かす前に決めておく

ここがこの記事でいちばん言いたい部分です。やり直すか、やめるか、人に上げるかの判断を、AIに考えさせないでください。判断そのものは処理の外側に、人が書いた規則として置きます。AIが「これは問題なさそうなのでもう一度やってみます」と書いてきたとき、その文の根拠は本人の申告しかありません。自己申告を引き金に使うと、外から数えられる事実が記録に残らなくなります

上げる引き金は、型で決めておきます。取り消せない操作の手前に来たとき。外からの検査が同じ内容で続けて落ちたとき。予算を使い切ったが途中までの成果は使えるとき。同じ所を回っている検知が働いたとき。どれも、処理の外側で数えられる事実で引く形にします。なお、平常時に何をどこまで触らせてよいかという権限の範囲や、承認をどの工程に挟むかという設計は、別の記事の領分です。

  • 最初に受けた依頼の原文。途中で書き換えられていない、そのままの写しを渡す
  • そこまでに外の世界へ起こしたことの一覧。やり取りの要約ではなく、記録の側から出す
  • 途中まで進んで確定していない作業。押さえたままの枠や、出したままの承認依頼を含める
  • 止まった理由。引き金の型と、そう判断した材料の両方を書く
  • AIが次に何をしようとしていたか。これは提案として印を付け、確定した事実と混ぜない
  • 再開するための識別子と、いつまでに返事が要るかの期限

5つ目の書き方が効きます。AIの提案を事実と同じ体裁で渡すと、受け取った人はそれを調べ直さずに承認します。提案には提案と分かる印を付け、根拠として使った材料を必ず併記させる。この一手間があるかどうかで、人に戻す仕組みが確認として働くか、判子を押すだけの工程になるかが分かれます。

失敗が出ないまま止まる「回り続ける」型

4つの止まり方のうち、監視にも記録にも映りにくいのがこれです。処理は動き続け、費用も増え続け、結果だけが出てきません。前述の技術文書は、これを3つに分けています。同じ呼び出しを同じ引数で繰り返す型、やることは毎回違うのに観測できる前進が1つもない型、2つの状態を行き来して一方を直すと他方が壊れる型です。

見つけ方は型ごとに違います。1つ目は、呼び出し先と引数を並べ替えて指紋を作り、同じ指紋の再出現を数えます。2つ目は「前進した」の定義を自分で書く必要があります。出力の量ではなく、観測できる何かが変わったかで数えるのが要点です。読んだ資料の数、更新した件数、片付いた項目の数のように、外から数えられるものを使います。

見つけた後の扱いは、いきなり止めるのではなく段を踏みます。まず、繰り返していることを事実として伝える。次に、繰り返している選択肢を取り上げる。それでも変わらなければ人に上げるか、きれいに終わらせる。回数だけを見て即座に打ち切る作りは、正当な繰り返しまで巻き込みます。一覧を順にめくる処理や、終わったかどうかの問い合わせは、繰り返して当たり前だからです。

止まったことに、何分で気づけるか

気づく仕組みがないと、ここまでの設計はすべて翌朝まで効きません。置くのは3つです。1つ目は、決まった時刻までに終わっているはずのものが終わっていないことを見る仕組み。2つ目は、行き止まりの置き場の件数の増え方。3つ目は、生きているのに何分も次の歩が進んでいない処理の一覧です。

どれも、個別の失敗1件で鳴らすと、すぐに誰も見なくなります。見るのは割合と増え方です。前述の技術文書も、個々の発生ではなく消費の速さで警報を出す考え方を示しています。実務では、昨日と比べて増えたかどうかだけを毎朝1行で共有する形が、いちばん長く続きます。

数える指標も決めておきます。二重に起きた件数はゼロが正しい値で、1件でも出たら合言葉の設計に穴があります。人に上げた件数は、任せる範囲が広すぎるか、質が落ちたかのどちらかを示します。途中まで終わった件数は、成功か失敗かの2択で集計していると完全に見えなくなります。3つ目の欄を作って、そこを毎週見てください。

当番と記録を、仕事として置く

ここまでの仕組みは、誰の担当でもない状態では半年もちません。決めるのは4つです。行き止まりの置き場を毎朝見る人。人に上げられた案件を受ける人と、その返事の期限。上限と間隔の数字を見直す頻度。そして、見直した結果をどこに書くか。次の5項目は、当番が朝に5分で見る想定の並びです。

  • 昨夜終わっているはずの処理が、全部終わっているか
  • 行き止まりの置き場の件数が、前日より増えていないか
  • 人に上げられたまま返事が付いていない案件が、期限を越えていないか
  • 二重に起きた件数がゼロのままか
  • 生きたまま30分以上、次の歩に進んでいない処理がないか

見直す頻度は、月に1度で足ります。ただし見直しの引き金を1つ足してください。使っているモデルの版が上がったとき、指示文を変えたとき、呼び出す先を変えたときは、月次を待たずに数字を取り直す。前述の技術文書も、モデル・指示文・道具のいずれかが変わったら分布を取り直すよう示しています。

記録の置き場所は、運用の手順書と同じ場所にします。別の表に分けると、片方だけが更新されて食い違います。書き残すのは決めた数字ではなく、その数字にした理由のほうです。理由が残っていないと、半年後に誰かが「この3回という上限は何でしたっけ」と聞いたときに、また最初から測り直すことになります。

これをやると、やり直しが事故になる

最後に、善意で入れられて逆に危ない形を5つ挙げます。どれも実際に見かけるものです。1つでも当てはまるなら、次に処理を動かす前に外してください。

  • 止まったら、とりあえず最初から流し直す:途中までに送信や登録が済んでいた分が、もう一度外へ出る
  • やり直すたびに新しい通し番号を振る:番号が毎回違うので受け取る側が重複を弾けず、防いでいるつもりで防げていない
  • 二重に送らないことを指示文に書いて済ませる:指示文は制約ではなく助言なので、混み合った場面から順に破られる
  • 上限に当たったので上限だけ上げる:止まった理由が回数不足かどうかを見ないまま上げると、費用と時間だけが伸びる
  • やり直すかどうかをAIに判断させる:判断の根拠が本人の申告になり、外から数えられる事実が1つも残らない

2つ目は、対策を入れたのに効かない典型です。重複を防ぐ合言葉は、やり直しても同じ値でなければ意味がありません。呼び出しのたびに新しい値を作る実装は、見た目には仕組みが入っているので、二重送信が実際に起きるまで誰も気づきません。確かめ方は簡単で、同じ処理を2回投げて相手側に2行入るかどうかを見るだけです。

4つ目は、上に報告しやすいので選ばれます。上限を3回から10回に上げれば、失敗の件数は確かに減ります。ただし減った分は、時間と費用に移っただけです。止まり方の4つの型のうち「返ってきたが形が違う」に当たっていた場合、10回やっても10回とも同じ形が返ります。型を見ないまま数字だけを動かすのは、直したように見えて何も直っていません。

まとめ

途中で止まることは、仕組みが未熟だから起きるのではありません。呼び出す先が返さないことも、形の違う答えが返ることも、上限に触れることも、動かし続ける限り必ず起きます。だから決めるのは、止まらない作り方ではなく、止まった後にどこから、何回、どの条件でやり直すかのほうです。順番にすると、外に何を起こしたかを先に見て、取り消せない処理には同じ値の合言葉を持たせ、1歩ごとに途中の状態をやり取りの外へ書き出し、使い切ったものは行き止まりの置き場へ送り、人に上げる引き金は処理の外側の事実で引く、となります。今週やることは1つです。直近1か月で止まった処理を5件開いて、そのとき外に何が起きていたかを書き出してみてください。書けない件があるなら、足りていないのは仕組みではなく記録のほうです。

※本記事にはAIが活用されています。編集者が確認・編集し、可能な限り正確で最新の情報を提供するよう努めておりますが、情報の完全性、正確性、最新性、有用性等について保証するものではありません。本記事の内容に基づいて行動を取る場合は、読者ご自身の責任で行っていただくようお願いいたします。

AI活用を戦略に落とす前に、まずは導入・定着から始めませんか?

デボノはアカウント開設・初期設定など「そもそものAI導入」から社内定着まで伴走支援。マーケティング活用など一歩進んだご相談にも対応します。

運営会社:株式会社デボノ

目次