AIエージェントの承認プロンプトは認可ではない
OpenAIのAgents SDKでは、人間による承認が実行時の状態として扱われるようになりました。機密性の高いツール呼び出しの前に実行を一時停止し、中断を表示し、その判断をRunStateに保存できます。承認または拒否のあと、同じ実行から再開することもできます。1
この製品設計は、重要な点を正しく捉えています。承認はチャット履歴の中だけでなく、実行環境の中に置かれるべきです。
次に難しい問いが出てきます。人間は、実際に何を認可したのでしょうか。
「シェルコマンドを許可しますか?」や「ツール呼び出しを承認しますか?」という承認プロンプトは、その瞬間を信頼するようユーザーに求めます。一方、本当の認可記録は、行動の範囲を定め、リスクを明示し、証拠を残し、有効期限を持ち、あとから確認できる履歴を作ります。AIエージェントに必要なのは後者です。エージェントは複数の手順をまたいで計画し、入れ子になったツールを呼び出し、拒否されたあとに再試行し、流暢な説明を添えて判断を迫るためです。そこで人間は「はい」を押す圧力を感じることがあります。
要約
AIエージェントの承認プロンプトは、認可ではありません。プロンプトは作業を一時停止できますが、認可には、誰が権限を与えるのか、どのエージェントが受け取るのか、どのツールを実行できるのか、どのリソースに触れられるのか、どのリスク区分に該当するのか、その付与がどのくらい続くのか、判断を支えた証拠は何か、運用者がどう取り消せるのかを定義する必要があります。チームは承認をチャットの割り込みではなく、範囲を絞った権限オブジェクトとして設計すべきです。問うべきなのは「誰かが承認をクリックしたか」ではありません。「責任ある人が、どの制約のもとで、どの具体的な行動を認可したのか」です。
重要ポイント
プロダクトチームへ: - 承認は型付きの判断オブジェクトとして表示しましょう。行動、リソース、リスク、証拠、有効期限、ロールバックを含めます。 - 低リスクの確認と、高リスクの認可は分けて扱います。
セキュリティチームへ: - 繰り返し表示される承認プロンプトは、単なるUX問題ではなく攻撃対象として扱いましょう。 - 許可、拒否、自動許可、自動拒否、期限切れ、取り消しをすべて記録します。
エージェント開発者へ: - 取り消せない行動の前に一時停止しましょう。エージェントがすでに結果を形作ったあとでは遅すぎます。 - 拒否は曖昧な失敗としてではなく、制約付きの指示としてモデルへ戻します。
運用者へ: - 対象リソース、権限範囲、ロールバック手段が見えないツール呼び出しは承認しないでください。 - 粘着的な「常に承認」ではなく、短時間だけ有効な範囲付き付与を選びましょう。
なぜ承認プロンプトは失敗するのか
承認プロンプトが失敗するのは、文脈の多い判断を、文脈の少ないクリックに圧縮してしまうときです。
エージェントは、プロンプトに表示される以上の文脈を持っています。ファイルを読み、スレッドを要約し、一連の手順を計画し、ツールを選び、引数を埋め、実行タイミングを選んでいるかもしれません。しかし承認プロンプトに表示されるのは、多くの場合、最後の一手だけです。ユーザーが見るのは、コマンド、API呼び出し、ブラウザー操作、または同じエージェントが書いた許可依頼の文章です。
このインターフェースは、4つの失敗を生みます。
| 失敗 | 何が起きるか |
|---|---|
| 範囲の欠落 | ユーザーにはツール名だけが見え、リソース、テナント、ファイル、アカウント、影響範囲が見えません。 |
| 証拠の欠落 | 要求された行動は見えますが、その行動が妥当だと示す根拠が見えません。 |
| 疲労 | 拒否すると実行が遅くなるため、ユーザーは繰り返し表示されるプロンプトを承認してしまいます。 |
| 説得 | エージェントが自信に満ちた洗練された言葉で、危険な行動を包み込みます。 |
OWASPのAgentic Top 10は、この説得の失敗を直接取り上げています。リリース記事では、ASI09のHuman-Agent Trust Exploitationにおいて、自信に満ちた説明が人間の運用者を誤導し、有害な行動を承認させる可能性があると述べています。2 このリスクに、悪意あるモデルは必要ありません。役に立とうとするエージェントであっても、弱い計画を過度に売り込み、不確実性を小さく見せ、無害な操作列の中に危険なツール呼び出しを埋め込むことがあります。
だからこそ、承認にはよりよい形が必要です。人が承認すべきなのは、依頼の吹き出しではなく、行動記録です。
承認は何を認可すべきか
本格的な承認は、境界のある条件のもとで、1つの具体的な行動を認可すべきです。
「Authenticated Delegation and Authorized AI Agents」の論文は、この広い問題を委任された権限として捉えています。ユーザーには、エージェント専用の認証情報、メタデータ、監査可能なアクセス制御設定を使って、エージェントの権限を制限し、明確な説明責任の連鎖を維持する方法が必要だという整理です。3
この考え方は、プロダクト設計にもきれいに対応します。承認には次の項目が必要です。
| 項目 | なぜ重要か |
|---|---|
| 実行主体 | どのアカウント、セッション、エージェント、運用者がその要求を所有しているか。 |
| ツール | どのツール、コネクター、MCPサーバー、シェルコマンド、ブラウザー操作が実行されるか。 |
| 行動 | その呼び出しは読み取り、下書き、書き込み、削除、公開、エクスポート、支出、デプロイ、管理のどれか。 |
| リソース | どのファイル、レコード、テナント、リポジトリ、アカウント、環境、顧客、URLに触れるか。 |
| 証拠 | どのテスト、差分、ソース確認、プレビュー、ポリシーチェックがその行動を正当化するか。 |
| リスク区分 | データ、金銭、セキュリティ、公開面、可逆性にもとづき、低・中・高・禁止のどれに該当するか。 |
| 期間 | 1回の呼び出し、1回の実行、1つのタスク、1時間、または手動取り消しまでのどれか。 |
| ロールバック | 運用者はどう取り消し、または封じ込められるか。 |
| 監査先 | 後日、レビュアーはどこで判断を確認できるか。 |
これらの項目がなければ、承認はボタン付きの雰囲気にすぎません。モデルは丁寧に頼めます。人間は素早くクリックできます。しかし、そのどちらも、その行動が正当なものだった証明にはなりません。
承認状態はどう動くべきか
承認状態は一時停止をまたいで残るべきですが、範囲は狭く保つ必要があります。
OpenAIのAgents SDKドキュメントには、有用な実行時パターンが説明されています。ツールはneeds_approvalを宣言でき、ランナーは実行前に承認ルールを評価します。未解決の承認は中断として表示され、開発者は保留中の各項目を承認または拒否でき、その実行はRunStateから再開できます。1 ドキュメントでは、同じ実行内の後続呼び出しに対するalways_approveやalways_rejectのような継続的な判断も説明されています。1
状態機械が重要なのは、一時停止したエージェント実行が、記憶からやり直したり、意図を再生成したり、承認文脈を失ったりすべきではないからです。中断地点から、判断を付けた状態で再開されるべきです。
継続的な判断という選択肢は、次の設計要件を生みます。継続的な承認には、必ず範囲と有効期限が必要です。
| 継続的な判断 | より安全な境界 |
|---|---|
read_fileを常に承認 |
現在の実行に限り、プロジェクトルート配下の読み取りを承認します。 |
shellを常に承認 |
シェル全体は承認しません。コマンドの系統、パス、引数パターンを承認します。 |
send_emailを常に承認 |
下書きのみ承認し、送信前には受信者ごとの承認を求めます。 |
deployを常に承認 |
継続的なデプロイ承認は避けます。各デプロイにリリース証拠を求めます。 |
deleteを常に拒否 |
削除は既定で拒否し、意図的なクリーンアップには別の復旧手順を用意します。 |
継続的な承認は疲労を減らせます。しかし広すぎる継続的な承認は、疲れた1クリックを、実行全体の影響範囲へ広げてしまいます。
承認は実行環境のどこに置くべきか
承認は、コミット地点の前に置くべきです。
コミット地点とは、エージェントが可逆的な作業から副作用へ移る瞬間です。本番リソースの変更、メッセージ送信、支出、コンテンツ公開、データ削除、キーのローテーション、権限変更、コードのデプロイなどが該当します。コミット地点のあとに人間が承認しても、それは認可ではなくインシデント対応です。
人間による監督に関する文献も、この区別を支えています。2026年のAI and Ethics論文は、AIが生成または行動する「作動的エージェンシー」と、人間が評価し、異議を唱え、上書きできる「評価的エージェンシー」を分けています。4 有効な監督は、人がすべてのトークンを見続けることに依存できません。インターフェースは、人間の判断がまだ結果を変えられる地点に、その判断を残しておく必要があります。
つまり、エージェント製品には単純なルールがあります。
| 実行段階 | 承認パターン |
|---|---|
| 可逆的な探索 | ポリシー内でエージェントに作業させます。行動は記録します。 |
| 下書き | エージェントに成果物を準備させます。プレビューと証拠を表示します。 |
| リスク分類 | ユーザーに尋ねる前にリスクを計算します。 |
| コミット地点 | ポリシー上必要な場合、人間の認可のために一時停止します。 |
| 実行後 | 結果、証明、ロールバック状態を記録します。 |
エージェントが危険な部分をすでに実行したあとに表示されるプロンプトは、見せかけを作るだけです。システムがすでに権限を使ってしまっているなら、人間は評価的エージェンシーを行使できません。
承認疲れをどう防ぐか
承認疲れはセキュリティ上のバグです。疲労は判断を変えるからです。
1回の実行で40回の承認を求めるなら、ユーザーがクリックする前にプロダクトはすでに失敗している可能性が高いです。運用者は各項目の判断をやめ、煩わしさの管理を始めます。攻撃者はこのパターンを悪用できます。繰り返し要求を生成し、危険な行動をバッチの中に隠し、危険な呼び出しを日常的なものに感じさせる言葉を使えます。
OWASPのAgentic Top 10は、人間とエージェントの信頼悪用を第一級のリスクカテゴリとして扱っています。2 エージェントセキュリティ研究も、システム側から同じ形に到達しています。2026年3月のエージェント型AIセキュリティの体系化研究は、プロンプトインジェクション、RAG汚染、ツールとプラグインの悪用、マルチエージェント脅威にまたがる信頼境界を整理し、実行時監視とインシデント対応の統制も求めています。5 2026年5月のセキュリティ監査可能なエージェントに関する論文は、静的な部品表と実行時ログだけでは証拠が断片化すると論じています。システムが能力、記憶、目標、推論の軌跡、行動を結び、検索可能な監査経路にできなければならないという主張です。6
承認設計は、価値の低いプロンプトを減らし、価値の高いプロンプトの質を上げることで疲労を下げるべきです。
| パターン | よりよい設計 |
|---|---|
| すべてのツール呼び出しでプロンプトを出す | リスクを分類し、範囲内の低リスク読み取りは自動許可します。 |
| 怖そうなシェルプロンプトを1つ出す | コマンド、パス、操作、ネットワーク利用、破壊的フラグを解析します。 |
| 「1回だけ許可」しかない | ツール系統、リソース、期間、上限を持つ範囲付き付与を用意します。 |
| 「常に承認」 | 有効期限と取り消し操作が見える、実行限定の承認を用意します。 |
| 長い自然言語の理由説明 | 主張、証拠、リスク、ロールバック、正確な引数を表示します。 |
| 拒否を失敗として扱う | 拒否を、安全な代替案へ向かうための信号にします。 |
目標は統制を減らすことではありません。意味のない統制を減らすことです。
承認UIには何を表示すべきか
承認UIが表示すべきなのは、エージェントの人格ではなく判断です。
まずはコンパクトな判断カードから始めます。
| 項目 | 例 |
|---|---|
| 行動 | ブログ翻訳行をD1へ公開 |
| 実行主体 | ブログリリースエージェント、実行release-1427、運用者Blake |
| ツール | blog_translate_batch.py D1アップロード経路 |
| 範囲 | スラッグai-agent-approval-prompts-not-authorization、ロケール ja, ko, zh-Hans, zh-Hant, de, fr, es, pl, pt-BR |
| 証拠 | ローカル基準 9/9 通過、同等性確認通過、シークレットスキャン問題なし |
| リスク | 公開コンテンツ。パージとD1ロールバックで可逆 |
| 有効期限 | 1回のアップロード試行 |
| 判断 | 承認、拒否、証拠要求、範囲分割 |
このカードは、ユーザーが1つの問いに答える助けになります。要求された行動は、証拠と範囲に見合っているでしょうか。
カードは正確な引数を隠すべきではありません。拒否を見えにくくしてはいけません。「承認」だけが設計された道で、「拒否」は例外のように扱われるべきではありません。よい承認画面では、拒否は通常の制御信号です。エージェントは、正確なメッセージを受け取るべきです。「ソースURLが検証されていないため拒否」や「このコマンドはリリース範囲外のファイルに触れるため拒否」のようにです。
チームは最初に何を作るべきか
より美しいプロンプトを作る前に、承認台帳を作りましょう。
最低限の台帳項目は次のとおりです。
- 実行ID。
- エージェントID。
- 運用者ID。
- ツール名。
- ツール引数。
- 対象リソース。
- リスク区分。
- 発火した承認ルール。
- 証拠へのポインター。
- 判断: 承認、拒否、自動承認、自動拒否、期限切れ、取り消し。
- 判断時刻。
- 有効期限条件。
- 実行後の結果。
- ロールバックまたは封じ込めへのポインター。
台帳は、承認をUIイベントから説明責任の記録へ変えます。あとから、よりよい問いを立てることもできます。
- どのツールが承認を求めすぎているか。
- どの運用者が高リスク行動を最も速く承認しているか。
- どの承認ルールが誤検知を起こしているか。
- 拒否された行動のうち、あとで安全な代替案が見つかったものはどれか。
- 承認された行動のうち、ロールバックを引き起こしたものはどれか。
- どの継続的な付与が長く残りすぎたか。
2026年5月のオペレーティングシステムセキュリティに関する論文は、エージェントがOS風の既知の問題に直面すると論じています。リソース分離、権限分離、仲介された通信です。7 承認も同じ系統に属します。実行環境は、OSが特権操作を仲介するように、権限を仲介すべきです。狭く、一貫して、要求より長く残るログを伴って。
簡単なまとめ
AIエージェントの承認は、認可オブジェクトになる必要があります。一時停止してクリックさせるプロンプトはツール呼び出しを止められますが、それだけでは説明責任を担えません。有用な承認システムは、実行主体、行動、リソース、リスク、証拠、期間、有効期限、取り消し、監査を定義します。
プロダクト上の教訓は明確です。低リスクの作業は静かに進め、高リスクの作業は明示的に扱いましょう。そして、システムが範囲付きの行動記録を見せられる場面で、人間に流暢な説明だけを承認させてはいけません。
FAQ
AIエージェントにおける承認と認可の違いは何ですか?
承認は人間による判断イベントです。認可は、定義された条件のもとでエージェントに具体的な行動を実行させる、範囲付きの権限です。強いエージェントシステムでは、この2つを接続します。人間の承認によって、リソース、リスク、有効期限、証拠、監査項目を持つ狭い認可記録が作られます。
AIエージェントのすべてのツール呼び出しに承認が必要ですか?
いいえ。チームはリスクに応じて承認を振り分けるべきです。既知の範囲内の低リスク読み取りは、ログを残しながら静かに実行できます。中リスクの行動はまとめてレビューできます。メッセージ送信、公開、削除、デプロイ、支出、エクスポート、権限変更のような高リスク行動は、実行前に一時停止すべきです。
AIエージェントで継続的な承認は安全ですか?
継続的な承認は、範囲が狭く、短時間で失効し、見える状態に保たれるなら役に立ちます。読み取り専用ツールに対する実行限定の承認は妥当な場合があります。一方で、シェル、デプロイ、支払い、メール送信、削除に対する広い継続的承認は、1回の判断から大きすぎる権限を生みます。
AIエージェントの承認プロンプトには何を含めるべきですか?
承認プロンプトには、行動、リソース、ツール引数、実行主体、リスク区分、証拠、有効期限、ロールバック経路、監査先を含めるべきです。また、承認だけでなく、拒否、証拠要求、範囲分割の判断も用意する必要があります。
エージェント製品で承認疲れを減らすにはどうすればよいですか?
ポリシー内の低リスク行動は自動許可し、中リスクの判断はまとめ、コミット地点でだけ中断し、構造化された証拠を表示し、付与に有効期限を設け、拒否を通常の制御経路として記録します。よい承認は、曖昧な質問を減らし、より正確な質問を増やします。
参考文献
-
OpenAI, “Human-in-the-loop,” OpenAI Agents SDK documentation, accessed May 18, 2026.
needs_approval、保留中承認による中断、RunState、承認と拒否の処理、継続的な承認判断、ホスト型MCP承認サポート、一時停止と再開の挙動の出典。 ↩↩↩ -
John Sotiropoulos, Keren Katz, and Ron F. Del Rosario, “OWASP Top 10 for Agentic Applications - The Benchmark for Agentic Security in the Age of Autonomous AI,” OWASP GenAI Security Project, December 9, 2025. Agentic Top 10のリリース、専門家レビューの枠組み、洗練された説明が運用者を誤導して有害な承認につながるというASI09 Human-Agent Trust Exploitationの記述の出典。 ↩↩
-
Tobin South, Samuele Marro, Thomas Hardjono, Robert Mahari, Cedric Deslandes Whitney, Dazza Greenwood, Alan Chan, and Alex Pentland, “Authenticated Delegation and Authorized AI Agents,” arXiv:2501.09674, submitted January 16, 2025. 委任された権限、エージェント専用の認証情報とメタデータ、権限の範囲設定、説明責任の連鎖、自然言語による権限指定を監査可能なアクセス制御設定へ変換する考え方の出典。 ↩
-
Liming Zhu, Qinghua Lu, Ming Ding, Sung Une Lee, Chen Wang, et al., “Designing meaningful human oversight in AI,” AI and Ethics, published May 4, 2026. 作動的エージェンシーと評価的エージェンシーの区別、解く側と検証する側の非対称性、監督メカニズム、人間による監督には高水準の原則だけでなく具体的なインターフェース機構が必要だという主張の出典。 ↩
-
Ali Dehghantanha and Sajad Homayoun, “SoK: The Attack Surface of Agentic AI - Tools, and Autonomy,” arXiv:2603.22928, submitted March 24, 2026. プロンプトインジェクション、RAG汚染、ツールとプラグインの悪用、エージェント間脅威にまたがる信頼境界の整理、実行時監視、インシデント対応統制の出典。 ↩
-
Chaofan Li, et al., “Towards Security-Auditable LLM Agents: A Unified Graph Representation,” arXiv:2605.06812, submitted May 7, 2026. Agent-BOM、静的SBOMと実行時ログにおける断片的証拠の限界、検索可能な監査経路、ツール悪用、メモリ汚染、サプライチェーン乗っ取り、信頼悪用を含む攻撃連鎖の再構成の出典。 ↩
-
Lukas Pirch, Micha Horlboge, Patrick Grossmann, Syeda Mahnur Asif, Klim Kireev, Thorsten Holz, and Konrad Rieck, “Toward Securing AI Agents Like Operating Systems,” arXiv:2605.14932, submitted May 14, 2026. リソース分離、権限分離、通信の仲介、既存のOSセキュリティ技術をエージェント型システムへ適用するという、オペレーティングシステムセキュリティの類推の出典。 ↩