Skip to main content

Behavior contracts for AI agents — tested in your PR, enforced at runtime.

Project description

shadow-diff

Find the exact change that broke your AI agent.

Shadow is a CI-native regression-forensics tool for LLM agents. One command on the PR — shadow diagnose-pr — answers:

  1. Did agent behavior change?
  2. How many traces are affected?
  3. Which exact prompt / model / tool / config change caused it?
  4. With what confidence (ATE + bootstrap CI + E-value when run with --backend live)?
  5. What fix should verify-fix confirm before merge?

The PyPI distribution is shadow-diff. The Python import path is shadow. The CLI is shadow.

Install

pip install shadow-diff

Requires Python 3.11+. Pre-built wheels ship for Linux x86_64, macOS arm64, and Windows x86_64; other platforms build from source (Rust required).

Optional extras:

pip install 'shadow-diff[anthropic]'   # if your agent uses Claude
pip install 'shadow-diff[openai]'      # if your agent uses GPT
pip install 'shadow-diff[embeddings]'  # paraphrase-robust semantic diff
pip install 'shadow-diff[all]'         # everything

60-second tour

shadow demo                  # nine-axis diff on bundled fixtures, no API key
shadow quickstart            # writable copy of a runnable scenario

Then run diff against the writable scenario:

cd shadow-quickstart
shadow diff fixtures/baseline.agentlog fixtures/candidate.agentlog

For the full diagnose-pr flow against your own agent, see docs/features/causal-pr-diagnosis.md and the runnable refund-causal-diagnosis demo.

Record your own agent

from shadow.sdk import Session

with Session(output_path="trace.agentlog"):
    # Your existing Anthropic / OpenAI code, unchanged.
    client.messages.create(model="claude-sonnet-4-6", messages=[...])

Shadow auto-instruments the Anthropic and OpenAI SDKs and writes content-addressed .agentlog files. Secrets are redacted by default. Or skip the code change entirely:

shadow record -o trace.agentlog -- python your_agent.py

Daily workflow — Shadow as pytest for agent behavior

shadow inspect trace.agentlog                  # debug a single trace
shadow scan baseline_traces/                   # block secret leaks
shadow baseline create baseline_traces/        # pin the gold standard
shadow gate-pr ...                             # gate every PR

Full docs

The canonical README, the .agentlog spec, runnable examples, and the comparison against adjacent agent-eval and runtime-governance tools all live at https://github.com/manav8498/Shadow.

License

Apache-2.0. See LICENSE-APACHE in this distribution. The .agentlog spec is independently published under 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

shadow_diff-3.2.4.tar.gz (578.7 kB view details)

Uploaded Source

Built Distributions

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

shadow_diff-3.2.4-cp311-abi3-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.11+Windows x86-64

shadow_diff-3.2.4-cp311-abi3-manylinux_2_34_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.34+ x86-64

shadow_diff-3.2.4-cp311-abi3-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.11+macOS 11.0+ ARM64

File details

Details for the file shadow_diff-3.2.4.tar.gz.

File metadata

  • Download URL: shadow_diff-3.2.4.tar.gz
  • Upload date:
  • Size: 578.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for shadow_diff-3.2.4.tar.gz
Algorithm Hash digest
SHA256 6b8c2568c5ae8c4b5c05cc5506c5e5d45eb079f6f62a9438c76784588863c9b1
MD5 8fb2be0de8ab5b1acaad98e4da2476c3
BLAKE2b-256 b352a8572736523e862062f1062da192cd0d61e869b7563b08e887ca32af4523

See more details on using hashes here.

Provenance

The following attestation bundles were made for shadow_diff-3.2.4.tar.gz:

Publisher: release.yml on manav8498/Shadow

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shadow_diff-3.2.4-cp311-abi3-win_amd64.whl.

File metadata

  • Download URL: shadow_diff-3.2.4-cp311-abi3-win_amd64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.11+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for shadow_diff-3.2.4-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 b5624212050f2ad975f097c83f5e9aaa9d9ec99cdacc4f831035be9b96ea870b
MD5 1c6e51cd74af6a911087d9793ef81b02
BLAKE2b-256 c83906687500121ad5cc6e1b683ef7d62da6d61ed50fba3da04638c60f454ab0

See more details on using hashes here.

Provenance

The following attestation bundles were made for shadow_diff-3.2.4-cp311-abi3-win_amd64.whl:

Publisher: release.yml on manav8498/Shadow

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shadow_diff-3.2.4-cp311-abi3-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for shadow_diff-3.2.4-cp311-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 25285775e72bf79e73fb9dc48efc7844609580751f8fb8f752598489a83e6224
MD5 f12f1401f622ba75275529b9f213ecb9
BLAKE2b-256 9bd1504c4baed719193363d8814b5153d880a34e883e14c06b92ccf08e7abc3f

See more details on using hashes here.

Provenance

The following attestation bundles were made for shadow_diff-3.2.4-cp311-abi3-manylinux_2_34_x86_64.whl:

Publisher: release.yml on manav8498/Shadow

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file shadow_diff-3.2.4-cp311-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for shadow_diff-3.2.4-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7a3806d4a0539063940f431a21ec70413d040c45ba11349ee33c62358cd61ec1
MD5 82ce4f380593a7c2b083896ea8a24ba9
BLAKE2b-256 0573be6ae735fbbf3bc2d7e07a3e52fd20548cc251cde2237bb23178fea9eb28

See more details on using hashes here.

Provenance

The following attestation bundles were made for shadow_diff-3.2.4-cp311-abi3-macosx_11_0_arm64.whl:

Publisher: release.yml on manav8498/Shadow

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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