Skip to main content

Emit ZAP1 verifiable attestation receipts from Inspect AI evals (verify-without-trust eval verdicts).

Project description

inspect-receipts

Emit ZAP1 verifiable attestation receipts from Inspect AI evals. Install the package, run any eval, and a signed-evidence receipt for the run lands next to your logs with no fork and no code change to your tasks.

What this is: the missing signed-evidence layer for agent evals. Inspect (and the broader agentskills.io ecosystem) produce rich results but ship them as trust-on-read JSON. inspect-receipts turns each eval into a hash-commitment: input_hash (what was evaluated), output_hash (the verdict), and locked_harness_hash (the frozen judge), so a third party can recompute without trusting the runner.

What this is NOT: a proof that the eval, the scorer, or the system-under-test is correct. It is a tamper-evident commitment, not a correctness SNARK. No prompts, completions, transcripts, or secrets ever enter a receipt: only canonical SHA-256 hashes, numeric metrics, and coarse identifiers.

Install

pip install inspect-receipts          # plus: pip install inspect_ai

Inspect auto-discovers the hook via its inspect_ai entry-point group. There is nothing to import in your eval.

Use

inspect eval my_task.py --model anthropic/claude-opus
# -> ./zap1-receipts/receipt-<task_id>.json

Each completed task writes a receipt like:

{
  "schema": "zap1.vwc.v0/attestation",
  "receipt_family": "AGENT_EVAL_VERDICT",
  "vwc_profile": "attestation",
  "subject": { "kind": "inspect_eval", "task": "ipi_resistance", "model": "..." },
  "hashes": {
    "input_hash":  "sha256:...",
    "output_hash": "sha256:...",
    "locked_harness_hash": "sha256:..."
  },
  "score": { "kind": "scalar", "direction": "maximize", "name": "match.accuracy", "value": 0.92 },
  "metrics": ["match.accuracy=0.92"],
  "status": "success",
  "public_boundary": "hash-commitment, NOT a proof of correctness"
}

Configuration (env)

Variable Default Effect
INSPECT_RECEIPTS 1 Set 0 to disable receipt emission.
ZAP1_RECEIPT_DIR ./zap1-receipts Where receipts are written.
ZAP1_RECEIPT_ISSUER inspect-receipts Issuer label in the receipt.
ZAP1_RECEIPTS_ANCHOR 0 (off) Opt-in: POST the receipt to a ZAP1 endpoint.
ZAP1_ENDPOINT / ZAP1_API_KEY unset Required only if anchoring is enabled.

Default is local-only / no network. Anchoring is opt-in and transmits only the bounded receipt (hashes + metrics), never eval content. Verify locally before you anchor.

Receipt format

Receipts use the ZAP1 attestation schema (zap1.vwc.v0/attestation): a locked, hashed judge (the Inspect task, model, and config), a recomputable verdict, and three bound hashes. The same envelope is reused for benchmark and gate receipts, so one verification path covers all of them.

License

MIT.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

inspect_receipts-0.1.0.tar.gz (7.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

inspect_receipts-0.1.0-py3-none-any.whl (9.0 kB view details)

Uploaded Python 3

File details

Details for the file inspect_receipts-0.1.0.tar.gz.

File metadata

  • Download URL: inspect_receipts-0.1.0.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for inspect_receipts-0.1.0.tar.gz
Algorithm Hash digest
SHA256 aa42c2b04ce9cfefaaa941e5a433c122c9b8cb59ae73669cfc8a83b7d1936d92
MD5 ff3e8aae21d92051be4f055f8652262e
BLAKE2b-256 d9a3653310e7707bb8d2cb219f82a6dfed1ed305b3e67bce68cc45ca3b7fbd16

See more details on using hashes here.

File details

Details for the file inspect_receipts-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for inspect_receipts-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 eccb2ac0715730d62358b63de696ad187155b49dc2a35451ac0c33ae90fe97eb
MD5 d3a1f6f0d667e9a0a4ed6c9b154595d3
BLAKE2b-256 25dc8ba1dffe450f933fe74c9ba8704c01e7924320fe746c824cd61891130193

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page