KLA Digital Logo
KLA Digital
Concepts clés

Exécution sous contrôle de politique

Comment KLA évalue chaque action d'agent au regard d'une politique déclarative et la résout en l'un des quatre résultats possibles : allow, warn, require_approval ou block.

5 min de lecture1206 mots

Lorsqu'un agent IA d'entreprise tente d'effectuer une action conséquente (émettre un remboursement, envoyer un document pour relecture, appeler une API externe), KLA Control Plane évalue cette action au regard de la politique avant son exécution. KLA Control Plane est une couche de sécurité, d'audit et de gouvernance à l'exécution qui gouverne en place les agents IA : vous instrumentez vos agents existants au lieu de les replateformer. L'exécution sous contrôle de politique est le mécanisme qui décide, en temps réel, si une action se poursuit, se poursuit avec un avertissement, se met en pause pour un humain ou est arrêtée. Cette page explique le modèle de décision et la manière dont une action mise en pause devient une Escalation acheminée vers le Decision Desk.

Les quatre résultats de décision

Chaque évaluation de politique dans KLA se résout en exactement un résultat. Les résultats sont ordonnés par précédence : lorsque plusieurs règles correspondent à une action, le résultat applicable le plus fort l'emporte.

Résultat Précédence Ce qui se passe Exécution
allow La plus basse L'action est autorisée sans aucune friction. Se poursuit
warn Basse L'action se poursuit, mais un code de raison et un avis consultatif sont enregistrés pour une relecture ultérieure. Se poursuit
require_approval Élevée L'exécution se met en pause. Une Escalation est créée et acheminée vers le Decision Desk pour une décision humaine. En pause
block La plus élevée L'action est refusée. L'agent reçoit un refus structuré qu'il peut gérer proprement. Arrêtée

La précédence rend le modèle fail-closed et prévisible. Si une règle large indique allow mais qu'une règle plus restreinte et de précédence supérieure indique require_approval, l'action est mise en pause. Un seul block n'importe où dans l'ensemble des règles correspondantes arrête l'action, quel que soit le nombre de règles allow qui ont également correspondu.

flowchart LR
  A["Action de l'agent"] --> B{"Décision du Policy Engine"}
  B -->|allow| C["Exécuter"]
  B -->|warn| D["Exécuter et enregistrer l'avis"]
  B -->|require_approval| E["Créer une Escalation"]
  E --> F["Decision Desk"]
  F -->|approuvée| C
  F -->|rejetée| G["Arrêter l'action"]
  B -->|block| G

Comment une action est évaluée

L'agent (ou le SDK KLA en son nom) soumet une Decision Request : l'action accompagnée de son contexte. Le contexte inclut l'agent appelant, l'outil invoqué, les paramètres ainsi que tous les attributs métier que vous y attachez (montant de la transaction, niveau du client, classification du document). KLA évalue cette requête au regard des politiques actuellement publiées pour votre tenant et renvoie l'un des quatre résultats.

curl https://api.kla.digital/v1/decisions.evaluate \
  -H "Authorization: Bearer $KLA_ACCESS_TOKEN" \
  -H "x-tenant-id: acme" \
  -H "Content-Type: application/json" \
  -d '{
    "agent": "claims-triage",
    "action": "execute_refund",
    "attributes": { "amount": 420.00, "customer_tier": "standard" }
  }'

Une réponse require_approval inclut l'identifiant de l'Escalation qui a été ouverte, afin que votre intégration puisse indiquer à l'utilisateur final que l'action est en attente de relecture plutôt qu'en échec.

{
  "outcome": "require_approval",
  "reasonCodes": ["REFUND_OVER_THRESHOLD"],
  "remediation": "Refunds above $100 require a reviewer. This request was routed to the Decision Desk.",
  "escalationId": "esc_01HZ8K..."
}

Codes de raison et remédiation

Chaque décision autre que allow porte deux éléments en plus du verdict : un ou plusieurs codes de raison et des conseils de remédiation. Un code de raison est un identifiant stable et lisible par machine (par exemple REFUND_OVER_THRESHOLD) qui explique pourquoi le résultat a été atteint. Les conseils de remédiation constituent une instruction courte et lisible par un humain sur la marche à suivre.

Cet appariement sert les trois lecteurs. Les développeurs branchent leur code sur les codes de raison plutôt que d'analyser du texte. Les relecteurs au Decision Desk disposent d'un contexte en langage clair pour l'action qui leur est présentée. Les responsables conformité bénéficient d'un vocabulaire cohérent qui se rattache proprement aux cadres de contrôle. Les codes de raison et la remédiation sont obligatoires pour les résultats warn, require_approval et block, de sorte qu'aucun refus ni aucune pause ne soit jamais une impasse silencieuse.

ℹ️ Note
Les codes de raison sont consignés dans le Lineage Record de l'action. Des mois plus tard, un auditeur peut reconstituer exactement quelle politique s'est déclenchée et pourquoi, sans accès aux journaux de votre application.

Le Policy Engine

KLA évalue les politiques au niveau de la couche applicative, au plus près de l'action de l'agent et de son contexte métier. Le policy engine combine deux types de vérifications :

  • Les vérifications d'accès déterminent si l'appelant peut utiliser l'outil, la source de données, le workflow ou l'action.
  • Les vérifications à l'exécution évaluent l'action en contexte (l'outil et ses arguments, sa destination, les métadonnées du modèle et les attributs métier que vous attachez) au regard du policy pack que vous avez publié.

Les deux types de vérifications se résolvent vers les mêmes quatre résultats visibles par le client : allow, warn, require_approval ou block. Le résultat correspondant le plus fort l'emporte, de sorte qu'une vérification à l'exécution peut tout de même mettre en pause ou arrêter une action même lorsque l'appelant est par ailleurs autorisé à utiliser l'outil.

# Policy rules (illustrative): refunds over $100 pause for review
- rule: low-value-refund
  when:
    tool: execute_refund
    amount: "<= 100.00"
  then:
    decision: allow
    reasonCode: REFUND_WITHIN_THRESHOLD

- rule: high-value-refund
  when:
    tool: execute_refund
    amount: "> 100.00"
  then:
    decision: require_approval
    reasonCode: REFUND_OVER_THRESHOLD
    route: Decision Desk

Dans cet exemple, un remboursement de $420 correspond à la seconde règle et se résout en require_approval, mettant l'exécution en pause et ouvrant une Escalation. Un remboursement de $40 correspond à la première règle et se poursuit.

💡 Tip
Rédigez et testez vos politiques dans le Policy Builder avant leur mise en production. Lancez une **Simulation** pour rejouer des Decision Requests représentatives sur une politique en brouillon et confirmer que chacune se résout au résultat attendu. Une fois validées, les politiques sont compilées en policy packs signés et publiées.
🛡️ Important
Les quatre résultats constituent le contrat sur lequel votre intégration doit coder. Traitez `block` comme une réponse terminale et attendue (présentez-la proprement à l'utilisateur) et traitez `require_approval` comme une pause asynchrone, et non comme une erreur.

Où vont les approbations

Un résultat require_approval crée une Escalation : une unité de travail mise en pause en attente d'une décision humaine. Les Escalations arrivent dans le Decision Desk, où un relecteur autorisé voit l'action, ses attributs, les codes de raison et les conseils de remédiation, puis approuve ou rejette. L'approbation reprend l'exécution d'origine exactement là où elle s'était mise en pause ; le rejet l'arrête. La séquence complète (la requête, la décision, l'Escalation et le verdict du relecteur) est capturée sous forme de Lineage Record, vous offrant une trace défendable pour chaque action sous contrôle.

L'application des politiques chez KLA se situe au niveau de la couche applicative, au plus près de l'action de l'agent, là où le contexte métier comme le montant et le niveau du client est disponible. Des contrôles d'admission au niveau de l'infrastructure peuvent également appliquer la politique à la frontière de la plateforme, mais c'est le contrôle à l'exécution décrit ici qui gouverne le comportement des agents en place.

Exécution sous contrôle de politique | Developer Docs | KLA Control Plane