Référence technique · v1.0.0

Schéma de réponse de décision de politique d’un agent IA

Une réponse de décision de politique consigne l’identité de la politique, les entrées protégées, le résultat canonique, les règles correspondantes, les codes de motif et l’heure d’évaluation. Cette référence autonome conserve le sous-objet policy de l’événement d’audit publié et ajoute policy_decision_event_id ainsi qu’une corrélation pour un usage indépendant.

JSON Schema draft 2020-12 · Version 1.0.0 · Quatre valeurs de décision canoniques

Repères essentiels

Définition
Réponse autonome de l’évaluation de politique avec identité de politique, empreintes des entrées et de la politique, une décision canonique, les règles correspondantes et les codes de motif.
Quand l’utiliser
Créez-la après l’évaluation d’une demande d’action et avant que l’exécution ne poursuive sa route, soit mise en pause pour approbation ou soit arrêtée.
Valeurs de décision
allow, warn, require_approval et block sont les valeurs canoniques du contrat de politique partagé.
Action refusée
L’exemple block consigne destination_outside_declared_boundary dans reason_codes et ne contient aucun champ d’exécution, car cette page décrit l’objet de décision.

02

Objet et ordre d’exécution

La réponse suit la demande d’action. Sa décision sélectionne la route avant un appel d’outil ou un effet métier.

  1. 01DemanderLa demande d’action de l’agent fournit l’action, la finalité, la ressource, le périmètre de données et l’environnement.
  2. 02ÉvaluerL’évaluateur lie le résultat à policy_id, policy_version, policy_digest, inputs_digest, aux règles correspondantes et aux codes de motif.
  3. 03Acheminerallow poursuit l’action. warn poursuit la route du worker et émet un avertissement. require_approval crée une voie d’approbation humaine. block arrête l’action.
  4. 04EnregistrerLa décision reste reliée aux enregistrements ultérieurs d’approbation, d’outil et d’audit grâce à la corrélation.

03

Dictionnaire des champs

Le dictionnaire couvre chaque membre obligatoire et facultatif, y compris les ajouts d’identité autonome et de corrélation.

Identité autonome et corrélation

ChampStatutFinalité
schema_versionObligatoireSélectionne le contrat de compatibilité utilisé pour analyser l’enregistrement.
policy_decision_event_idObligatoireAdresse cette décision et la relie à un événement d’audit. Ajouté pour la publication autonome.
correlation.correlation_id / execution_idObligatoireRelie le résultat de politique à la demande, à l’approbation, à l’outil et à l’audit. Ajouté pour la publication autonome.
correlation.trace_id / span_id / parent_event_idFacultatifTransporte le contexte de trace OpenTelemetry et un événement parent facultatif. Les identifiants W3C composés uniquement de zéros sont invalides.

Identité de la politique et entrées protégées

ChampStatutFinalité
decision_idObligatoireIdentifie la décision d’évaluation de politique dans le système de gouvernance source.
policy_id / policy_versionObligatoireNomme la politique et la version exacte utilisées pour l’évaluation.
policy_digest / inputs_digestObligatoireLie le résultat aux représentations protégées de la politique et des entrées.

Explication de la décision

ChampStatutFinalité
decisionObligatoirePorte allow, warn, require_approval ou block.
evaluated_atObligatoireEnregistre la fin de l’évaluation de politique comme date-heure RFC 3339.
matched_rule_idsObligatoireListe les identifiants uniques des règles correspondantes pendant l’évaluation.
reason_codesObligatoireListe au moins un identifiant unique expliquant le résultat sélectionné.

04

Exemple minimal

L’enregistrement allow montre l’objet de décision complet le plus court. Les téléchargements ajoutent les cas warn, require_approval et block.

{
  "schema_version": "1.0.0",
  "policy_decision_event_id": "evt_policy_decision_demo_0001",
  "correlation": {
    "correlation_id": "corr_credit_review_demo_0001",
    "execution_id": "exec_credit_review_demo_0001"
  },
  "decision_id": "dec_demo_0001",
  "policy_id": "policy_credit_case_access",
  "policy_version": "4.2.1",
  "policy_digest": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
  "inputs_digest": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
  "decision": "allow",
  "evaluated_at": "2026-07-21T09:14:29.180Z",
  "matched_rule_ids": [
    "rule_case_summary_read"
  ],
  "reason_codes": [
    "within_declared_scope"
  ]
}

05

Validation et vérification de l’empreinte

La validation JSON Schema vérifie la structure. Le vérificateur compagnon reproduit une empreinte sha256: et peut vérifier une signature Ed25519 détachée facultative.

  1. 01Chargez le schéma versionné depuis l’URL de téléchargement du JSON Schema.
  2. 02Validez le document JSON avec un validateur draft 2020-12 et un module de format date-heure.
  3. 03Canonisez l’enregistrement autonome en triant récursivement les clés des objets, conformément au vérificateur d’événements d’audit publié.
  4. 04Calculez SHA-256 sur les octets canoniques et utilisez le préfixe sha256:.
  5. 05Comparez l’empreinte calculée à celle conservée par la procédure de preuve appelante.
  6. 06Avec une signature Ed25519 détachée, résolvez la clé publique indépendamment et vérifiez la signature sur l’empreinte de 32 octets.
  7. 07Consignez toute divergence d’empreinte ou tout échec de signature comme une vérification échouée. Une structure valide seule ne prouve pas qu’un enregistrement est inchangé.

Exemples conformes aux quatre décisions

Les exemples allow, warn, require_approval et block sont valides selon le draft 2020-12 et produisent des empreintes sha256: reproductibles à partir de leur contenu canonique.

Contrôle d’altération

Modifier reason_codes conserve un document lisible par le schéma, mais change l’empreinte canonique. Le vérificateur signalerecord_hash_mismatch.

Le vérificateur autonome accepte une signature Ed25519 détachée facultative. La confiance dans la clé publique provient d’un registre de clés gouverné indépendant de l’appelant.

06

Compatibilité et versionnement

Versionnez la réponse indépendamment des policy packs et des versions de l’évaluateur.

Correctif

Les clarifications, descriptions et exemples peuvent évoluer tant que le comportement de validation reste stable. Un artefact immuable corrigé reçoit une nouvelle URL versionnée.

Version mineure

De nouveaux champs facultatifs exigent une nouvelle schema_version et une URL versionnée. Les consommateurs doivent déclarer leur prise en charge avant de traiter la nouvelle version.

Version majeure

La suppression ou le renommage de champs, la modification de sens, le renforcement d’un statut obligatoire ou la modification de la canonisation exigent une nouvelle version majeure.

Conservez les versions inconnues pour revue et traitez-les comme non prises en charge jusqu’à déclaration explicite. Le chemin v1 utilise schema_version 1.0.0.

07

Implémentation par KLA

Le contrat de politique partagé définit le vocabulaire de décision. Les routes worker et d’exécution enregistrent l’évaluation et la voie de gouvernance qui suit.

Correspondance des champs de décision de politique avec les sources d’implémentation KLA actuelles
Contrat sourceSource actuelleCorrespondanceStatut
Vocabulaire canonique de décisionservices/shared/src/policy/contracts.tsLes valeurs du schéma GateDecision et POLICY_SCHEMA_VERSION définissent allow, warn, require_approval, block et la version 1.0.0 du schéma de politique.Contrat partagé actuel
Enregistrement de décisionservices/execution-worker/src/services/audit-events.tsrecordPolicyDecisionAuditEvent enregistre identité de politique, décision, motifs, règles, workflow et détails d’exécution. L’ancien helper accepte deny pour la voie bloquée ; cette page utilise la valeur canonique block.Producteur actuel avec normalisation
Route choisie par la décisionservices/execution-worker/src/workflows/workflow-spec-runner.tsLe workflow poursuit allow et warn, marque warn comme avertissement, demande une approbation pour require_approval et arrête block.Consommateur d’exécution actuel
Lien avec l’auditservices/execution-worker/src/services/audit-events.tsLes producteurs d’audit de politique et d’approbation conservent les identifiants d’exécution et le contexte de trace actif afin de relier une décision à l’enregistrement d’exécution qui l’entoure.Producteur associé actuel

Abstractions délibérées et champs non pris en charge

  • Le schéma omet les documents de politique Cerbos, les corps de règles JSON Logic, les charges d’entitlements et la configuration de l’évaluateur.
  • Le schéma enregistre les empreintes de la politique et des entrées. Il ne publie pas le texte protégé de la politique, les arguments de la demande, les invites, la sortie du modèle ni les données personnelles brutes.
  • Le schéma enregistre une décision canonique. Il ne code pas chaque signal de contrôle interne, classification, remédiation ou trace du juge transporté par le contrat GateDecision partagé plus large.
  • Le schéma enregistre les ID des règles correspondantes et les codes de motif. Il n’affirme pas qu’un code prouve l’autorisation, l’isolation des tenants ou l’exhaustivité de la population source.
  • policy_decision_event_id et l’objet correlation autonomes sont ajoutés pour la publication indépendante. L’objet policy imbriqué ne comporte aucun de ces champs.
  • Les exemples sont des enregistrements synthétiques. Leurs empreintes illustrent les contraintes de champs et ne contiennent aucun identifiant client ou de production.

08

Références associées

Suivez la demande, la décision de politique, l’approbation si nécessaire et l’événement d’audit complet dans l’ordre d’exécution.

Schéma de demande d’action

L’action demandée que cette réponse évalue.

Schéma d’événement d’approbation

L’enregistrement maker-checker utilisé lorsque le résultat est require_approval.

Schéma de journal d’audit

L’enveloppe complète de la demande, de la politique, de l’approbation, de l’outil, du résultat et de l’intégrité.

Appliquer le contrat

Conservez le résultat de politique avec la demande qu’il a évaluée.

Utilisez les références de demande d’action et d’approbation avec cette réponse, puis le schéma de journal d’audit pour conserver la séquence complète de l’exécution gouvernée.

Schéma de réponse de décision de politique d’un agent IA