Referencia técnica · v1.0.0

Esquema de evento de aprobación de agente de IA

Un evento de aprobación registra el ciclo de vida de la decisión de una acción de agente de IA gobernada que llegó a revisión humana. Esta referencia independiente conserva la definición de aprobación del evento de auditoría publicado y añade un approval_event_id direccionable más la correlación para su uso independiente.

JSON Schema draft 2020-12 · Versión 1.0.0 · Registro de decisión maker-checker

Referencia rápida

Definición
Un registro independiente del estado de una solicitud de aprobación, el rol requerido, el revisor humano cuando se decide, la decisión, los tiempos y las referencias opcionales a la justificación.
Cuándo se usa
Créalo después de que un resultado de política derive una acción a aprobación humana y regístralo cuando la solicitud se decida, venza o se cancele.
Valores de decisión
approved, rejected, expired y cancelled describen la decisión terminal representada por el evento.
Maker-checker
Las rutas de aprobación actuales comprueban approval:decide, el rol requerido, el estado pendiente y la separación de funciones antes de registrar una decisión.

02

Objeto y orden de ejecución

Un evento de aprobación se sitúa entre un resultado de política require_approval y cualquier efecto de herramienta aprobado. Las rutas de vencimiento y rechazo siguen siendo resultados denegados o no iniciados enlazables.

  1. 01SolicitudUn resultado de política require_approval crea una solicitud asociada a la correlación de ejecución y a un rol requerido.
  2. 02RevisiónUn revisor recibe la evidencia presentada y actúa a través de una ruta de aprobación con permiso approval:decide.
  3. 03ComprobaciónLas rutas actuales comprueban el rol requerido, el estado pendiente y la separación maker-checker. La aprobación también requiere un reconocimiento explícito.
  4. 04RegistroLa decisión se persiste y se escribe una obligación de auditoría duradera antes de señalar al flujo de trabajo bloqueado que se reanude.

03

Diccionario de campos

El diccionario cubre cada miembro de la aprobación, incluidos los condicionales del ciclo de vida y las referencias opcionales de reasignación, anulación y apelación.

Identidad independiente y correlación

CampoEstadoPropósito
schema_versionObligatorioSelecciona el contrato de compatibilidad usado para analizar el registro.
approval_event_idObligatorioDirecciona de forma independiente este evento de aprobación y lo enlaza con un evento de auditoría. Añadido para la publicación independiente.
correlation.correlation_id / execution_idObligatorioUne la aprobación con la secuencia de solicitud, política, herramienta y auditoría. Añadido para la publicación independiente.
correlation.trace_id / span_id / parent_event_idOpcionalTransporta el contexto de traza de OpenTelemetry y un evento padre opcional. Los identificadores W3C compuestos solo por ceros no son válidos.

Ciclo de vida de la solicitud de aprobación

CampoEstadoPropósito
request_idObligatorioIdentifica la solicitud de aprobación que se decide. Esto conserva el significado de approval.request_id incrustado.
statusObligatorioIndica si el evento está en estado decided, expired o cancelled.
requested_at / expires_atObligatorioRegistra los tiempos de solicitud y vencimiento como date-times RFC 3339.
required_roleObligatorioNombra el rol requerido para decidir la aprobación.
decided_atObligatorioRegistra cuándo se registró la decisión terminal, el vencimiento o la cancelación.

Decisión y referencias de apoyo

CampoEstadoPropósito
decisionObligatorioTransporta approved, rejected, expired o cancelled y coincide con el estado del ciclo de vida.
reviewerCondicionalIdentifica al revisor humano cuando el estado es decided. El tipo es siempre user.
presented_evidence_digestOpcionalVincula la decisión a la representación de la evidencia mostrada para la revisión.
reason_code / rationale_referenceOpcionalProporciona un motivo estable y una referencia a una justificación de decisión más completa.
reassigned_fromOpcionalConserva el principal anterior cuando una solicitud de aprobación cambia de asignatario.
override.authority_reference / reason_codeOpcionalReferencia la autoridad excepcional y su motivo cuando se registra una anulación.
appeal.status / referenceOpcionalEnlaza un ciclo de vida de apelación posterior y su referencia estable.

04

Ejemplo mínimo

El registro aprobado muestra los campos obligatorios más el revisor necesario para un estado decidido. El registro rechazado proporciona una segunda decisión terminal.

{
  "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

Validación y verificación de digest

La validación con JSON Schema comprueba la forma del estado y de la decisión. El verificador complementario reproduce un digest sha256: sobre el registro canónico y puede comprobar una firma Ed25519 separada opcional.

  1. 01Carga el esquema versionado desde la URL de descarga del JSON Schema.
  2. 02Valida el documento JSON con un validador draft 2020-12 y un complemento de formato date-time.
  3. 03Canonicaliza el registro independiente completo con las claves de objeto ordenadas de forma recursiva, siguiendo el enfoque del verificador de eventos de auditoría publicado.
  4. 04Calcula SHA-256 sobre los bytes canónicos y representa el resultado con el prefijo sha256:.
  5. 05Compara el digest calculado con el digest conservado por el procedimiento de evidencia que realiza la llamada.
  6. 06Cuando se proporciona una firma Ed25519 separada, resuelve su clave pública de forma independiente y verifica la firma sobre el digest de 32 bytes.
  7. 07Registra una discrepancia de hash o un fallo de firma como resultado de verificación fallido. Conserva el registro de decisión y su solicitud enlazada para revisión.

Ejemplos de decisión terminal

Los ejemplos aprobado y rechazado validan según draft 2020-12 y producen digests sha256: reproducibles a partir de su contenido canónico.

Comprobación de manipulación

Cambiar la decisión cambia tanto el significado del ciclo de vida como el digest canónico. El verificador informarecord_hash_mismatch.

El verificador independiente acepta una firma Ed25519 separada opcional. La confianza en una clave pública proviene del registro de claves gobernado de forma independiente por quien realiza la llamada.

06

Compatibilidad y versionado

Versiona el contrato del evento de aprobación de forma independiente del servicio de aprobación y del contrato de política.

Parche

Las aclaraciones, descripciones y ejemplos pueden cambiar mientras el comportamiento de validación se mantiene estable. Un artefacto inmutable corregido recibe una nueva URL versionada.

Menor

Los nuevos campos opcionales requieren un nuevo schema_version y una URL versionada. Los consumidores declaran soporte antes de procesar la nueva versión.

Mayor

Los campos eliminados o renombrados, los cambios de significado, un estado obligatorio más estricto o cambios en la canonicalización requieren una nueva ruta mayor.

Los consumidores conservan las versiones desconocidas para revisión y detienen el procesamiento semántico hasta que se declare soporte. La ruta v1 usa schema_version 1.0.0.

07

Cómo lo implementa KLA

El worker crea registros de auditoría de aprobación. Las rutas de la API aplican la autoridad de decisión y persisten una obligación de decisión duradera.

Campos del evento de aprobación asignados a las fuentes actuales de implementación de KLA
Área del contratoFuente actualAsignaciónEstado
Eventos de solicitud y resolución de aprobaciónservices/execution-worker/src/services/audit-events.tsEl worker registra eventos de auditoría de aprobación solicitada y resuelta con campos relacionados con la ejecución, la aprobación, la gobernanza, la decisión, el motivo y la traza. Esta página normaliza esos hechos a la forma portátil del evento de aprobación.Productor actual con normalización
Ruta de decisión maker-checkerservices/execution-api/src/routes/approvals.tsLa ruta comprueba el permiso approval:decide, el rol requerido, el estado pendiente y la autoaprobación. Aprobar también requiere un reconocimiento explícito; una escalada mantiene la solicitud pendiente.Consumidor y productor actual
Decision Desk y ruta de aprobación localservices/api/src/routers/approvals.tsEl router aplica las mismas reglas de permiso y de acceso maker-checker, valida los conjuntos de comprobaciones de política y evidencia, persiste un registro de decisión y coordina el estado de aprobación local o de execution-api.Consumidor y productor actual
Vocabulario de decisión y versiónservices/shared/src/policy/contracts.tsEl contrato de política compartido proporciona require_approval como la ruta que conduce a este evento y mantiene el versionado de la política independiente del esquema del evento de aprobación.Contrato compartido actual

Abstracciones deliberadas y campos no admitidos

  • El esquema omite los ID de base de datos de tenant, las columnas de la tabla de aprobaciones, la sintaxis de autorización de Cerbos y el contenido bruto de solicitudes o evidencia.
  • El esquema registra required_role y la identidad del revisor. No demuestra que el revisor tuviera ese rol en el momento de la decisión; los consumidores realizan esa comprobación de autoridad.
  • El esquema tiene los valores de estado terminal decided, expired y cancelled. La acción de escalada de la API actual mantiene la solicitud pendiente y no tiene un valor terminal escalated en este contrato.
  • El esquema transporta referencias opcionales de evidencia, justificación, reasignación, anulación y apelación. No define el paquete de evidencia, el procedimiento de apelación ni la política de autoridad de anulación.
  • El esquema no publica el correo electrónico del revisor, instantáneas de roles, comentarios ni recibos de decisión. Esos campos permanecen en los registros de decisión y auditoría de KLA y pueden enlazarse mediante los ID de correlación y de solicitud.
  • El approval_event_id independiente y el objeto correlation son adiciones para la publicación independiente. request_id conserva el significado de solicitud de aprobación del objeto approval incrustado.

08

Referencias relacionadas

Sigue la secuencia de ejecución desde la solicitud de acción hasta la decisión de política, la aprobación cuando se requiere y el evento de auditoría completo.

Esquema de solicitud de acción

La acción que llegó a la evaluación de política.

Esquema de decisión de política

El resultado require_approval que deriva la acción a revisión.

Esquema de registro de auditoría

El sobre de evento completo que registra la solicitud, la decisión, la aprobación, el efecto y el resultado.

Aplica el contrato

Mantén la decisión humana enlazada a la rama de política que resuelve.

Usa los identificadores de correlación y de solicitud para conectar el evento de aprobación con la solicitud de acción, la decisión de política, el evento de auditoría completo y los registros de evidencia posteriores.

Esquema de evento de aprobación de agente de IA