Evidence records show what the runtime knew, decided, executed, changed, and recovered without requiring sensitive raw prompts to be retained.
Status and scope
Request identity, contract versions, context references and hashes, model route, tool calls, approvals, policy decisions, side effects, failures, retries, recovery, evaluation, output reference, redaction, retention, and UTC times.
Fields
| Field | Type | Required | Contract meaning |
|---|---|---|---|
schemaVersion | constant | Yes | See the schema constraints and examples for this versioned field. Required value: aruntime.evidence-record.v1. |
evidenceId | string | Yes | See the schema constraints and examples for this versioned field. |
requestId | string | Yes | See the schema constraints and examples for this versioned field. |
correlationId | string | Yes | See the schema constraints and examples for this versioned field. |
recordedUtc | string | Yes | UTC ISO 8601 timestamp ending in Z. |
actorRef | string | Yes | See the schema constraints and examples for this versioned field. |
tenantRef | string or null | No | See the schema constraints and examples for this versioned field. |
contractVersions | object | Yes | See the schema constraints and examples for this versioned field. |
contextReferences | array | Yes | See the schema constraints and examples for this versioned field. |
modelRoute | object | Yes | See the schema constraints and examples for this versioned field. |
toolInvocations | array | Yes | See the schema constraints and examples for this versioned field. |
approvalDecisions | array | Yes | See the schema constraints and examples for this versioned field. |
policyDecisions | array | Yes | See the schema constraints and examples for this versioned field. |
sideEffects | array | Yes | See the schema constraints and examples for this versioned field. |
failures | array | Yes | See the schema constraints and examples for this versioned field. |
retries | array | Yes | See the schema constraints and examples for this versioned field. |
recoverySteps | array | Yes | See the schema constraints and examples for this versioned field. |
evaluationResults | array | Yes | See the schema constraints and examples for this versioned field. |
finalOutputReference | string or null | Yes | See the schema constraints and examples for this versioned field. |
redaction | object | Yes | See the schema constraints and examples for this versioned field. |
retentionPolicy | object | Yes | See the schema constraints and examples for this versioned field. |
Versioning and compatibility rules
- Evidence records are append-oriented. Corrections add superseding records rather than silently altering historical decisions.
- References and cryptographic hashes can establish provenance without retaining raw context or model inputs.
- Unknown outcome is a first-class state after an ambiguous side-effect timeout and triggers reconciliation before retry.
Validation and error behavior
Validate the complete envelope before model execution or credential resolution. Return a stable machine code, a safe human explanation, the failing JSON Pointer, and the supported contract versions. Never “repair” missing authority or risk fields with model-generated values.
{
"error": {
"code": "contract-validation-failed",
"contractVersion": "v1",
"path": "/idempotencyKey",
"message": "A stable idempotency key is required.",
"retryable": false
}
}
Security, redaction, and minimization
- Trace enabled does not mean prompt retention enabled. Store the minimum fields required for the declared audit and recovery purpose.
- Separate operational retention from legal hold, incident preservation, and evaluation datasets.
- Protect evidence from unauthorized modification and record access to sensitive evidence itself.
Validated examples
Redacted answer-with-evidence record
{
"schemaVersion": "aruntime.evidence-record.v1",
"evidenceId": "ev:20260623:001",
"requestId": "req_20260623_001",
"correlationId": "corr_20260623_001",
"recordedUtc": "2026-06-23T14:30:08Z",
"actorRef": "user:example",
"tenantRef": "tenant:demo",
"contractVersions": {
"request": "aruntime.runtime-request.v1",
"tool": "document.search.v2"
},
"contextReferences": [
{
"reference": "docset:architecture-records:42",
"hash": "sha256:example",
"classification": "internal",
"rawStored": false
}
],
"modelRoute": {
"routeRef": "hosted-general-v3",
"modelVersion": null,
"deploymentVersion": "deploy:2026-06-20.1",
"instructionVersionRef": "instructions:answer-evidence:7"
},
"toolInvocations": [
{
"toolRef": "document.search.v2",
"startedUtc": "2026-06-23T14:30:01Z",
"completedUtc": "2026-06-23T14:30:02Z",
"inputReference": "hash:query-example",
"resultReference": "artifact:search-result:001",
"outcome": "succeeded",
"idempotencyKey": "idem_search_001"
}
],
"approvalDecisions": [],
"policyDecisions": [
{
"decision": "allow",
"reasonCodes": [
"read-only"
]
}
],
"sideEffects": [],
"failures": [],
"retries": [],
"recoverySteps": [],
"evaluationResults": [
{
"evaluator": "citation-completeness.v2",
"score": 1
}
],
"finalOutputReference": "artifact:answer:001",
"redaction": {
"applied": true,
"rules": [
"omit-raw-input"
],
"omittedFields": [
"input.question"
]
},
"retentionPolicy": {
"policyId": "retention:standard-30d",
"expiresUtc": "2026-07-23T14:30:08Z",
"legalHold": false
}
}
Reference implementation
The bundled PHP 8.1 example validates admission fields, selects a constrained model route, checks tool permission and approval requirements, performs an idempotent synthetic operation, creates minimized evidence, handles errors, and prints expected JSON output.
Download the runnable PHP example
php examples/php/runtime_pipeline.php
