停止条件を「迷ったら人に聞く」と書くだけでは、実行時の歯止めにならない。何を迷いと判定するのかも、どの操作の前で止まるのかも、次の担当者へ何を残すのかも決まっていないからだ。
カスタマーサポートの責任者ミナは、あえて不完全な返金案件を使った。返金日は空欄、社内記録は荷物を引き渡し済み、配送会社の照会は送り状を作っただけ。AIへの依頼は返信案を一通作ることに限った。それでも案ができると、AIは送信、案件記録への書き戻し、同じ顧客の別案件の処理まで準備した。
止めるべき場面は、モデルの口調から探すものではなかった。限られた依頼が外部操作へ広がる直前に、実行系が検出できる境界を置く必要があった。
停止を観測可能な条件へ落とす
ミナは五つの事象を停止条件にした。結果を左右する日付、金額、対象者、権限が欠けている。名前の付いた二つの情報源が食い違う。次のツールが送信、支払い、削除、権限変更、書き戻し、対外的な約束を行う。高リスク判断に責任者が付いていない。中断やタイムアウトの後で、直前の操作が成功したか分からない。いずれもログで確認でき、同じ入力で再試験できる。
Anthropicのエージェント設計ガイドは、環境の事実で進捗を判断し、人のチェックポイントと停止条件を置き、サンドボックスで試験するよう勧める。OpenAI Agents SDKのhuman-in-the-loop文書は、承認必須のツール呼び出し前で中断し、状態を保存して承認または拒否から再開する流れを示す。どちらもモデルの自己申告を制御装置とはみなしていない。
返金対応では、次の順に固定した。
境界の手前まで何もさせないわけではない。AIは注文情報を読み、二つの配送状態を出典付きで並べ、欠けた日付を示し、推測を含まない案を作れる。止めるのは、未解決の判断をメールやデータベースの事実へ変える権限である。
引き継ぎ記録は再開位置から考える
「情報不足」だけでは、後任は調査をやり直す。停止記録には、発火条件、未実行の呼び出し、完了と未完了、根拠、起きた可能性のある効果、責任者、保存した実行位置を含める。この案件なら、注文は取得済み、返金日は未取得、二つの配送記録は不一致、返信は未送信、案件記録は未変更、と残す。物流データの責任者は不一致の確認から始め、正しい値が届けば同じ状態から送信審査へ進める。
タイムアウト時はさらに重要になる。呼び出し側が応答を受け取れなかったことと、書き込みが失敗したことは同じではない。まず現状を読み、続行か補償かを選ぶ。ロールバックと補償操作を事前に用意するのは、曖昧な再実行で二重送信や二重更新を作らないためである。
人が承認する対象を一回分に絞る
「この苦情を処理してよい」では広すぎる。ミナは宛先、本文の版、根拠、ツール名、引数、予想される変更を一組にし、一つでも変われば承認を取り直す。コード変更の人手チェックポイントも、差分、テスト、未検証の仮定、復旧手順へ絞る。高リスク判断では、AIは根拠と検証方法を整理するところまでで止まる。
正常系ではなく停止点を試験する
ミナは実行前に合格条件を書く。返金日を消したケースでは欠損が案に残ること。二つの配送情報を逆にしたケースでは、値、時刻、出典が両方残ること。案の直後に送信ツールを置いたケースでは、具体的な保留操作だけが現れ、メールは送られないこと。文章が自然でも、先にツールが動けば不合格である。
調査ツールを途中で切る試験では、完了、未完了、根拠、再開位置を確認する。書き込み直後のタイムアウトでは、再実行より現状照会が先でなければならない。出力だけでなくツールの引数、戻り値、保存状態も照合し、慎重な回答と作動する歯止めを区別する。
安全性を支えるのは、モデルが自信を語るかどうかではない。観測できる停止条件、操作ごとの承認、汚れた入力での検証、そして中断後も使える引き継ぎである。まず実在する流れを一つ選び、最初の外部効果を切り離す。この四点が毎回再現してから、次のツールを接続すればよい。
AI整理カード
現在許可されている一つのAIワークフローを、読み取り専用で実行順に追跡する。変更、送信、削除、支払い、権限変更は行わず、別の入力資料を私に作らせない。まず生成内容が外部の事実になる最初の工程を特定し、その手前に結果を左右する値の欠損、名前の付いた情報源の矛盾、責任者のいない高リスク判断、中断やタイムアウトによる不明な実行状態がないか調べる。根拠となる項目、文、ファイル名、ツール結果、テストを引用し、読めない情報は「取得できず」と記して推測しない。依頼が案の作成や分析だけなら、送信、書き戻し、支払い、対外的な約束、広いツール利用へ範囲を広げる兆候を示し、呼び出し前で止める。停止記録を、発火条件、保留中の正確なツール呼び出し、完了、未完了、根拠と矛盾、発生済みかもしれない外部効果、保存した再開位置、必要な責任者と一回分の承認、外部効果を増やさない可逆的な次の一手に分ける。最後は「元の範囲で続行」「案または読み取り専用確認へ縮小」「人の判断まで停止」の一つだけを選ぶ。状態不明なら再実行より先に現状を照会する。
4コマで見る:返信案が外部操作へ届く瞬間

- ミナは、返金日が欠け、社内と配送会社の記録が食い違う案件について、返信案を一通だけ依頼する。
- 根拠が未解決のまま、AIは送信、案件記録への書き戻し、追加案件へ作業を広げる。
- 既定の外部効果の停止点で実行が止まり、ミナは送信と書き戻しの道具を外して、案と根拠だけを残す。
- 欠損を示した案と停止記録が確認可能になる。送信、記録更新、追加作業は個別承認まで閉じたままになる。
ここで描いているのは、実行前に停止条件を定義し、範囲の拡大を人が外部効果の手前で戻し、検証と再開ができる有界な成果だけを完成させるという本文と同じ原則である。
参考文献
- Anthropic: Building effective agents(published 2024-12-19/accessed 2026-08-01)— https://www.anthropic.com/engineering/building-effective-agents
- OpenAI Agents SDK: Human-in-the-loop(accessed 2026-08-01)— https://openai.github.io/openai-agents-python/human_in_the_loop



