Riferimento tecnico · v1.0.0

Schema dell’evento di approvazione degli agenti IA

Un evento di approvazione registra il ciclo decisionale di un’azione di un agente IA governato che è stata sottoposta a revisione umana. Questo riferimento indipendente mantiene la definizione di approvazione dell’evento di audit pubblicato e aggiunge un approval_event_id indirizzabile più la correlazione per l’uso autonomo.

JSON Schema draft 2020-12 · Versione 1.0.0 · Record decisionale maker-checker

Riferimento rapido

Definizione
Un record indipendente dello stato di una richiesta di approvazione, del ruolo richiesto, del revisore umano quando la decisione è presa, della decisione, delle tempistiche e di riferimenti facoltativi alla motivazione.
Quando si usa
Createlo dopo che un risultato di policy instrada un’azione verso l’approvazione umana e registratelo quando la richiesta viene decisa, scade o viene annullata.
Valori della decisione
approved, rejected, expired e cancelled descrivono la decisione terminale rappresentata dall’evento.
Maker-checker
Gli attuali percorsi di approvazione verificano approval:decide, il ruolo richiesto, lo stato pending e la separazione dei compiti prima di registrare una decisione.

02

Oggetto e ordine di esecuzione

Un evento di approvazione si colloca tra un risultato di policy require_approval e qualsiasi effetto di uno strumento approvato. I percorsi expired e rejected restano collegabili a esiti negati o non avviati.

  1. 01RichiestaUn risultato di policy require_approval crea una richiesta associata alla correlazione dell’esecuzione e a un ruolo richiesto.
  2. 02RevisioneUn revisore riceve le evidenze presentate e agisce tramite un percorso di approvazione con il permesso approval:decide.
  3. 03VerificaI percorsi attuali verificano il ruolo richiesto, lo stato pending e la separazione maker-checker. L’approvazione richiede anche una conferma esplicita.
  4. 04RegistrazioneLa decisione viene persistita e un obbligo di audit durevole viene scritto prima di segnalare al workflow soggetto a controllo di riprendere.

03

Dizionario dei campi

Il dizionario copre ogni elemento dell’approvazione, incluse le condizioni del ciclo di vita e i riferimenti facoltativi a riassegnazione, override e ricorso.

Identità indipendente e correlazione

CampoStatoFinalità
schema_versionObbligatorioSeleziona il contratto di compatibilità usato per analizzare il record.
approval_event_idObbligatorioIndirizza autonomamente questo evento di approvazione e lo collega a un evento di audit. Aggiunto per la pubblicazione indipendente.
correlation.correlation_id / execution_idObbligatorioCollega l’approvazione alla sequenza di richiesta, policy, strumento e audit. Aggiunto per la pubblicazione indipendente.
correlation.trace_id / span_id / parent_event_idFacoltativoInclude il contesto di traccia OpenTelemetry e un evento padre facoltativo. Gli identificativi W3C composti interamente da zero non sono validi.

Ciclo di vita della richiesta di approvazione

CampoStatoFinalità
request_idObbligatorioIdentifica la richiesta di approvazione che viene decisa. Mantiene il significato di approval.request_id incorporato.
statusObbligatorioIndica se l’evento è decided, expired o cancelled.
requested_at / expires_atObbligatorioRegistra gli orari della richiesta e della scadenza come date-time RFC 3339.
required_roleObbligatorioDenomina il ruolo richiesto per decidere l’approvazione.
decided_atObbligatorioRegistra quando è stata registrata la decisione terminale, la scadenza o l’annullamento.

Decisione e riferimenti di supporto

CampoStatoFinalità
decisionObbligatorioContiene approved, rejected, expired o cancelled e corrisponde allo stato del ciclo di vita.
reviewerCondizionaleIdentifica il revisore umano quando lo stato è decided. Il type è sempre user.
presented_evidence_digestFacoltativoCollega la decisione alla rappresentazione delle evidenze mostrata per la revisione.
reason_code / rationale_referenceFacoltativoFornisce un motivo stabile e il riferimento a una motivazione decisionale più completa.
reassigned_fromFacoltativoConserva il principale precedente quando una richiesta di approvazione cambia assegnatario.
override.authority_reference / reason_codeFacoltativoFa riferimento all’autorità eccezionale e al relativo motivo quando viene registrato un override.
appeal.status / referenceFacoltativoCollega un successivo ciclo di vita del ricorso e il suo riferimento stabile.

04

Esempio minimo

Il record approved mostra i campi richiesti più il revisore necessario per uno stato decided. Il record rejected fornisce una seconda decisione terminale.

{
  "schema_version": "1.0.0",
  "approval_event_id": "evt_approval_demo_0001",
  "correlation": {
    "correlation_id": "corr_credit_review_demo_0002",
    "execution_id": "exec_credit_review_demo_0002"
  },
  "request_id": "approval_req_demo_0001",
  "status": "decided",
  "requested_at": "2026-07-21T11:03:18.240Z",
  "expires_at": "2026-07-21T11:33:18.240Z",
  "required_role": "kla:senior_approver",
  "presented_evidence_digest": "sha256:9999999999999999999999999999999999999999999999999999999999999999",
  "reviewer": {
    "id": "user_reviewer_demo_0001",
    "type": "user",
    "display_name": "Synthetic reviewer",
    "identity_provider": "demo-idp"
  },
  "decision": "approved",
  "reason_code": "evidence_reviewed",
  "rationale_reference": "rationale_demo_0001",
  "decided_at": "2026-07-21T11:04:10.240Z"
}

05

Validazione e verifica del digest

La validazione dello schema JSON verifica la forma di stato e decisione. Il verificatore complementare riproduce un digest sha256: sul record canonico e può verificare una firma Ed25519 distaccata facoltativa.

  1. 01Caricate lo schema con versione dall’URL di download dello schema JSON.
  2. 02Convalidate il documento JSON con un validatore draft 2020-12 e un plugin per il formato date-time.
  3. 03Canonicalizzate il record indipendente completo con chiavi oggetto ordinate ricorsivamente, in linea con l’approccio del verificatore dell’evento di audit pubblicato.
  4. 04Calcolate SHA-256 sui byte canonici e rappresentate il risultato con il prefisso sha256:.
  5. 05Confrontate il digest calcolato con quello conservato dalla procedura di evidenza chiamante.
  6. 06Quando viene fornita una firma Ed25519 distaccata, risolvete la sua chiave pubblica in modo indipendente e verificate la firma sul digest di 32 byte.
  7. 07Registrate una mancata corrispondenza dell’hash o un errore della firma come risultato di verifica non superato. Conservate il record decisionale e la richiesta collegata per la revisione.

Esempi di decisione terminale

Gli esempi approved e rejected sono validi rispetto al draft 2020-12 e producono digest sha256: riproducibili a partire dal loro contenuto canonico.

Controllo di manomissione

Modificare la decisione cambia sia il significato del ciclo di vita sia il digest canonico. Il verificatore segnalarecord_hash_mismatch.

Il verificatore indipendente accetta una firma Ed25519 distaccata facoltativa. L’attendibilità di una chiave pubblica deriva dal registro di chiavi gestito in modo indipendente dal chiamante.

06

Compatibilità e versionamento

Versionate il contratto dell’evento di approvazione indipendentemente dal servizio di approvazione e dal contratto di policy.

Patch

Chiarimenti, descrizioni ed esempi possono cambiare mentre il comportamento di validazione resta stabile. Un artefatto immutabile corretto riceve un nuovo URL con versione.

Minor

Nuovi campi facoltativi richiedono un nuovo schema_version e un URL con versione. I consumatori dichiarano il supporto prima di elaborare la nuova versione.

Major

Campi rimossi o rinominati, significati modificati, stato obbligatorio più restrittivo o canonicalizzazione modificata richiedono un nuovo percorso major.

I consumatori conservano le versioni sconosciute per la revisione e interrompono l’elaborazione semantica finché non è dichiarato il supporto. Il percorso v1 usa schema_version 1.0.0.

07

Come KLA implementa questo schema

Il processo di elaborazione crea record di audit delle approvazioni. I percorsi API applicano l’autorità decisionale e persistono un obbligo decisionale durevole.

Campi dell’evento di approvazione mappati alle attuali fonti di implementazione KLA
Area del contrattoFonte attualeMappaturaStato
Eventi di richiesta e risoluzione dell’approvazioneservices/execution-worker/src/services/audit-events.tsIl processo di elaborazione registra eventi di audit di richiesta e risoluzione dell’approvazione con campi relativi a esecuzione, approvazione, governance, decisione, motivo e traccia. Questa pagina normalizza tali elementi nella forma portabile dell’evento di approvazione.Produttore attuale con normalizzazione
Percorso decisionale maker-checkerservices/execution-api/src/routes/approvals.tsIl percorso verifica il permesso approval:decide, il ruolo richiesto, lo stato pending e l’auto-approvazione. Approve richiede inoltre una conferma esplicita; un’escalation mantiene la richiesta in pending.Consumatore e produttore attuale
Decision Desk e percorso di approvazione localeservices/api/src/routers/approvals.tsIl router applica le stesse regole di accesso per permessi e maker-checker, convalida i set di controllo di policy ed evidenze, persiste un record decisionale e coordina lo stato di approvazione locale o di execution-api.Consumatore e produttore attuale
Vocabolario della decisione e versioneservices/shared/src/policy/contracts.tsIl contratto di policy condiviso fornisce require_approval come percorso che conduce a questo evento e mantiene il versionamento della policy indipendente dallo schema dell’evento di approvazione.Contratto condiviso attuale

Astrazioni deliberate e campi non supportati

  • Lo schema omette gli ID del database del tenant, le colonne della tabella delle approvazioni, la sintassi di autorizzazione Cerbos e i contenuti grezzi di richieste o evidenze.
  • Lo schema registra required_role e l’identità del revisore. Non dimostra che il revisore detenesse quel ruolo al momento della decisione; i consumatori svolgono tale verifica di autorità.
  • Lo schema ha i valori di stato terminale decided, expired e cancelled. L’azione di escalation dell’API attuale mantiene la richiesta in pending e non ha un valore terminale escalated in questo contratto.
  • Lo schema contiene riferimenti facoltativi a evidenze, motivazione, riassegnazione, override e ricorso. Non definisce il pacchetto di evidenze, la procedura di ricorso o la policy sull’autorità di override.
  • Lo schema non pubblica e-mail del revisore, snapshot del ruolo, commenti o ricevute decisionali. Questi campi restano nei record decisionali e di audit KLA e possono essere collegati tramite gli ID di correlazione e richiesta.
  • approval_event_id e l’oggetto di correlazione indipendenti sono aggiunte per la pubblicazione autonoma. request_id mantiene il significato di richiesta di approvazione dall’oggetto approval incorporato.

08

Riferimenti correlati

Seguite la sequenza di esecuzione dalla richiesta di azione alla decisione di policy, all’approvazione quando richiesta e all’evento di audit completo.

Schema della richiesta di azione

L’azione che ha raggiunto la valutazione della policy.

Schema della decisione di policy

Il risultato require_approval che instrada l’azione alla revisione.

Schema del log di audit

L’involucro completo dell’evento che registra richiesta, decisione, approvazione, effetto ed esito.

Applica il contratto

Mantenete la decisione umana collegata al ramo di policy che risolve.

Usate gli identificativi di correlazione e richiesta per collegare l’evento di approvazione alla richiesta di azione, alla decisione di policy, all’evento di audit completo e ai record di evidenze successivi.

Schema dell’evento di approvazione degli agenti IA