AI ガバナンス: 内省と承認
Flash は、AI によって開始されるすべてのアクションを、AI アクティビティと承認コンソールのワークスペースごとに構成されたアクションごとの承認ギア (auto、review、または forbidden) の背後に配置します。 MCP を介した AI クライアントにとって、これは 2 つの意味を持ちます。1 つはビジネス オブジェクトと、行動する前に実行が許可されているアクションを検出できること、もう 1 つは書き込み呼び出しが 構造化された結果 (実行されたか、人間の承認待ちであるか、機械可読な理由で拒否されたか) を返すことです。
このガイドでは、イントロスペクション ツール、レビュー ギアでの書き込みセマンティクス、および承認ライフサイクルについて説明します。これは、MCP 統合ガイド に記載されているのと同じ管理対象の MCP サーバー上に構築されます。ビジネスの概要については、AI ガバナンスと承認の製品ページをご覧ください。ギア ルーティングは段階的に有効になります。管理されたアクションがワークスペースにロールアウトされると、以下の動作が適用されます。
ビジネス オブジェクトのイントロスペクション (スコープ introspection:read)
3 つの読み取りツールを使用すると、AI クライアントはビジネスに触れる前に、どのオブジェクトが存在するか (ワークスペース独自のカスタム フィールドやカスタム オブジェクトを含む)、各属性の意味、オブジェクトの関係、および実行可能なアクション (前提条件と現在のギアを含む) を学習できます。行儀の良いエージェントは、最初にこれらを呼び出し、ギアが実際に許可するアクションのみを提案します。
list_objects読むキーのワークスペースで使用できるビジネス オブジェクト (メンバー、注文、クーポン、キャンペーン、ストア、製品、セグメント、タグ) と、ワークスペースで定義されているカスタム オブジェクトを検出します。各オブジェクトのキー、ラベル、および 1 行の意味を返します。読んだり行動したりする前に、まず電話して何が存在するのかを確認してください。
(none)describe_object読む1 つのオブジェクトの完全な形状: その属性 (ワークスペースのカスタム フィールドを含む) とそのタイプおよびビジネス上の意味、および他のオブジェクトとの関係 (例: 注文はメンバーに属し、クーポンはメンバーに発行可能)。 PII フィールドはメタデータとしてのみ返されます (名前、タイプ、セマンティクス、pii フラグ)。値は返されません。
objectlist_actions読むAI クライアントが実行できるアクション。各アクションの前提条件と、ワークスペースで構成された現在の承認ギア (自動 / レビュー / 禁止) が含まれます。オブジェクトごとにフィルターすると、それに触れるアクションのみが表示されます。これが返すものは、まさにガバナンス層が強制するものです。これを使用して、拒否されるアクションの提案を回避します。
object?PII は設計上、メタデータのみです。 イントロスペクションは、個人情報 (名前、タイプ、意味、および pii フラグ) を保持するフィールドを記述しますが、値を返すことはありません。実際のメンバー データの読み取りは、メンバー読み取りツールと独自のスコープを経由します。
例: オブジェクトを説明してから歯車を確認する
リクエスト/レスポンスの形式の説明的な例 (省略 - 実際のレスポンスにはすべてのフィールドとアクションがリストされます):
// describe_object { "object": "member" }
{
"object": "member",
"label": "Member",
"meaning": "A loyalty program member owned by this workspace.",
"fields": [
{ "name": "email", "type": "string", "pii": true,
"meaning": "Contact email. PII: metadata only — values are never returned here." },
{ "name": "tier", "type": "string", "pii": false,
"meaning": "Current loyalty tier." },
{ "name": "membership_no", "type": "string", "pii": false, "custom": true,
"meaning": "Workspace-defined custom field." }
],
"relationships": [
{ "to": "order", "kind": "has_many", "meaning": "Orders placed by this member." },
{ "to": "coupon", "kind": "has_many", "meaning": "Coupons issued to this member." },
{ "to": "tag", "kind": "has_many", "meaning": "Tags currently applied to this member." }
]
}// list_actions { "object": "member" }
{
"actions": [
{ "action": "issue_coupon", "gear": "review",
"preconditions": ["member has consent", "coupon pool has stock"] },
{ "action": "earn_points", "gear": "auto",
"preconditions": ["amount within the workspace cap"] },
{ "action": "assign_tag", "gear": "auto",
"preconditions": ["tag exists and is active"] },
{ "action": "add_member_note", "gear": "auto",
"preconditions": ["note passes server-side sanitation"] },
{ "action": "send_campaign", "gear": "review", "locked": true,
"preconditions": ["sending can never be auto — a human always approves"] }
]
}表示されている gear は、強制されるギアです。ワークスペースはコンソールでアクションごとに設定します。また、アクションごとのサーキット ブレーカーでいつでもアクションを review に降格できます (自動的に降格するだけで、人間のみが復元します)。長時間のセッションではギアをキャッシュするのではなく、list_actions で再確認してください。
レビューギアの下のツールの作成: 保留中/拒否されました
MCP 書き込みツールがギアが review であるアクションをターゲットにしている場合、呼び出しは副作用を実行しません。これは構造化された結果を返します。つまり、プロポーザルが人間の承認のためにキューに入れられたか (pending)、機械可読な reason_code および suggested_action で完全に拒否された (refused) かのいずれかです。
// proposed — waiting for a human
{
"status": "pending",
"proposal_id": "prop_9f2c…",
"action": "issue_coupon",
"expires_at": "2026-07-10T00:00:00Z", // 7 days
"message": "Queued for human approval in
AI Activity & Approvals."
}// refused — with a reason and a next step
{
"status": "refused",
"action": "issue_coupon",
"reason_code": "recently_rejected",
"suggested_action": "A human rejected this
proposal recently. Do not re-propose;
consider a different action or ask the
operator."
}| reason_code | 意味 | エージェントがやるべきこと |
|---|---|---|
gear_forbidden | アクションのギアは、このワークスペースでは禁止に設定されています (または、アクションは決して自動ではなく (送信など)、自動を必要とする方法で呼び出されました)。 | 再試行しないでください。拒否を表に出し、 suggested_action (通常は別の行動、または「人間にギアを変えてもらうよう頼む」)。 |
recently_rejected | 最近、人間が同じターゲットに対する同じ提案を拒否しました。プラットフォームはそれを再度キューに入れません。 | 人間の決定を尊重してください。それを再提案したり、言い換えたりしないでください。 suggested_action. |
すべての拒否には、この形の reason_code と suggested_action が含まれます。上記のコードを分岐先のコードとして扱い、フィールドを拡張可能なものとして扱います。拒否はあなたにとって明確な境界線であり、再試行するエラーではありません。拒否をすり抜けて提案を言い換えないでください。
承認ライフサイクル
pending プロポーザルは、approved、rejected、または expired のいずれか 1 つの方法でのみ解決されます。人間は AI アクティビティと承認コンソールでそれに基づいて行動します (アクション タイプごとに単一またはバッチ)。毎日のダイジェストメールで、何が待っているかが明らかになります。
| 州 | それがどのように起こるのか | それから |
|---|---|---|
pending | アクションのギアのレビュー中に書き込みツールが呼び出されました。提案は人間の承認を得るためにキューに入れられています。 | 承認されました · 拒否されました · 期限切れになりました |
approved | 人間がそれを承認したのです。実行前に、プラットフォームは AI が述べた推論を再検証します。それが保持されなくなった場合 (顧客がすでに再購入した場合など)、アクションは実行されません。 | 端末(結果は決定ログに記録され、個別に取り消し可能) |
rejected | 担当者が却下(必要に応じてメモを添える)。同じ提案が再提出された場合、recently_rejectedというメッセージとともに却下される。 | ターミナル |
expired | 7 日以内に決定はありません。提案は自動的に期限切れになり、何も実行されません。 | ターミナル |
べき等性の保証
- 1 回の承認、1 回の実行。 プロポーザルを承認すると、そのアクションが 1 回だけ実行されます。承認を繰り返すと、保存された結果が再実行されますが、二次的な影響はありません。
- 再送信は重複しません。 保留中に同じプロポーザルに対して書き込みツールを再度呼び出すと、同じ
pending結果とproposal_idが返されます。2 番目のカードはキューに入れられません。 - 承認は再検証され、実行は条件付きです。 承認時に、プラットフォームは AI が述べた推論が依然として有効であるかどうかを再チェックします。それが行われなくなった場合 (たとえば、顧客がすでに再購入した場合)、何も実行されず、アクションの代わりに結果が記録されます。
- すべてが監査され、個別に取り消し可能です。 提案、決定、承認パス (
autoまたは指名された人間)、実行、結果はすべて決定ログに記録され、単一のエントリを元に戻すことができます。
サーバーが境界です。 ギア、再検証、有効期限、およびアクションごとのサーキット ブレーカーは Flash 側で強制されます。エージェントの推論やクライアント側の確認は決して信頼されません。送信タイプのアクションは、クライアントが何を要求しても、自動的に実行されることはありません。
透明プリミティブとガラスボックスモデルのインベントリ
すべての自動決定を記録し説明可能にし、個人データをモデルのコンテキストから切り離すという、同じ「ガラスボックス」型の規律は、管理対象のアクションだけでなく、実験的なトラフィック最適化、アウトバウンドLLMプロンプト、そして製品全体のランキング、予測、検出を支える従来の機械学習モデルインベントリにも適用されます。
A/B トラフィックの自動最適化: 意思決定ログ
定期的なキャンペーン(オートメーションやジャーニー)では、時間の経過とともにトラフィックを自動最適化するを選択できます。これにより、観察されたクリック パフォーマンスに基づいて、テスト バリアント間で配信の重みが再割り当てされます。すべての再割り当ては監査可能です。
- 追加専用の決定ログ。 1 時間ごとの再計算により、適用された重みと人間が判読できる根拠を含む 1 つのレコードが書き込まれます。記録が書き換えられることはありません。ログには、トラフィックがそのように見える理由の完全な履歴が記録されます。
- 設定された分割は決して変更されません。 実験の設定された分割はベースラインとしてそのまま残ります。最適化された重みが計算され、それとともに記録されます。
- 探索フロア: 10%。 バリアントの重みが 10% を下回ることはありません。そのため、すべてのバリアントはトラフィックを受信し続け、反転は引き続き検出されます。
- バリアントあたり 100 件以上が配信されるまで均等に分割されます。 すべてのバリアントが少なくとも 100 件以上配信されるまで、重みは設定された分割に留まります。シン データでの再割り当てはなく、このメカニズムによって統計的な「勝者」が宣言されることはありません。
プロバイダー シームでの LLM PII マスキング
プロンプトが Flash から外部 LLM プロバイダーに送信される前に、メンバーの個人識別子がマスクされ、プロバイダーの継ぎ目で適用されるため、すべての AI 機能がそれを通過します。
- 決定的な仮名。 電子メール アドレス、電話番号、およびカードのような数字は、安定した代用トークンに置き換えられます。同じ識別子は常に同じ仮名にマップされるため、プロンプト全体にわたるモデルの推論は一貫したままになります。
- マスキングは、すべての AI 機能からのすべての送信プロンプトに適用されます。有効にするものは何もなく、製品からオフにすることはできません。
- マスクのみ、マスク解除されません。 マッピングは出力境界で一方向です。モデル出力が実際の識別子を復元するために書き換えられることはありません。そのため、生の PII が LLM 応答を往復することはできません。
これが今日重要な理由 Flash の AI プロンプトは、個人記録ではなく集計データとキャンペーン データから構築されています。マスキング シームは、AI 機能の成長に伴って保持される強制的な保証であり、リークに対するパッチではありません。
ガラスボックスモデルの在庫
製品のすべての予測機能または統計機能は、古典的な決定論的モデルです。ブラックボックス スコアリングやサンプリングがないため、同じデータから常に同じモデルが生成されます。それぞれのスコアには明示的な正直ゲートが含まれています。ゲートの下では推測ではなく何もは出力されず、すべてのスコアには再計算に必要な数値が含まれています。現在の在庫:
| モデル | 権力 | 正直ゲート |
|---|---|---|
| 2 モデル アップリフト (2 つの決定論的ロジスティック フィット) | SoClaw 勝利ワークリストのランキング — バリューアットリスク × 上昇率、プログラム独自の常時ホールドアウト RCT でトレーニング | 両方の近似が収束した状態で、成熟した処理行 200 件以上、ホールドアウト行 50 件以上、コンバージョン 20 件以上を超えたもののみをアクティブ化します。それを下回ると、ランキングは純粋なバリューアットリスクに戻ります。負の隆起 (邪魔しない) メンバーは沈みます。各タスクはそのスコアのスナップショットを保存します。 |
| メンバーごとの相互購入ガンマ (瞬間メソッド) | プロファイル上の次回購入予定日 + 「次回購入予定日までの日数」セグメント条件 (負 = 期限切れ) | 観察されたギャップが 3 つ以上(つまり購入が 4 つ以上)、リズムの規則性に関する変動係数ゲート(≤1.5)が必要です。不規則な購入者は NULL を取得し、でっちあげの日付は取得されません。過去の予定日は、正直な期限超過シグナルとして出力されます。 |
| チームごとの L2 正規化ロジスティック回帰 | クリック傾向 (0 ~ 100)、チーム独自の過去 90 日間の送信に基づいて毎晩再調整 | クリックのみのラベル (決して開かない - Apple MPP によって拡張されます)。漏れ防止のプリアクリック機能。固定スケジュールでの決定的なフルバッチ勾配降下。ゲート数 ≥500 送信 / ≥30 クリック / ≥50 メンバー;メンバーがスコアを取得するには、最近の送信が 3 件以上必要です。 |
| コサイン正規化項目-kNN | レコメンデーション画面全体での「これも購入しています」製品の組み合わせ | co_count / √(購入者(A) × 購入者(B)) は人気バイアスを修正します。ペアが成立するには 2 人以上の共有バイヤーが必要です。生の共同購入数は、検査可能な証拠としてスコアと一緒に保存されます。 |
| 協会ルール(サポート/信頼/リフト) | マーチャント自身の注文ラインから毎晩採掘されるクロスセルの提案 | ルールには 3 つ以上の共起順序と 5% 以上の信頼度が必要です。すべてのルールは、そこから導出された生の注文数を保存するため、任意の数値を手動で再計算できます。会員プロフィール画面には、すでに所有している製品は除外され、アクティブな購入者のみが表示されます。 |
| ロバスト統計の外れ値 (中央値 / MAD) | の behavior_outlier ポイント詐欺検出器 | 堅牢なz ≥ 6と絶対的な下限値(獲得トランザクションが10件以上、アクティブメンバーが50人未満のチームはスキップ);メンバーごとの月別重複排除;凍結のみ — レビューが開始され、自動的に無効化されることはありません。 |
| カプラン・マイヤー + コックス比例ハザード (ネルダー・ミード偏尤度) | 月次サインアップ コホート別の維持率 + 「維持率との相関関係」パネル | ビューに表示される定義:解約=90日間購入がないユーザー。購入経験のないユーザーは除外。メンバー数が30人未満のコホートは非表示および公開。Cox回帰分析には30件以上の解約イベントの観測が必要で、共変量は3つに制限。相関関係は相関関係として表示され、因果関係とは示されない。 |
| Holt-Winters (毎週の季節性、固定定数) | ダッシュボード上の今後 14 日間の収益見通し | 固定平滑化定数 - チームごとの調整サーフェスはありません。他のすべての画面と同じ認証済み収益指標が表示されます。点線と誤差帯が表示され、そのドルベースが印刷されます。4週間分の履歴の下に完全に隠れています。予測値であり、確約値ではありません。 |
これらのモデルはどれも単独で動作することはありません。ランク付け、スコア付け、フラグ付けが行われ、お金を動かしたりメンバーに連絡したりするものはすべて、依然として上記の管理されたアクションギアを通過します。
各モデルの完全なエンジニアリングの詳細 (メソッド、入力、出力列、正直ゲート、消費面) については、予測モデル リファレンスを参照してください。