AIエージェントの安全設計で、「危険な操作は人に聞く」と決めるだけでは足りません。承認待ちが長引いても状態を失わず、承認対象だけを実行し、拒否されたら安全に止まれる仕組みが必要です。OpenAIの公式ドキュメントは、ガードレールと人間レビューを別の制御として整理しています。ここから見えるのは、承認はUIのボタンではなく、ワークフローそのものだということです。
自動判定と人間承認は役割が違う
OpenAIは、ガードレールを入力・出力・ツール動作の自動検査、人間レビューを機密性の高い操作の承認・拒否に使うものと説明しています。使い分けは次の4つです。
- 入力ガードレール:禁止された依頼を、メイン処理の前に止める
- 出力ガードレール:外部へ出す回答を検証・マスキングする
- ツールガードレール:関数の引数や実行結果を、ツール境界で確認する
- 人間承認:キャンセル、編集、シェル操作、機密性の高いMCP操作など、副作用の直前で一時停止する
ポイントは「すべてを人に聞く」のではないことです。機械的に判定できる条件は自動化し、取り消しにくい判断だけを人に残します。これなら承認疲れを抑えながら、責任の境界を明確にできます。
承認フローは4段階の状態機械として設計する
公式ドキュメントが示す承認ライフサイクルは明快です。
- ツールを実行せず、承認待ちの割り込みを記録する
- 未処理項目と再開可能な状態をアプリへ返す
- 人またはポリシーが、各項目を承認・拒否する
- 新しい依頼としてやり直さず、保存した同じ状態から再開する
審査に時間がかかる場合は、状態をシリアライズして保存し、後から同じ実行を再開できます。ここが単純な確認ダイアログとの違いです。担当者が翌朝に承認しても、エージェントが文脈を推測し直す必要はありません。
「入口で一度チェック」では守れない
注意すべき制約もあります。OpenAIによると、エージェント単位の入力ガードレールはチェーンの最初、出力ガードレールは最終出力を作るエージェントにだけ動作します。マルチエージェント構成で途中のツールがデータを変更するなら、入口と出口だけの検査では抜け道が残ります。
そのため、副作用を起こすツールのすぐ隣に検証と承認を置くべきです。自動車開発でいえば、車両全体の要求だけで安全を保証せず、実際にアクチュエータを動かす境界にも安全機構を置く考え方に近いです。
実装前に決めるべき5項目
- どの操作が自動許可・自動拒否・人間承認なのか
- 承認画面に、対象・引数・影響範囲をどう表示するか
- 承認待ち状態をどこに、どれだけ保存するか
- 拒否・期限切れ・レビュー機能停止時にどう安全側へ倒すか
- 判断と実行結果を、誰が追跡できる形で記録するか
特に重要なのは、承認者へ「何を実行するか」を具体的に見せることです。「処理を続けますか」では判断できません。対象ID、変更内容、権限、取り消し可否まで見えて初めて、承認が安全装置として機能します。
まとめ
AIエージェントの人間承認は、最後に足す確認ボタンではありません。自動検査、ツール直前の割り込み、状態保存、同一実行の再開、監査記録までを一つのワークフローとして設計する必要があります。自律性を高めるほど、人が介入できる場所は減らすのではなく、正確に定義することが重要です。
公式一次情報