メインコンテンツまでスキップ
このページは機械翻訳であり、十分なレビューを経ていません。英語の原文が正となります。セキュリティ、プライバシー、データの取り扱い、コンプライアンス、ライセンスに関する記述は、技術レビューが完了するまで英語のまま掲載しています。 英語の原文を読む

リスクの高いアクションを実行前に承認する BETA

escalate_on_deny は承認リクエストを発行しません

拒否は実行されます。 escalate_on_deny: true のタグが付いたルールは、記述どおりに拒否します。一致したルール自身の policy_id、effect: "deny"、reason_code: "RULE_MATCH" が返されます。

英語の原文 -- 翻訳は技術レビュー待ちです

You are protected.

英語の原文 -- 翻訳は技術レビュー待ちです

The escalation does not. The tag is accepted by the policy schema and carried into the policy bundle, and no enforcer acts on it: no approval request is raised, no approver is notified, and decision.requires_approval stays false. Code that branches on decision.requires_approval in order to act on this tag therefore never runs. (A different mechanism, LLM function policies' require_approval, does set that field -- escalate_on_deny is not wired to it.) Tracking: #2391.

現時点で承認をリクエストするには、明示的に呼び出してください。 client.request_approval(decision) は実際の承認リクエストを送信します。タグがこれを自動的に呼び出すことはありません。承認コールバックを参照してください。#2363 のとおり、承認者向けの /approvals ページは本番環境では承認が必要な状態(ゲート)になっているため、リクエストは API を通じて解決します。

これは、公開済みの Python SDK(controlzero 1.13.14)と公開済みの Node SDK(@controlzero/sdk 1.13.6)のどちらにも当てはまります。

使用する適用面: 承認ワークフロー(ダッシュボード + 通知チャネル) 対応モード: Hosted (SaaS) プラン: Teams ステータス: BETA。リクエストの経路は、ホスト型(SaaS)プランを含むすべてのデプロイメントで提供されています。ポリシーが承認リクエストを発行し、エージェントは一時停止します。承認はデフォルトでオフです。管理者が Settings -> Approvals でスコープ(組織、プロジェクト、または APIキー)ごとに有効にします。有効にするには別の承認者が必要なため、Teams プランから利用できます。

承認者の受信箱にはまだ到達できません

このフローのうち、アクションを一時停止する部分は現在動作します。人間がそれを解除する部分は動作しません。承認の受信箱とリクエスト詳細のルートは、出荷済みのすべてのデプロイメントでダッシュボードにリダイレクトされ、通知のディープリンクも同じパスを指しています。現時点では、Teams を含むどのプランでも、UI からリクエストを承認できません。

その結果は安全ですが、かなり融通が利きません。一時停止されたリクエストは期限まで待機し、SDK は合成された拒否とともに HITLTimeoutError を送出し、アクションは実行されません。現時点で承認を有効にすると、approval_required アクションに対して、監査証跡付きの完全な停止が得られます。承認して続行する動作はまだ提供されません。エンドツーエンドのガイドは承認のセットアップを参照してください。

実施すること​

AI エージェントが、ポリシーで approval_required としているアクション(本番デプロイ、高額の返金、外部へのメール送信など)を試みると、リクエストは一時停止し、承認者にすべてのコンテキストを含む Slack またはメールの通知が届きます。受信箱が提供された後は、承認者が Approve または Deny をクリックし、エージェントは続行するか、理由付きの拒否を受け取ります。

このパスが適している理由​

  • AI エージェントに重要な作業を任せたいが、実行しっぱなしにはさせたくない場合、このパターンが適しています。
  • 承認者のプールが小さく予測可能な場合、承認フローはリクエストごとのポリシー編集よりも優れています。
  • 明確に拒否したい場合は、通常の DLP ルールまたはポリシーを使用してください。承認は「場合によって可否が変わる」判定のためのものです。

このアプローチを使うべきでない場合​

注意

答えが常に同じ場合(「エージェントによる本番への書き込みは決して許可しない」など)は、承認を待たないでください。今すぐ拒否ルールを書いてください。

体験の流れ​

Agent -> Control Zero: invoke tool "send_refund" args {amount: $9500, customer: ...}
Control Zero: policy match "high_value_refund" -> deny
SDK: your code calls client.request_approval(decision) -> POST approval request
Control Zero -> Slack / email / in-app bell: "Agent 'billing-bot' wants to refund $9500 to cust_123.
[ Approve ] [ Deny ] [ Open context ]"
Approver clicks Approve once / for 24h / 7d / 30d / forever.
SDK: PendingApproval.wait() resolves -> agent proceeds with the call (allow path).

一時停止して待機するプリミティブは、現在 SDK で提供されています。エージェントはレビュー可能と判断した拒否に対して request_approval() を呼び出し、承認者が判定を下すまで PendingApproval.wait() でブロックします。ポリシーアクション、通知チャネル、監査証跡のすべてがこのフローを支えています。エージェント自身のコードが行うべきステップは request_approval() の呼び出しです。ポリシータグがこれを自動的に行うことはありません。

セットアップ方法​

  1. ルールにタグを付ける。 レビューしたいルールに escalate_on_deny: true を付けます。現時点では、これはポリシーを読む人に意図を伝える記録です。拒否をリクエストに変えるのはステップ 3 です。
  2. 承認を有効にする。 管理者が Settings -> Approvals でスコープ(組織、プロジェクト、または APIキー)の承認を有効にします。デフォルトではオフです。
  3. SDK を組み込む。 コードがレビュー可能と扱う拒否に対して、request_approval() と wait()(Python)/ requestApproval() と wait()(Node)を呼び出します。リクエストを発行するのはこのステップです。承認コールバックガイドを参照してください。
  4. どこからでも承認する。 承認者は、アプリ内のベル、メールのマジックリンク、または接続済みのアラートチャネルから操作します。

英語の原文 -- 翻訳は技術レビュー待ちです

Every approval is auditable: who approved, when, why, and what grant was created. See Set up approvals for the full walkthrough and Approval workflow for the decision-kind and scope model.

常時拒否の方がよい場合​

答えが常に「いいえ」であれば、承認は使わず、拒否ルールを書いてください。承認を有効にせずに、拒否時に通知してレビューする軽量なループが必要な場合は、理由を付けて拒否し、チャネルに転送します。

- name: high_value_refund
match:
tool: send_refund
argument_gt: { amount: 1000 }
action: deny
reason: 'Refunds over $1,000 require a human approver. Reply in #approvals to authorize.'

アラートチャネルと組み合わせると、拒否の理由とツールの引数がレビュー用のチャネルに届きます。

よくある次のステップ​

リファレンス​