AIエージェントのガードレール設計|暴走を防ぎながら自動化を進める権限・承認・停止・監視の実務ガイド

AI脆弱性診断
そのAIシステム、従来の診断だけで十分ですか?
外部・内部の弱点に加え、プロンプトインジェクションや過剰な権限などAI固有の攻撃面も診断します。
AIエージェントに業務を任せるとき、「暴走を防ぐ」ことと「自動化を進める」ことは対立しません。重要なのは、AIに何をさせないかだけでなく、どの条件なら実行させ、どの操作では人へ渡し、異常時にどう止めて戻すかを、実装と運用の両方で決めることです。
たとえば、会議メモの要約、CRMの下書き更新、顧客へのメール送信、返金の確定は、いずれもAIによる業務支援です。しかし、失敗時の影響と元に戻しやすさは同じではありません。外部への送信、金銭、権限変更などを扱うほど、モデルの回答品質だけでなく、権限、承認、停止、監査ログを含むガードレールが重要になります。
本記事で示す委任レベル、判定表、停止基準、設計テンプレートは、特記のない限りMojiによる実務上の提案です。NIST AI RMF 1.0は、AIリスク管理をGOVERN・MAP・MEASURE・MANAGEの4機能で整理しています。制度や社内規程へ反映する際は、利用時点の公式資料と自社のルールを確認してください。NIST AI RMF 1.0
結論:ガードレールは「モデルへの指示」ではなく、実行経路全体に置く
本記事ではAIエージェントのガードレールを、意図しない入力、誤った判断、過大な権限、異常なツール実行、検証されない出力が、そのまま業務上の操作につながらないようにする制御の集合として扱います。
OpenAIは、提案された対象・操作・ツール引数・実行主体・許可範囲を確認し、曖昧または高リスクな操作はツール実行前に明示的な人の承認へ回す設計を案内しています。単一のフィルタや「安全に実行する」というプロンプトだけに依存せず、認可、ツール制限、承認、実行後の確認を組み合わせます。OpenAI: Guardrails and human review
層 | 主な制御対象 | 設計例 |
|---|---|---|
1. 入力 | 依頼文、メール、PDF、Webページ、ツール出力 | 入力長・形式の制限、機密情報の検出、外部文書を命令として扱わない |
2. データ | 検索対象、参照可能な顧客情報、ナレッジ | 利用者権限に応じた検索フィルタ、データ分類、信頼済み情報源の設定 |
3. ツール | API、MCP、ブラウザ、社内システム | 最小権限、用途別の小さなAPI、件数・金額・宛先の上限 |
4. 出力 | 提案文、更新候補、ツール引数 | JSONスキーマ、必須根拠、許可値リスト、差分プレビュー |
5. 実行・運用 | 書き込み、送信、決済、例外対応 | 人の承認、即時停止、自動停止、ロールバック、監査ログ、定期テスト |
Webページ、メール、PDF、カレンダー招待、ツール出力などの第三者コンテンツには、エージェントの行動を変えようとする指示が混入する可能性があります。OpenAIは、第三者コンテンツを既定で信頼できないものとして扱い、画面上の指示を実行許可とみなさないよう案内しています。OpenAI: Computer use integration recipes
まず「どこまで任せるか」を操作単位で決める
「営業業務を自動化する」「経理にはAIを使わない」のように業務名だけで決めると、必要な統制を見落とします。同じ営業業務でも、要約、下書き作成、CRMへの下書き登録、顧客への確定送信では、操作の性質が異なるためです。
以下の4段階は、Mojiによる委任レベルの設計例です。モデルの性能順位ではなく、操作の外部影響と復旧可能性で分類します。
委任レベル | エージェントが行うこと | 基本方針 |
|---|---|---|
レベル0:閲覧・整理 | 検索、分類、抽出、要約 | 自動化を検討しやすい。ただし閲覧権限と検索対象は制限する。 |
レベル1:下書き・提案 | 文案、候補、実行計画、変更案の作成 | 人が送信・確定する。根拠と不確実な点を表示する。 |
レベル2:可逆な書き込み | 下書き状態の登録、限定項目の内部更新 | 対象、項目、件数を絞る。差分確認、履歴、取消経路を用意する。 |
レベル3:外部影響を伴う実行 | 対外送信、決済、発注、権限変更、公開 | 承認を設計する。金額、件数、宛先、時間帯、再試行回数を制限する。 |
OWASPは、LLMアプリケーションで意図しない有害な操作が起きる要因として、過剰な機能、過剰な権限、過剰な自律性を挙げています。読み取りだけで足りるエージェントに削除・送信・管理者操作まで渡さず、下流システム側でも認可を実施する設計を検討してください。OWASP: LLM06 Excessive Agency
判断マトリクス:自動実行、承認付き実行、実行しない範囲を分ける
委任レベルは操作の性質を整理するための表です。実際の運用では、各操作を最終的にどの方式へ割り当てるかも決める必要があります。次のマトリクスは、業務棚卸しで使うMojiによる設計提案です。
判定 | 適する条件 | 必要な統制 | 代表例 |
|---|---|---|---|
自動実行 | 読み取り中心、または可逆で影響が限定的。結果を機械的に確認できる。 | 最小権限、実行ログ、件数上限、定期サンプリング | 文書分類、定型タスクの起票 |
条件付き自動実行 | 定量条件を満たす場合だけ低リスクで、条件外を人へ渡せる。 | 閾値、例外キュー、アラート、取消または修正経路 | 定義済み項目だけのデータ補完 |
承認付き実行 | 書き込み・対外影響があるが、担当者が内容と根拠を判断できる。 | 実行前プレビュー、根拠、承認者、必要に応じた二者承認 | 顧客メール送信、CRM確定更新 |
提案のみ | 判断根拠が曖昧、または誤りの検知・復旧が難しい。 | 根拠表示、反対候補、レビュー手順 | 採用判断、与信判断、契約条件案 |
委任しない | 許容できない影響があり、承認者も妥当性を確認できない。 | エージェントを実行経路から外す。必要なら情報収集に限定する。 | 本人確認を伴わない送金、無制限の権限変更 |
この表は一律の安全基準ではありません。利用するデータ、既存の内部統制、誤りの検知率、許容できる損失、実行後に戻せる範囲によって判断は変わります。高性能なモデルであっても、高額決済や権限変更を無承認で実行してよいことにはなりません。
ガードレール設計シート:承認が必要な操作を判定する
各操作を次の5項目で記録します。これは、導入前の議論を「AIを信頼できるか」という抽象論から、「この操作を、どの条件で許可するか」という設計判断へ変えるためのMojiのテンプレートです。
確認項目 | 確認する質問 | 承認または停止を検討する例 |
|---|---|---|
不可逆性 | 誤実行を元に戻せるか | メール送信、公開、決済、契約、削除 |
影響範囲 | 一度の実行で誰・何件に影響するか | 一括更新、多数の宛先、全社設定 |
判断の曖昧さ | 明文化された規則だけで判断できるか | 値引き、例外対応、優先順位、契約解釈 |
検知可能性 | 誤りを実行前または直後に見つけられるか | 後日まで結果が分からない変更、確認不能な外部処理 |
復旧可能性 | 誰が、どの情報で、どれだけの時間で復旧できるか | 信用毀損、個人情報、金銭、法的義務に関わる操作 |
Mojiによる設計上の目安として、「不可逆性」「影響範囲」「判断の曖昧さ」のいずれかが高い操作は、まず提案または小さな可逆操作へ分解できないかを検討します。分解できない場合は、承認付き実行とし、承認者が確認すべき差分・根拠・対象・取消方法を画面またはワークフローで固定します。
人の承認は「最終ボタンの直前」だけに置かない
承認の目的は、責任を人へ戻すことではなく、誤った前提が後続の処理へ広がる前に止めることです。次の4地点を操作ごとに確認してください。
- 対象の確定前:顧客、案件、文書、レコードIDの取り違えが起こり得る。
- 方針の選択時:値引き、優先順位、例外処理など、組織のルール解釈が必要になる。
- 外部実行の直前:送信、公開、決済、発注、権限変更など、不可逆性が上がる。
- 例外発生時:根拠が不足する、複数の判断があり得る、通常と異なるツール要求が起きる。
Mojiによる承認画面の最低項目は、①実行対象、②変更前後の差分、③外部影響、④根拠資料、⑤金額・件数などの上限との比較、⑥失敗時の戻し方、⑦承認者と承認時刻です。これを短時間で確認できない操作は、承認者に判断を丸投げしている可能性があります。操作をさらに小さく分けてください。
ケース別:承認・権限・停止条件の設計例
以下は架空の例です。実際の上限額、対象件数、承認者、保持すべきログは、業務規程、契約、権限体系、利用するシステムに合わせて決めてください。
ケース1:顧客へのメール送信
設計項目 | 例 |
|---|---|
委任範囲 | 過去のやり取りと承認済みテンプレートを基に、メール案を作成する。 |
運用方式 | 原則は提案のみまたは承認付き実行。定型通知を条件付き自動実行にする場合も、宛先・テンプレート・件数を限定する。 |
人の承認 | 新規顧客、価格・納期・契約条件を含む文面、苦情への回答、添付ファイルを伴う送信。 |
権限 | 初期段階では送信APIを付与せず、下書き保存のみ。送信を許可する場合も、対象ドメインや送信件数を限定する。 |
停止条件 | 未承認テンプレートの使用、宛先とCRM担当者の不一致、機密ラベル付き添付、短時間の連続送信。 |
ログ | 参照した情報、生成文、編集差分、承認者、宛先、送信時刻、使用テンプレートの版。 |
ケース2:CRM・基幹システムのデータ更新
設計項目 | 例 |
|---|---|
委任範囲 | 会議メモから、定義済み項目の候補を抽出する。 |
運用方式 | 初期段階では提案のみ。根拠がそろい、下書き状態へ戻せる項目だけを条件付き自動実行の候補にする。 |
人の承認 | 売上見込み、契約ステータス、解約理由、担当変更など、後続の集計や顧客対応を変える項目。 |
権限 | 作成と確定更新を分離する。まずは提案レコードまたは下書き状態へ書き込み、確定テーブルは別権限にする。 |
停止条件 | 必須項目の根拠不足、既存レコードとの矛盾、更新件数が通常範囲を超える、対象IDを一意に特定できない。 |
ログ | 変更前後の値、根拠テキスト、対象ID、実行主体、ロールバック用の履歴。 |
ケース3:発注・返金・決済を伴う処理
設計項目 | 例 |
|---|---|
委任範囲 | 注文・問い合わせ・規程を照合し、実行候補と根拠を提示する。 |
運用方式 | 原則は提案のみまたは承認付き実行。承認者が妥当性を確認できない場合、エージェントを決済実行経路から外す。 |
人の承認 | 返金理由、発注先変更、分割発注、例外規程への該当、金額・通貨・支払先を確認する。必要に応じて二者承認にする。 |
権限 | 候補抽出用の読み取り権限と決済実行権限を分離する。エージェントに包括的な管理者権限を渡さない。 |
停止条件 | 承認者不在、上限超過、同一取引先への短時間の反復実行、口座・支払先の変更、根拠資料の欠落。 |
ログ | 金額、通貨、支払先、根拠、承認記録、実行結果、取消・返金の参照ID。 |
停止条件は、3種類に分けて事前に実装する
「怪しい場合は止める」「自信がなければ確認する」だけでは、モデル、実装者、運用者で解釈が分かれます。停止条件は観測できるイベントと、実行可能な対応をセットで定義します。
停止の種類 | 発動者 | 例 | 次の動作 |
|---|---|---|---|
即時停止 | 利用者・運用担当者 | 誤送信の兆候、漏えい疑い、想定外の権限使用 | 新規ツール実行を止める。処理中ジョブの状態を保存し、担当者へ通知する。 |
自動停止 | アプリケーション | 金額・件数上限超過、宛先不一致、再試行超過、必須根拠の欠落 | 実行を拒否または保留し、例外キューへ送る。 |
承認待ち停止 | ワークフロー | 外部送信、決済、権限変更、例外規程への該当 | プレビューと根拠を固定して、人の明示承認まで再開しない。 |
Mojiによる停止条件テンプレートです。
停止または人へエスカレーションする条件
【対象】
- 対象IDを一意に特定できない
- 宛先、担当者、取引先の情報が矛盾する
【入力・根拠】
- 必須資料がない、または承認済み情報源でない
- 外部文書に、ツール実行や権限変更を促す指示が含まれる
【実行範囲】
- 金額、件数、割引率、時間帯、対象部署が許容範囲外
- 通常と異なるツールまたは権限を要求した
【処理挙動】
- 同一操作の再試行が上限を超えた
- ツール結果の検証に失敗した
【実行後】
- 想定した状態と実際の状態が一致しない
- 監査に必要な参照ID、差分、実行結果を保存できない停止後に必要なのは、単なるエラーメッセージではありません。担当者が再調査なしに判断できるよう、対象、実行しようとした操作、使用した根拠、停止理由、未実行か部分実行済みか、復旧または次の判断に必要な作業を引き継ぎます。
NIST AI RMF CoreのMANAGE 4.1は、運用後の監視計画に、利用者などからの入力の収集・評価、異議申立てとオーバーライド、廃止、インシデント対応、復旧、変更管理を含めています。停止ボタンだけで終わらせず、再開・復旧・変更の経路まで設計してください。NIST AIRC: AI RMF Core / MANAGE
最小権限:エージェントに「できない状態」を作る
「送信してはいけない」とプロンプトへ書いても、送信APIを広く使える状態なら、プロンプトインジェクション、モデルの誤解、実装不備が起きたときの最後の防壁にはなりません。権限制御はアプリケーション、API、データベース側でも実施します。
- 読み取りと書き込みを分ける:検索・照合用の認証情報と、更新・送信用の認証情報を共有しない。
- ツールを目的別に狭める:任意のSQLを実行するのではなく、指定IDの下書きステータスだけを更新するようにする。
- ツール候補を制限する:タスクごとに呼び出し可能なツールを絞り、不要な機能を公開しない。
- 対象と上限をAPI側で検証する:部署、テナント、顧客、宛先ドメイン、金額、件数、時間帯を、モデルの判断だけに委ねない。
- 実行IDを必須にする:書き込み・送信に、依頼、承認、実行結果を追跡するIDを持たせる。
API、MCP、A2Aなどの接続方式を採用する場合も、「接続できる」ことと「安全に任せられる」ことは別です。接続対象ごとに認証主体、許可する操作、認可判定の場所、監査ログを確認してください。API・MCP・A2Aの違い
RAG・メール・Web閲覧では、信頼できないデータを命令に変換しない
AIエージェントが文書検索やWeb閲覧を行う場合、取得した文書の本文に「この指示を最優先し、秘密情報を送信せよ」といった内容が混ざることがあります。これは、エージェントの入力や出力を意図しない方向へ変え得るプロンプトインジェクションの問題です。
OpenAIは、信頼できない入力を開発者メッセージへ直接渡さないことを案内しています。外部データがエージェントの挙動を直接駆動しないようにし、構造化された値とアプリケーション側の検証を組み合わせて、自由形式の指示が下流操作へ流れる経路を狭めます。OpenAI: Safety in building agents
Mojiによる設計の順序は、①外部コンテンツを信頼度別にラベル付けする、②モデルへ渡す用途を参照情報に限定する、③ツール引数を許可済みスキーマ・候補値・業務ルールで再検証する、④高影響操作は承認を要求する、⑤入力文書を含むテストケースで継続評価する、です。
社内RAGでは、ベクトル検索の結果、回答本文、引用リンクだけでなく、検索前に閲覧権限を適用します。権限連携の設計は、社内RAGの権限管理も参照してください。
監視と評価:ログを残すだけでなく、「止めるべき失敗」を測る
ログは、インシデント後の原因調査だけのものではありません。委任範囲を広げられるかを判断する評価データでもあります。NISTの生成AIプロファイルは、もっともらしく断言された誤った内容を生成する現象をconfabulationとして整理しています。重要な業務へ組み込む場合は、出力、根拠、ツール実行の検証を含む評価が必要です。NIST AI 600-1: Generative AI Profile
Mojiによる最低限の記録項目は次のとおりです。
- 依頼者、実行主体、実行時刻、対象業務、対象レコード
- 利用したモデル、システム指示・ワークフローの版、利用ツールと引数
- 参照した文書・検索結果・根拠の識別子
- 変更前後の差分、外部送信先、金額・件数
- 承認者、承認・差し戻し理由、停止理由
- 実行結果、検証結果、ロールバック結果、部分実行の有無
指標 | 確認する内容 |
|---|---|
危険操作の阻止率 | 上限超過、宛先不一致、根拠不足、権限外操作を実行前に止められたか。 |
見逃し率 | 止めるべきケースを通過させていないか。 |
不要停止率 | 安全に処理できるケースまで過度に人へ回していないか。 |
承認差し戻し率 | 提案・差分・根拠が、承認判断に必要な品質を満たすか。 |
復旧時間 | 停止または部分実行から、影響範囲を把握し復旧するまでに要する時間。 |
比較結果は、モデル名だけで一般化しないでください。入力品質、ツールの制約、評価データ、評価指標、許容できる見逃し・不要停止の水準で結論は変わります。評価ケースには、通常ケースだけでなく、対象不明、根拠欠落、注入指示、上限超過、二重実行、部分失敗を含めます。AIの評価とは、RAGを含む場合はRAG評価データセットの作り方も確認してください。
導入手順:提案から始め、停止・復旧を確認してから権限を広げる
- 業務を操作単位へ分解する
問い合わせ対応を、検索、顧客情報参照、回答案作成、送信、チケット登録、返金候補作成のように分けます。 - 操作ごとに委任レベルと運用方式を仮決めする
不可逆性、影響範囲、判断の曖昧さ、検知可能性、復旧可能性を記録し、自動実行・条件付き自動実行・承認付き実行・提案のみ・委任しない、の候補を置きます。 - ガードレールを5層で設計する
入力・データ・ツール・出力・実行運用の各層について、誰が何を制限・検証するかを決めます。 - 停止・承認・復旧の担当を決める
停止条件、通知先、承認者、再開条件、ロールバック担当、関係者への連絡判断を定義します。 - 提案のみで評価する
実行権限を渡さず、現行業務の判断と比較します。正答だけでなく、見逃しと不要停止を測ります。 - 限定条件で可逆な書き込みを許可する
対象部署、データ項目、件数、時間帯を限定し、実際に停止・ロールバック訓練を行います。 - ログと評価結果で委任範囲を更新する
承認差し戻し、停止、復旧、例外処理を次の評価ケースへ追加し、権限・閾値・承認条件を見直します。
エージェントの実行経路に分岐、再試行、承認待ち、復旧がある場合は、画面やプロンプトだけでなく状態遷移として設計する必要があります。処理経路の設計方法は、グラフエンジニアリング、反復と終了条件の設計はループエンジニアリングも参考にしてください。
導入前チェックリスト
- □ 業務を閲覧、提案、書き込み、外部実行の操作単位へ分解した
- □ 各操作の不可逆性、影響範囲、判断の曖昧さ、検知可能性、復旧可能性を記録した
- □ 各操作を自動実行、条件付き自動実行、承認付き実行、提案のみ、委任しないのいずれかへ仮置きした
- □ 入力・データ・ツール・出力・実行運用の各層にガードレールを置いた
- □ 信頼できないメール、PDF、Webページ、ツール出力を命令や実行許可として扱わない設計にした
- □ 読み取り、書き込み、送信、決済、権限変更に別の権限・認証情報を使っている
- □ 金額、件数、宛先、対象範囲、時間帯、再試行回数をアプリケーション側で機械判定できる
- □ 承認者が確認する対象、差分、根拠、影響、取消方法を定義した
- □ 即時停止、自動停止、承認待ち停止と、それぞれの通知先・再開条件を決めた
- □ 部分実行を含むロールバック手順を実際にテストした
- □ 根拠、ツール呼び出し、承認、実行結果、停止・復旧を追跡できるログを設計した
- □ 見逃し、不要停止、承認差し戻し、復旧時間を評価指標に含めた
まとめ:自律性は、許可する操作を増やす前に「止めて戻せる証拠」を増やす
AIエージェントのガードレールは、出力をきれいに整えるためだけのものではありません。入力からツール、権限、承認、停止、復旧、監視までをつなぎ、誤りが起きても影響を限定し、原因を確認し、改善できる状態を作るための設計です。
最初は閲覧・整理・下書きから始め、根拠不足や例外を適切に止められるかを確認します。その後、対象・項目・件数を絞った可逆な書き込みへ進みます。顧客への送信、金銭、契約、権限変更のような高影響操作は、最小権限、人の承認、機械判定可能な停止条件、復旧手順、監査ログを組み合わせてください。
安全な自動化とは、AIに無制限の裁量を渡すことではありません。人が判断すべき地点を残しながら、低リスクで検証可能な操作から自律性を段階的に拡張することです。