Skip to main content

AgentRunProof

AgentRunProof is a deterministic runtime-conformance harness for the OpenAI Agents SDK. It drives the real Runner with scripted public-Model responses, compares observable state across execution paths, and writes a content-addressed conformance record. A failing record carries the normalized counterexample observations.

AgentRunProof v0.1 targets openai-agents 0.20.x on Python 3.10–3.14. Built-in scenarios make no model API call and require no API key.

What v0.1 checks

  • declared completion, interruption, or Runner-exception outcomes for every scenario phase;
  • post-run parity between non-streaming execution and scripted terminal-event streaming (response.output_item.done plus response.completed);
  • ordered function-call/output linkage in generated items, Session snapshots, and every model input;
  • declared counts for scenario-owned local tool invocations;
  • consumption of each deterministic model script;
  • selected public RunState transitions: JSON transport, from_json() reconstruction, restored-state equality, interruption identities, and exact approve/reject decisions;
  • per-phase tool-count deltas, scenario probes, and replay of persisted tool history.

The terminal-event profile does not claim token/delta, timing, backpressure, or cancellation-stream equivalence. Generic handoff, retry, cancellation, max-turn, snapshot-isolation, and task-cleanup contracts remain future scenarios unless a certificate explicitly names and observes them.

AgentRunProof checks SDK runtime semantics. It is not a model-quality evaluator, tracing backend, HTTP recorder, hosted service, or general agent framework.

Development quickstart

python -m pip install -e ".[test,dev]"
agentrunproof --version
agentrunproof list-scenarios
agentrunproof probe basic-tool-session-parity --certificate build/basic.json
agentrunproof check-certificate build/basic.json

A successful probe exits 0; an observed invariant violation exits 1; invalid input or unverifiable evidence exits 2.

For library scenarios, the top-level package exposes Scenario/ScenarioCase for one run and ScenarioPlan/ScenarioPhase/ResumeInput/StateProbe for ordered multi-run contracts, together with DeterministicModel, RecordingSession, run_scenario(), and certificate helpers. The built-in scenario and the two multi-phase historical scenarios are executable examples.

Historical falsification matrix

The development matrix uses only released SDK wheels and public runtime interfaces:

Upstream case Buggy boundary Fixed boundary Required fingerprint
#4322 0.19.4 FAIL 0.20.0 PASS session limiting must not send an orphan function output to the model
#4244 0.19.4 FAIL 0.20.0 PASS serialized approval must survive a context-overridden resume and execute once
#4125 0.19.2 streamed FAIL 0.19.3 PASS a committed tool call/output pair must survive a resumed output-guardrail tripwire

Run a local, non-canonical rehearsal with:

python scripts/run_history_matrix.py --output-directory build/history-rehearsal
agentrunproof check-history-matrix build/history-rehearsal/matrix.json

Canonical evidence is stricter: Linux x86_64 CPython 3.12, fresh environments, hash-locked wheel closures, isolated worker processes, a Python socket-deny guard during scenario execution, an exact clean Git commit, and a bundle marker written last. Artifact acquisition occurs before the network guard and is explicitly recorded as a limitation. The public Gate 2 bundle will live under evidence/history/v1.

The 0.19.x rows are historical-only compatibility probes, not supported installations: the harness wheel is installed with --no-deps over each locked legacy SDK closure, and that dependency-metadata bypass is explicit in the canonical bundle.

Evidence and trust boundary

Certificate and history identifiers are SHA-256 addresses over canonical JSON. The independent checker rejects schema drift, non-finite or duplicate-key JSON, semantic inconsistencies, forged phase transitions, altered historical fingerprints, a missing or tampered required matrix/marker, and internally inconsistent source-state metadata. The referenced wheel is optional beside a local marker and is separately bound by CI or release artifacts.

Checking a record re-evaluates its normalized observations; it does not rerun the SDK, authenticate an untrusted publisher, or prove that the stated command executed. Public claims therefore require the clean source commit plus a visible CI or release anchor.

The private profile prevents raw observed payloads from being serialized, but values still exist in the scenario process. Its deterministic unsalted hashes are correlatable and may be dictionary-guessed for low-entropy values. Arbitrary user-defined tools, hooks, and probes are not sandboxed. Treat private records as local diagnostics and publish only reviewed synthetic evidence.

Project contract

The exact release gates and exclusions are in the project charter. The execution plan distinguishes the completed development rehearsal from canonical public evidence.

AgentRunProof is seeking evidence-backed adoption: a conventional upstream reproducer, optional CI fixture, or documentation reference—not a default SDK dependency.

License

MIT

Download files

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

Source Distribution

agentrunproof-0.1.0.tar.gz (77.8 kB view details)

Uploaded Source

Built Distribution

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

agentrunproof-0.1.0-py3-none-any.whl (66.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: agentrunproof-0.1.0.tar.gz
  • Upload date:
  • Size: 77.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for agentrunproof-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c0e1460e4733197fb1c89478c6a09cbca6cdf0435ef345e7f6d66b36602ca9c0
MD5 22aa761b1abaed6a085cc77460ba6d46
BLAKE2b-256 729824f2e1eb039a75117f4dea2c50e61371fc945e2d5469c3ad7343ccec2c64

See more details on using hashes here.

Provenance

The following attestation bundles were made for agentrunproof-0.1.0.tar.gz:

Publisher: publish.yml on FU-max-boop/agentrunproof

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

File details

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

File metadata

  • Download URL: agentrunproof-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 66.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for agentrunproof-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 84b875925e62e9e88d33177cfceef7669a82c74feee2dd101bff13a8d2ad8288
MD5 ccf40e7b4f0cf3d273814f8a49c34ff3
BLAKE2b-256 245f65a158f9ddb02aaf85de89c2c6dceddd0db2eaabf876ae728b8d7a4df9d7

See more details on using hashes here.

Provenance

The following attestation bundles were made for agentrunproof-0.1.0-py3-none-any.whl:

Publisher: publish.yml on FU-max-boop/agentrunproof

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 Sentry Error logging StatusPage Status page