Öffentliche technische Referenz · v1.0

Schema für das Beweismittel-Paket eines KI-Agenten

Ein Beweismittel-Paket-Manifest benennt den versiegelten Export, den Mandantenbereich, aufbewahrte Artefakte, den Merkle-Root, Aufzeichnungslinks und Integritätsanker. Verwenden Sie es, wenn ein Evidence-Room-Export zwischen KLA und einem Offline-Prüfer verschoben wird.

Paket-Spezifikation · evidence-room-bundle-v1 · Manifest-Format 1.0

Schnellreferenz des Beweisbündel-Manifests

Definition
Der manifest.json-Versiegelungsdatensatz für ein exportiertes Beweisbündel.
Verwendet, wenn
Ein versiegelter Export überprüft, übertragen oder offline verifiziert wird.
Minimum
Identität, Export-Metadaten, Artefakt-Hashes, Merkle-Wurzel und Integritätsanker.
Verifizierung
Normalisieren, hashen, Signaturen überprüfen, Artefaktaufnahme prüfen und anwendbare Anker ausführen.

02

Wo das Manifest im Bundle liegt

Der Exporteur schreibt ein Verzeichnis mit einer Zusammenfassung, Manifest, separatem JWS, eingebetteten öffentlichen Schlüsseln, Zeitstempelnachweis, Ledger-Anker und exportierten Artefakten.

  1. 01Siegelzusammenfassungbundle.json zeichnet die Export- und Mandantenkennungen, die Manifest-Prüfsumme, die Merkle-Wurzel, die Anzahl der Artefakte, die erforderlichen Signaturklassen, den Zeitstempelbeleg und die Ledger-Ankerpfade auf.
  2. 02Manifestmanifest.json zeichnet Export-Metadaten, Artefaktpfade und -hashes, die Datensatzverknüpfung, Merkle-Metadaten, Schwärzungs- und Auslassungsmetadaten sowie Integritätsanker auf.
  3. 03Kryptografisches Materialmanifest.jws.json trägt abgetrennte ES256-Signaturen über das Manifest-Digest. keys/jwks.json liefert eingebettete öffentliche Schlüssel für Offline-Prüfungen.
  4. 04Beweis-Bytesartifacts/exports enthält exportierte JSON-, CSV- oder PDF-Dateien. artifacts/index/artifact_index.json indexiert die exportierte Sammlung.
  5. 05Externe Ankertimestamp.ots enthält den OpenTimestamps-Nachweis. ledger_anchor.json enthält den immudb-Anker oder den NOT_PRESENT-Eintrag des Herstellers.
<bundle-dir>/
  bundle.json
  manifest.json
  manifest.jws.json
  keys/jwks.json
  timestamp.ots
  ledger_anchor.json
  artifacts/exports/...
  artifacts/index/artifact_index.json

03

Feldwörterbuch

Erforderliche Felder stammen aus dem aktuellen versiegelten Bündelvertrag. Bedingte Felder erscheinen, wenn der Produzent den entsprechenden Umfang oder Details der Nachweisfabrik aufzeichnet. Optionale Felder enthalten zusätzliche Exportkontexte.

Bündel-Identität und Export

FeldStatusZweck
formatVersionErforderlichWählt das versiegelte Manifestformat aus; der aktuelle Produzent gibt 1.0 aus.
bundleSpecErforderlichIdentifiziert evidence-room-bundle-v1.
exportIdErforderlichBindet das Manifest an einen Export.
tenantIdErforderlichGibt den vom Export getragenen Mandantenbereich an.
createdAtErforderlichErfasst, wann der Exportdatensatz erstellt wurde.
exporter.nameErforderlichIdentifiziert den Exporteur, der das Bündel erstellt hat.
exporter.versionErforderlichIdentifiziert die Version des Exporteurs.
export.exportIdErforderlichMuss mit der Export-ID auf oberster Ebene übereinstimmen.
export.tenantIdErforderlichMuss mit der Mandanten-ID auf oberster Ebene übereinstimmen.
export.environmentErforderlichErfasst das Label der Quellumgebung.
export.platformVersionErforderlichErfasst die vom Produzenten bereitgestellte Plattformversion.
export.requestedByErforderlichErfasst die Referenz des Exportanforderers.
export.requestedAtErforderlichErfasst die Zeit der Exportanforderung.
export.sealedAtErforderlichErfasst, wann das Siegel erstellt wurde.
export.traceIdsErforderlichTrägt die mit dem Export verbundenen Spurenreferenzen.
export.policySnapshotsErforderlichTrägt die vom Exporteur ausgewählten Richtlinien-Snapshot-Referenzen.

Artefakte und Verknüpfungen

FeldStatusZweck
artifacts[]ErforderlichListet jedes exportierte Artefakt auf, das durch die Merkle-Wurzel abgedeckt ist.
artifacts[].pathErforderlichLöst das Artefakt im Bundle-Verzeichnis auf.
artifacts[].sha256ErforderlichGibt den SHA-256-Hash der Artefakt-Bytes an.
artifacts[].bytes or sizeBytesErforderlichErmöglicht dem Prüfer, die deklarierte Größe mit der Datei zu vergleichen.
artifacts[].contentTypeErforderlichBeschreibt den Inhaltstyp der exportierten Datei.
artifacts[].classOptionalBeschriftet eine Artefaktklasse wie Ausführungsnachweis oder Artefakt-Index.
artifacts[].provenanceOptionalTrägt Metadaten zur Herkunft des Produzenten des Artefakts.
artifacts[].createdAtOptionalZeichnet auf, wann das Artefakt erstellt wurde.
artifacts[].sourceOptionalVerbindet das Artefakt mit einem Quelltyp und Referenz.
record.decisionRequestIdOptionalVerbindet das Bündel mit der maßgeblichen Entscheidungsanfrage.
record.executionIdOptionalVerbindet das Bündel mit einer Ausführung.
record.lineageRecordIdOptionalVerbindet das Bündel mit der Ausführungshistorie.
scopeOptionalBeschreibt die Exportpopulation oder Zeitgrenze, wenn angegeben.
profileOptionalZeichnet das vom Produzenten gewählte Evidenzprofil auf: vollständig, redigiert oder minimal.
omissionsOptionalZeichnet deklarierte Auslassungen auf.
redactionsOptionalDatensätze erklärten Redaktions-Metadaten.

Siegel- und bedingter Governance-Nachweis

FeldStatusZweck
merkle.algorithmErforderlichIdentifiziert kla-merkle-v1.
merkle.rootSha256ErforderlichVerpflichtet sich zum sortierten Artefaktpfad und Digest-Set.
integrity.manifestHashAlgoErforderlichIdentifiziert SHA-256 für den Manifestdigest.
integrity.manifestHashErforderlichSpeichert den rohen hexadezimalen Digest des normalisierten Manifests.
integrity.signatureAlgoErforderlichIdentifiziert den Signaturalgorithmus des Manifests, derzeit ES256.
integrity.signaturePayloadErforderlichGibt an, dass die Signatur-Nutzlast MANIFEST_HASH ist.
integrity.signingKeyIdErforderlichIdentifiziert die Referenz des Signaturschlüssels des Herstellers.
integrity.anchors[]ErforderlichListet Zeitstempel- und Ledger-Ankerdatensätze auf.
evidenceFactory.request.requestedArtifactsBedingtBestimmt, ob Empfangssignaturen und Ledger-Hash-Kette erforderlich sind.
evidenceFactory.contractVersionBedingtIdentifiziert den Evidence Factory-Anfragevertrag, wenn eine Fabrikanfrage eingebettet ist.
evidenceFactory.request.tenantIdBedingtTrägt die Tenant-Bindung für die eingebettete Evidence Factory-Anfrage.
evidenceFactory.request.actorBedingtIdentifiziert den menschlichen oder dienstleistenden Akteur, der den Fabrik-Export angefordert hat.
evidenceFactory.request.sourceBedingtIdentifiziert die KLA-Oberfläche, die den Fabrik-Export angefordert hat.
evidenceFactory.request.scopeBedingtTrägt die Chronologie und Selektoren, die für den Fabrik-Export verwendet wurden.
evidenceFactory.request.redactionProfileBedingtGibt das Redaktionsprofil des Fabrik-Exports an.
evidenceFactory.request.idempotencyKeyBedingtTrägt den Idempotenzschlüssel der Anfrage.

04

Minimales vollständiges Beispiel

Dieses synthetische Manifest verwendet denselben Exportbezeichner und dieselben Aufzeichnungslinks wie die vollständige Ausführungsreferenz. Die begleitende Bündelzusammenfassung wiederholt die Siegelwerte, die der Prüfer vergleicht.

{
  "bundle": {
    "exportId": "bundle_manifest_synthetic_20260721_01",
    "tenantId": "tenant_synthetic_001",
    "manifestDigestSha256": "1bae725ba61cf55f94310e37ee491d3d52145d98da8580df63e0b91fa9968117",
    "merkleRootSha256": "cb170b4d42403ed97c4818a723ebd93607902a84159deb4555357bc73a432102",
    "artifactCount": 2
  },
  "manifest": {
    "formatVersion": "1.0",
    "bundleSpec": "evidence-room-bundle-v1",
    "record": {
      "decisionRequestId": "dr_01JZ8V4Q4N9K6T2D5B3M7X1S0E",
      "executionId": "run_01JZ8V4K2D9A6N3P7M5R1C8X0E",
      "lineageRecordId": "lin_01JZ8V4R8A2C6N9Q3S5D7M1T0E"
    },
    "artifacts": [
      {
        "path": "artifacts/exports/evidence-export-synthetic.json",
        "sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
        "bytes": 128,
        "sizeBytes": 128,
        "contentType": "application/json",
        "class": "execution-evidence",
        "source": {
          "type": "synthetic",
          "ref": "run_01JZ8V4K2D9A6N3P7M5R1C8X0E"
        }
      },
      {
        "path": "artifacts/index/artifact_index.json",
        "sha256": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
        "bytes": 64,
        "sizeBytes": 64,
        "contentType": "application/json",
        "class": "artifact-index",
        "source": {
          "type": "synthetic",
          "ref": "bundle_manifest_synthetic_20260721_01"
        }
      }
    ],
    "integrity": {
      "manifestHashAlgo": "SHA-256",
      "manifestHash": "1bae725ba61cf55f94310e37ee491d3d52145d98da8580df63e0b91fa9968117",
      "signatureAlgo": "ES256",
      "signaturePayload": "MANIFEST_HASH",
      "signingKeyId": "sample-key-sek-synthetic-01",
      "anchors": [
        {
          "type": "immudb",
          "status": "NOT_PRESENT",
          "reason": "IMMUDB_DISABLED",
          "ledger": "immudb",
          "proofPath": "ledger_anchor.json",
          "valueHash": ""
        },
        {
          "type": "ots",
          "status": "PRESENT",
          "proofPath": "timestamp.ots"
        }
      ]
    }
  }
}

Valid seal values

The manifest digest is 1bae725ba61cf55f94310e37ee491d3d52145d98da8580df63e0b91fa9968117. The Merkle root is cb170b4d42403ed97c4818a723ebd93607902a84159deb4555357bc73a432102.

Cross-reference

The record fields and export identifier connect this file to the complete sanitized execution record and its evidence.manifest_ref.

Download the companion bundle summary

05

Integrität und Offline-Verifizierung

Der Produktionsprüfer behandelt Bundle-Bytes und Manifeste als nicht vertrauenswürdige Eingaben und schlägt fehl („fail closed“), wenn eine erforderliche Überprüfung fehlschlägt. Das Verfahren umfasst sechs benannte Überprüfungen.

manifest-signature

Manifest-Signatur

Normalisiert das Manifest, berechnet die JCS/SHA-256-Prüfsumme, vergleicht die Zusammenfassungen von Manifest und Bundle, überprüft die abgetrennte Nutzlast, validiert ES256 SEK- und TEK-Signaturen gegen eingebettete nicht zurückgezogene Schlüssel und überprüft deklarierte Ankerpfade.

receipt-signatures

Beleg-Signaturen

Wenn Governance EvidenceEntry[]-Material vorhanden ist, überprüft die Ed25519-Belegsignaturen, eingebettete Schlüssel, den Widerrufsstatus und prevReceiptHash-Links. Nicht unterschriebenes Belegmaterial folgt dem expliziten Pfad für nicht unterschriebene Belege des Prüfers.

ledger-hash-chain

Hauptbuch-Hash-Kette

Wenn Governance EvidenceEntry[] Material vorhanden ist, werden Ledger-Eintrags-Hashes neu berechnet, aufgenommene Redaktions-Transformierungen angewendet, Eintrags-Hashes überprüft und eine verbundene Ledger-Komponente benötigt.

merkle-inclusion

Merkle-Einschluss

Löst jeden deklarierten Pfad im Bundle auf, vergleicht Dateigröße und SHA-256, berechnet kla-merkle-v1 neu, überprüft Einschlussnachweise, wenn vorhanden, und vergleicht die Wurzel und die Anzahl der Artefakte mit bundle.json.

ots-anchor

OpenTimestamps-Anker

Parst timestamp.ots, überprüft dessen SHA-256-Verpflichtung gegen das Manifest-Digest und akzeptiert einen ausstehenden Kalendernachweis oder eine Bitcoin-Bestätigung innerhalb der Vertrauensgrenze des Offline-Prüfers.

pii-absence

PII fehlt

Läuft nur, wenn der Aufrufer verbotene Marker bereitstellt. Es scannt Bundle-Dateien als Bytes, meldet maskierte Marker-Digests und schlägt fehl, wenn eine aufgeführte Datei oder das Manifest nicht gelesen werden kann.

Valid synthetic manifest

The declared digest reproduces from the normalized manifest. The declared Merkle root is computed from the two sorted artifact entries. A complete on-disk bundle supplies the bytes and detached signatures for the remaining checks.

Single artifact-digest tamper

The tampered file changes one artifact sha256 from the valid example while retaining the original manifest digest and Merkle root. The manifest remains schema-valid. Digest comparison fails, and the full merkle-inclusion check also compares the declaration with the artifact bytes.

  1. 01Lies bundle.json, manifest.json, manifest.jws.json, keys/jwks.json und die deklarierten Ankerdateien aus dem Bundle-Verzeichnis.
  2. 02Validiere die Manifeststruktur und halte jeden Pfad innerhalb des Bundle-Verzeichnisses.
  3. 03Leere integrity.manifestHash- und immudb anchor valueHash-Felder, kanonisiere sie mit der JCS-Ordnung des Exporteurs und berechne SHA-256.
  4. 04Vergleiche den berechneten Digest mit manifest.json, bundle.json und der abgetrennten JWS-Nutzlast. Überprüfe die SEK- und TEK ES256-Signaturen mit eingebetteten öffentlichen Schlüsseln.
  5. 05Bestimme, ob Governance-Nachweiskontrollen erforderlich sind: Ein fehlendes requestedArtifacts-Array, execution-evidence oder raw-evidence, im Bundle gefundene Evidenzdateien oder Fehler beim Laden von Evidenzen aktivieren Empfangs-Signaturen und Ledger-Hash-Kette.
  6. 06Führen Sie die sechs Prüfungen in der Verifiziererreihenfolge durch. Ein Aufrufer kann verbotene Marker für die Opt-in-PII-Abwesenheitsprüfung hinzufügen. Das Bundle besteht nur, wenn jede anwendbare Prüfung bestanden wird.

06

Aktuelle KLA-Implementierungskartierung

Diese Repository-Quellen definieren den Produzenten, den Manifestvertrag, den Prüfer und die hier beschriebenen einzelnen Überprüfungen.

ContractRepository source pathMappingStatus
BundleManifest / BundleJsonpackages/evidence-verifier/src/types.tsDefiniert Manifest, Zusammenfassung, Artefakt, Anker, Datensatz, JWS, JWKS, Überprüfungs- und Verifikationsformen.Aktuelle Quelle
Versiegelter Manifestvertragpackages/evidence-contract/src/index.tsValidiert die erforderlichen Felder des Produzenten: formatVersion, export, artefakt, Merkle, Datensatz und Integrität.Aktuelle Quelle
Bundle-Produzentservices/evidence-exporter/src/export-api.tsSchreibt bundle.json, manifest.json, losgelöste JWS, JWKS, OTS-Beweis, Ledger-Anker und Artefaktindex.Aktueller Produzent
Verifizierungsorchestrierungpackages/evidence-verifier/src/verifier.tsLädt nicht vertrauenswürdige Bytes, wählt bedingte Prüfungen und schlägt über die anwendbare Ergebnismenge hinweg fehl.Aktueller Prüfer
Manifest- und Merkle-Prüfungenpackages/evidence-verifier/src/checks/manifest-signature.ts; packages/evidence-verifier/src/checks/merkle-inclusion.tsÜberprüft Konsistenz von Digest/Signaturen/Zusammenfassungen und Artefakt-Bytes, Pfade, Größen, Hashes und Wurzel.Aktuelle Prüfungen
Beweis- und Ankerprüfungenpackages/evidence-verifier/src/checks/receipt-signatures.ts; packages/evidence-verifier/src/checks/ledger-hash-chain.ts; packages/evidence-verifier/src/checks/ots-anchor.ts; packages/evidence-verifier/src/checks/pii-absence.tsÜberprüft bedingten Empfang und Ledger-Beweise sowie OTS- und Opt-in-Markierungsscans.Aktuelle Prüfungen

Deliberate abstractions

  • Das herunterladbare Schema validiert manifest.json. Die separate bundle.json-Zusammenfassung wird im selben Schema unter $defs.bundleJson beschrieben und vom Produktionsprüfer verglichen.
  • Die synthetischen Beispiele enthalten Manifest-Metadaten und Artefakt-Hashes. Sie enthalten keine Artefakt-Bytes, JWS-Signaturen, JWKS, OTS-Beweis-Bytes oder Ledger-Anker-Dateien.
  • Der Referenzprüfer berechnet den normalisierten Manifest-Hash und akzeptiert optional eine separate ES256-Signatur. packages/evidence-verifier bleibt der Produktionsprüfer für das vollständige Bundle auf der Festplatte.
  • Die Seite beschreibt bedingte Empfangs-Signaturen und das Verhalten der Hauptbuch-Hash-Kette. Ein eigenständiges Beispiel für fehlende Signaturen oder nicht unterstützte Versionen bleibt durch die Entscheidung des Gründers zurückgestellt.
  • Das Manifest enthält Mandanten- und Exportkennungen. Die Bündelprüfung vergleicht diese Kennungen; Autorisierung, Mandantenisolierung zum Anforderungszeitpunkt und rechtliche Aufbewahrungsentscheidungen liegen weiterhin in der Verantwortung ihrer jeweils zuständigen Dienste und Richtlinien.
  • Die Prüfung auf Abwesenheit von personenbezogenen Daten erfordert vom Aufrufer bereitgestellte Marker. Das standardmäßige Prüfergebnis erhebt keinen universellen Anspruch auf Abwesenheit von PII.

Implementation source

The links above point to the current repository contract, exporter, and verifier. The documentation-layer reference helper lives at /ai-agent-evidence-bundle-manifest/v1/verify.ts; the production procedure remains the package verifier.

Open the production verifier source

07

Questions readers ask

The implementation boundary stays visible in the answers below.

Was ist der Unterschied zwischen bundle.json und manifest.json?

bundle.json ist die kurze Siegelzusammenfassung. manifest.json ist das vollständige Exportmanifest mit Artefakteinträgen, Verknüpfungen zu Aufzeichnungen, Umfangsmetadaten und Integritätsankern. Der Prüfer vergleicht ihre gemeinsamen Bezeichner, den Digest, die Merkle-Wurzel und die Anzahl der Artefakte.

Wann sind Empfangsbestätigungen und Ledger-Hash-Ketten erforderlich?

Der Prüfer benötigt sie, wenn die Evidenzfabrik Ausführungsevidenz oder Roh-Evidenz anfordert, wenn das Feld angeforderte Artefakte fehlt oder wenn Evidenzdateien oder Evidenzladefehler vorhanden sind. Ein Bundle ohne diese Signale erhält für die beiden Prüfungen ausdrücklich die Ergebnisse nicht erforderlich.

Beweist ein gültiges Manifest, dass jede Zugriffsentcheidung eines Mieters autorisiert war?

Das Manifest bindet den Export an seinen deklarierten Mandanten und die Datensatzverweise. Autorisierungs- und Mandanten-Isolationsentscheidungen werden von den Diensten bewertet, die die Datensätze erstellen und bereitstellen. Der Bundles-Verifizierer prüft die interne Konsistenz und Integrität des versiegelten Bundles.

Was demonstriert das manipulierte Beispiel?

Es ändert einen Artefakt-SHA256, während der ursprüngliche Merkle-Wert und das Manifest-Digest beibehalten werden. Das Manifest bleibt strukturell gültig, während der Vergleich der Digests fehlschlägt. Eine vollständige Überprüfung auf der Festplatte vergleicht außerdem die geänderte Deklaration mit den Artefakt-Bytes und dem Merkle-Wert.

Kontaktiert der Verifizierer OpenTimestamps oder ein Ledger?

Die Offline-Überprüfungen analysieren die lokalen Zeitstempel- und Ledger-Ankerdateien. Die OTS-Überprüfung kann ausstehende oder Bitcoin-bewiesene Beweisstrukturen erkennen. Die Netzbestätigung gehört zu einem separaten operativen Verfahren.

Related references

Follow one governed action through its records.

Start with the action request, policy decision, approval, and audit event schemas. Then inspect the complete execution record and evidence-room sample.

Open the execution record
Schema für das Beweismittel-Paket eines KI-Agenten