SocialHub.AI
Nouveau : déploiement par espace de travail.

Gouvernance de l'IA : Introspection et approbations

Flash place chaque action initiée par l'IA derrière un équipement d'autorisation par action — auto, review ou forbidden — configuré par espace de travail dans la console Activité et approbations de l'IA. Pour un client IA supérieur à MCP, cela signifie deux choses : vous pouvez découvrir les objets métier et les actions que vous êtes autorisé à entreprendre avant d'agir, et vos appels d'écriture renvoient des résultats structurés : exécutés, en attente d'approbation humaine ou refusés avec une raison lisible par machine.

Ce guide couvre les outils d’introspection, la sémantique d’écriture sous un système de révision et le cycle de vie d’approbation. Il s’appuie sur le même serveur MCP géré que celui documenté dans le guide d’intégration MCP. Pour une vue d’ensemble de l’activité, consultez la page produit Gouvernance et approbations IA. Le routage par système est activé progressivement ; le comportement décrit ci-dessous s’applique à mesure que les actions gérées sont déployées dans votre espace de travail.

Introspection métier object (portée introspection:read)

Trois outils de lecture permettent à un client IA d'appréhender la structure de l'entreprise avant toute interaction : les objets existants (y compris les champs et objets personnalisés de l'espace de travail), la signification de chaque attribut, les relations entre les objets et les actions possibles, avec leurs prérequis et les ressources disponibles. Un agent bien conçu consulte ces informations en premier lieu et ne propose que les actions autorisées par les ressources disponibles.

list_objectsLecture

Découvrez les objets métier disponibles dans l'espace de travail de la clé : membre, commande, coupon, campagne, magasin, produit, segment, étiquette, ainsi que tous les objets personnalisés définis par l'espace de travail. Renvoie la clé, l'étiquette et une brève description de chaque object. Appelez d'abord cette fonction pour connaître les éléments existants avant toute lecture ou action.

Paramètres : (none)
describe_objectLecture

La structure complète d'un objet object : ses attributs (y compris les champs personnalisés de l'espace de travail) avec leur type et leur signification métier, ainsi que ses relations avec d'autres objets (par exemple, une commande appartient à un membre ; un coupon peut être émis à un membre). Les champs contenant des informations personnelles sont renvoyés uniquement sous forme de métadonnées — nom, type, sémantique et indicateur d'information personnelle — jamais leurs valeurs.

Paramètres : object
list_actionsLecture

Actions possibles d'un client IA, avec leurs préconditions et leur niveau d'autorisation actuel (automatique / vérification / interdit) tel que configuré par l'espace de travail. Filtrez par object pour afficher uniquement les actions qui y sont liées. Le résultat obtenu correspond exactement aux règles appliquées par la couche de gouvernance ; utilisez-le pour éviter de proposer des actions qui seront refusées.

Paramètres : object?

Les données personnelles identifiables (PII) sont, par conception, uniquement des métadonnées. L'introspection décrit les champs contenant des informations personnelles (leur nom, leur type, leur signification et un indicateur pii) mais ne renvoie jamais leurs valeurs. La lecture des données réelles des membres s'effectue via les outils de lecture des membres et leurs propres périmètres d'accès.

Exemple : décrivez un object, puis vérifiez les engrenages

Exemples descriptifs de la structure requête/réponse (abrégés — les réponses réelles listent chaque champ et action) :

// 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"] }
  ]
}

Le niveau gear affiché correspond au niveau par défaut. L’espace de travail le configure pour chaque action dans la console, et un disjoncteur par action peut rétrograder une action à review à tout moment (la rétrogradation est automatique ; seul un humain peut la rétablir). Il est recommandé de revérifier avec list_actions plutôt que de mettre en cache les niveaux pour les sessions longues.

Outils de rédaction en cours de révision : en attente / refusés.

Lorsqu'un outil d'écriture MCP cible une action dont le mécanisme est review, l'appel not n'exécute pas l'effet de bord. Il renvoie un résultat structuré : soit la proposition a été mise en file d'attente pour approbation humaine (pending), soit elle a été refusée d'emblée (refused), avec un reason_code et un suggested_action lisibles par machine.

// 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_codeSignificationLe rôle de votre agent
gear_forbiddenL'action est interdite dans cet espace de travail (ou l'action ne peut jamais être automatique, comme l'envoi, et a été déclenchée d'une manière qui requiert l'automatisation).N'essayez pas à nouveau. Faites émerger le refus ; suivez les instructions. suggested_action (généralement une action alternative ou « demander à un humain de changer de vitesse »).
recently_rejectedUn utilisateur a récemment refusé la même proposition pour la même cible ; la plateforme ne la remettra pas en attente.Respectez la décision humaine. Ne la reformulez pas et ne la reprenez pas ; suivez-la. suggested_action.

Chaque refus porte un reason_code sous cette forme plus un suggested_action — traitez les codes ci-dessus comme ceux sur lesquels bifurquer et le champ comme extensible. Un refus est une limite difficile à lire pour vous, et non une erreur à réessayer : ne reformulez jamais une proposition pour contourner un refus.

Cycle d'approbation

Une proposition pending est résolue d'une seule manière : approved, rejected ou expired. Les humains la traitent dans la console « Activité et approbations IA » (individuellement ou par lots, selon le type d'action) ; un e-mail récapitulatif quotidien présente les éléments en attente.

ÉtatComment ça se passeEnsuite
pendingUn outil d'écriture a été appelé pendant que le matériel de l'action était en cours de révision : la proposition est en attente d'approbation humaine.Approuvé · Rejeté · Expiré
approvedApprobation humaine. Avant exécution, la plateforme revérifie le raisonnement de l'IA ; s'il n'est plus valable (par exemple, si le client a déjà effectué un nouvel achat), l'action est annulée.Terminal (résultat enregistré dans le journal des décisions ; révocable individuellement).
rejectedUn humain l'a rejeté, éventuellement accompagné d'une note. La même proposition est ensuite refusée avec recently_rejected si soumis à nouveau.Terminal
expiredEn l'absence de décision sous 7 jours, la proposition expire automatiquement et aucune action n'est entreprise.Terminal

Garanties d'idempotence

  • Une approbation, une exécution. L'approbation d'une proposition exécute son action une seule fois ; une approbation répétée reproduit le résultat enregistré sans autre effet secondaire.
  • La nouvelle soumission ne crée pas de doublons. Appeler à nouveau l'outil d'écriture pour la même proposition en attente renvoie le même résultat pending et proposal_id — aucune deuxième carte n'est mise en file d'attente.
  • L'approbation est revalidée, l'exécution est conditionnelle. Lors de l'approbation, la plateforme vérifie si le raisonnement de l'IA est toujours valable ; si ce n'est plus le cas (par exemple, si le client a déjà effectué un nouvel achat), aucune action n'est exécutée : le résultat est enregistré à la place de l'action.
  • Tout est audité et révocable individuellement. Proposition, décision, chemin d'autorisation (auto ou une personne désignée), exécution et résultat sont tous consignés dans le journal des décisions, où une seule entrée peut être annulée.

Le serveur constitue la limite. Les mécanismes de contrôle, la revalidation, l'expiration et le disjoncteur par action sont appliqués côté Flash — ils ne dépendent jamais du raisonnement de l'agent ni de la confirmation côté client. Les actions de type envoi ne peuvent jamais s'exécuter automatiquement, quelle que soit la demande du client.

Primitives de transparence et modèle d'inventaire « boîte de verre »

La même rigueur en matière de transparence — chaque décision automatisée est enregistrée et explicable, les données personnelles sont exclues du contexte du modèle — s'étend au-delà des actions encadrées : à l'optimisation du trafic expérimental, aux invites LLM sortantes et à l'inventaire de modèles d'apprentissage automatique classiques qui alimentent le classement, la prédiction et la détection dans l'ensemble du produit.

Optimisation automatique du trafic A/B : le journal des décisions

Les campagnes récurrentes (automatisations et parcours clients) peuvent s'inscrire à Optimisation automatique du trafic au fil du temps, qui réalloue les pondérations de diffusion entre les variantes d'expérimentation en fonction des performances de clics observées. Chaque réallocation est traçable :

  • Journal de décision (ajout uniquement). Chaque recalcul horaire crée un enregistrement avec les pondérations appliquées et une justification lisible. Les enregistrements ne sont jamais réécrits : le journal conserve l’historique complet expliquant l’évolution du trafic.
  • La répartition configurée reste inchangée. La répartition configurée de votre expérience sert de référence ; les pondérations optimisées sont calculées et enregistrées.
  • Seuil d'exploration : 10 %. Le poids d'aucune variante ne descend jamais en dessous de 10 %, ce qui garantit un trafic constant pour chaque variante et permet de détecter tout retournement de situation.
  • Répartition égale jusqu'à ≥ 100 livraisons par variante. La répartition des poids reste inchangée jusqu'à ce que chaque variante atteigne au moins ~100 livraisons. Aucun réajustement n'est effectué en cas de données peu nombreuses, et ce mécanisme ne désigne aucun « gagnant » statistique.

Masquage LLM PII au niveau de la couture du fournisseur

Avant qu'une invite ne quitte Flash pour un fournisseur LLM externe, les identifiants personnels des membres sont masqués — appliqués au niveau du fournisseur, afin que chaque fonctionnalité d'IA y transite :

  • Pseudo-identifiants déterministes. Les adresses e-mail, les numéros de téléphone et les suites de chiffres (comme sur une carte) sont remplacés par des jetons de substitution stables. Un même identifiant correspond toujours au même pseudonyme, ce qui garantit la cohérence du raisonnement du modèle pour une requête donnée.
  • Le masquage s’applique à chaque invite sortante de chaque fonctionnalité d’IA ; il n’y a rien à activer et il ne peut pas être désactivé depuis le produit.
  • Masquage uniquement, jamais démasqué. Le mappage est unidirectionnel à la limite de sortie : la sortie du modèle n’est jamais réécrite pour rétablir les identifiants réels, de sorte que les informations personnelles brutes ne peuvent pas transiter par une réponse LLM.

Pourquoi cela est important aujourd'hui. Flash Les invites d'IA sont construites à partir de données agrégées et de données de campagne plutôt que de données personnelles — le joint de masquage est la garantie imposée qui tient à mesure que les fonctionnalités d'IA se développent, et non un patch sur une fuite.

Inventaire du modèle « boîte en verre »

Chaque fonctionnalité prédictive ou statistique du produit est un modèle déterministe classique : pas de notation boîte noire, pas d'échantillonnage, de sorte que les mêmes données produisent toujours le même modèle. Chacun porte une porte d'honnêteté explicite : sous la porte, il n'émet rien plutôt qu'une supposition, et chaque score est livré avec les nombres nécessaires pour le recalculer. L'inventaire actuel :

ModèlePouvoirsMesures de transparence
Augmentation de deux modèles (deux ajustements logistiques déterministes)SoClaw classement de la liste de travail de reconquête – valeur à risque × augmentation, formé sur l'ECR permanent du programmeActive uniquement au-delà de ≥200 lignes traitées arrivées à échéance, ≥50 lignes bloquées et ≥20 conversions, les deux ajustements étant convergés ; en dessous, le classement revient à la pure valeur à risque. Les membres à élévation négative (ne pas déranger) coulent ; chaque tâche stocke son instantané de score.
Gamma inter-achats par membre (méthode des moments)Date prévue du prochain achat sur le profil + condition du segment « Jours avant le prochain achat prévu » (négatif = en retard)Nécessite au moins 3 écarts observés (soit au moins 4 achats) et un coefficient de variation inférieur ou égal à 1,5 sur la régularité des transactions. Un acheteur irrégulier reçoit la valeur NULL, jamais une date fictive. Une date de livraison dépassée est considérée comme un retard légitime.
Régression logistique régularisée L2 par équipePropension aux clics (0 – 100), réajustement nocturne par l'équipe au cours des 90 derniers jours d'envoisÉtiquette de clics uniquement (ne s'ouvre jamais — Apple MPP les gonfle) ; fonction de clic préalable protégée contre les fuites ; descente de gradient déterministe en lots complets selon un horaire fixe. Ajuster les portes ≥500 envois / ≥30 clics / ≥50 membres ; un membre a besoin d'au moins 3 envois récents pour être noté.
Item-kNN normalisé en cosinusSuggestions de produits « Aussi achetés » sur toutes les plateformes de recommandation.Le calcul « co_count / √(acheteurs(A) × acheteurs(B)) » corrige le biais de popularité ; les paires doivent avoir au moins deux acheteurs en commun pour être validées ; le nombre brut d'achats conjoints est enregistré avec le score comme preuve vérifiable.
Règles d’association (support/confiance/augmentation)Suggestions de ventes croisées, extraites chaque soir des propres lignes de commande du commerçantUne règle nécessite au moins 3 commandes simultanées et un niveau de confiance d’au moins 5 %. Chaque règle enregistre le nombre brut de commandes dont elle s’inspire, ce qui permet de recalculer manuellement n’importe quel chiffre. Le profil des membres exclut les produits déjà en leur possession et n’est visible que pour les acheteurs actifs.
Valeur aberrante (médiane / MAD)Le behavior_outlier détecteur de fraude aux pointsz robuste ≥ 6 plus planchers absolus (≥10 transactions gagnantes ; les équipes de moins de 50 membres actifs sont ignorées) ; déduplication par mois par membre ; gel uniquement — cela ouvre un examen et n'annule jamais de lui-même.
Risques proportionnels de Kaplan-Meier + Cox (vraisemblance partielle de Nelder-Mead)Rétention par cohorte d'inscription mensuelle + panneau « à quoi la rétention est en corrélation »Définition affichée : désabonnement = 90 jours sans achat, les clients n’ayant jamais acheté sont exclus, les cohortes de moins de 30 membres sont masquées et affichées. L’ajustement du modèle de Cox nécessite au moins 30 événements de désabonnement observés et est limité à 3 covariables ; les corrélations sont indiquées comme telles, et non comme des relations de cause à effet.
Holt-Winters (saisonnalité hebdomadaire, constantes fixes)Les perspectives de revenus des 14 prochains jours sur le tableau de bordConstantes de lissage fixes — pas de surface de réglage par équipe ; affiche la même mesure de revenus certifiée que tous les autres écrans ; ligne pointillée + bande d’erreur avec sa base en dollars imprimée ; entièrement masquée sous 4 semaines d’historique ; étiquetée comme une projection, et non comme un engagement.

Aucun de ces modèles n'agit de manière autonome : ils classent, notent et signalent les activités, et toute transaction financière ou contact avec un membre est soumise aux mécanismes de contrôle mentionnés précédemment.

Pour obtenir des informations techniques complètes sur chaque modèle (méthode, entrées, colonnes de sortie, contrôles d'honnêteté et surfaces de consommation), consultez le document de référence des modèles prédictifs .