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.2.tar.gz (576.4 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.2-cp311-abi3-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.11+Windows x86-64

shadow_diff-3.2.2-cp311-abi3-manylinux_2_34_x86_64.whl (1.1 MB view details)

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

shadow_diff-3.2.2-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.2.tar.gz.

File metadata

  • Download URL: shadow_diff-3.2.2.tar.gz
  • Upload date:
  • Size: 576.4 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.2.tar.gz
Algorithm Hash digest
SHA256 a5235b6e3571cf566ba71993d43da1eca383975bfbb425dd722b0cdd33e7a0fa
MD5 fab9f7503142963f029c062d7f8fa6a6
BLAKE2b-256 aae30b5b20ed9f0709208f8bfa592ff3dee5b2aceea33aee0067305bb00e7b80

See more details on using hashes here.

Provenance

The following attestation bundles were made for shadow_diff-3.2.2.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.2-cp311-abi3-win_amd64.whl.

File metadata

  • Download URL: shadow_diff-3.2.2-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.2-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 6959d138166d690c7c829fe94104e5630ab3ed34fa6b851f3cb5c0d8027cb866
MD5 a8fdd67711317f0e0acec77b577bdafb
BLAKE2b-256 b5161b6d93aee64d5b4967bb7b06f6cd70568668487997213dc0346ef78a06c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for shadow_diff-3.2.2-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.2-cp311-abi3-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for shadow_diff-3.2.2-cp311-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 5b3dc1989266e63225f761bda6823235e0ff28d1b395a0a71f17dd5e64041e9b
MD5 29591054f91650aaed80498808944c93
BLAKE2b-256 0f77e3afc4116e949ebc6f37dfb1e073ee40b8d79eb0adc5c3712937a37aa6c5

See more details on using hashes here.

Provenance

The following attestation bundles were made for shadow_diff-3.2.2-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.2-cp311-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for shadow_diff-3.2.2-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cb9f7ceda8d9ea2e990a797740a9187c30ba3a843e3c85d0dc00aceaf2a45714
MD5 715929b23ac305917f30380c7fddc71d
BLAKE2b-256 4c3d64b63e1b7b4cd7f16c1244ce08a45548cd514f9b2be7be683aebd4cd5378

See more details on using hashes here.

Provenance

The following attestation bundles were made for shadow_diff-3.2.2-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