Skip to main content

Receipt-native AI safety toolkit

Project description

Assay

Stop filling out the AI compliance spreadsheet. Add one CI step. Every merge produces portable, signed evidence that anyone can verify.

When someone asks "prove what your AI did," you need more than logs. Logs live on your infrastructure, under your control. Assay produces signed evidence bundles they can verify independently -- no access to your systems required.

Install

pip install assay-ai

2-Minute Demo

pip install assay-ai
assay demo-incident

This runs a two-act scenario with synthetic data (no API key needed):

  • Act 1: Agent uses gpt-4 with a guardian check. Result: integrity PASS, claims PASS.
  • Act 2: Someone swaps the model and drops the guardian. Result: integrity PASS, claims FAIL.

That second result is an honest failure -- authentic evidence proving the run violated its declared standards. Not a cover-up. Not theater. Exit code 1.

assay demo-challenge    # CTF-style: spot the tampered pack
assay demo-pack         # build + verify from scratch

The Golden Path

# 0. Guided path (recommended)
assay onboard .

# 1. Find uninstrumented LLM calls
assay scan .

# 2. Instrument (one line)
#    from assay.integrations.openai import patch; patch()

# 3. Produce a signed proof pack
assay run -c receipt_completeness -c guardian_enforcement -- python my_app.py

# 4. Verify + explain
assay verify-pack ./proof_pack_*/
assay explain ./proof_pack_*/

# 5. Lock the verification contract
assay lock write --cards receipt_completeness,guardian_enforcement -o assay.lock
assay verify-pack ./proof_pack_*/ --lock assay.lock --require-claim-pass

How It Works

Assay separates two questions on purpose:

  • Integrity: "Were these bytes tampered with after creation?" (signatures, hashes, required files)
  • Claims: "Does this evidence satisfy our declared governance checks?" (receipt types, counts, field values)
Integrity Claims Exit Code Meaning
PASS PASS 0 Evidence checks out, behavior meets standards
PASS FAIL 1 Honest failure: authentic evidence of standards violation
FAIL -- 2 Evidence has been tampered with

The split is the point. Systems that can prove they failed honestly are more trustworthy than systems that always claim to pass.

Commands

Command Purpose
assay demo-pack Generate demo packs (no config needed)
assay demo-incident Two-act scenario: passing run vs failing run
assay demo-challenge CTF-style good + tampered pack pair
assay onboard Guided setup: doctor -> scan -> first run plan
assay scan Find uninstrumented LLM call sites
assay run Wrap command, collect receipts, build signed pack
assay verify-pack Verify a Proof Pack (integrity + claims)
assay explain Plain-English summary of a proof pack
assay ci init github Generate a GitHub Actions workflow
assay lock write Freeze verification contract to lockfile
assay lock check Validate lockfile against current card definitions
assay doctor Preflight check: is Assay ready here?

Documentation

Related Repos

Repo Purpose
assay Core CLI, SDK, conformance corpus (this repo)
assay-verify-action GitHub Action for CI verification
assay-ledger Public transparency ledger

License

Apache-2.0

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

assay_ai-1.2.2.tar.gz (102.5 kB view details)

Uploaded Source

Built Distribution

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

assay_ai-1.2.2-py3-none-any.whl (116.3 kB view details)

Uploaded Python 3

File details

Details for the file assay_ai-1.2.2.tar.gz.

File metadata

  • Download URL: assay_ai-1.2.2.tar.gz
  • Upload date:
  • Size: 102.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for assay_ai-1.2.2.tar.gz
Algorithm Hash digest
SHA256 7f93416a81d04dcb8a4a20711410c0d2797c406398e2f80ec8c4f0924e273dcb
MD5 d3ca6dd2e05d448724e56110ff82b2a9
BLAKE2b-256 6f9a1588e1bc521aff6c4af3139f4eedbcb3d2916ab31d58cb8467c6328e5486

See more details on using hashes here.

File details

Details for the file assay_ai-1.2.2-py3-none-any.whl.

File metadata

  • Download URL: assay_ai-1.2.2-py3-none-any.whl
  • Upload date:
  • Size: 116.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for assay_ai-1.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 091775eb11cfe701781ea784cb3dea7cc386e5e66dc1f66ec3ce20427aee626f
MD5 74335c80270b19e568d95fb103b06a98
BLAKE2b-256 eb804e40cd554852f8e9122adbf2e1cf514fabb508a0d098ab6265cc4221b5ca

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