AgentAxiom
Evidence-first regression and contract testing for Gemini and Vertex AI agents.
Turn an unreliable agent regression into a minimized, replayable, evidence-backed contract violation.
AgentAxiom records a scenario's prompt hash, model/provider identity, region, generation configuration, declared tools, usage, latency, cost, citations and safety metadata. It evaluates deterministic contracts against that record, so CI is offline by default. Live confirmations are opt-in and bounded by a hard call and cost budget.
See the prioritized 100-item go-live gate for completed repository controls and the required external release approvals.
MVP capabilities
- JSON Schema output validation and required/forbidden tool-call contracts.
- Grounding/citation, safety action, cost, and latency assertions.
- Offline fixture replay with fail-closed live verification gates.
- Delta-debug conversation minimization for reproducible failing traces.
- Sanitized JSON and HTML evidence bundles.
- Pytest fixture, CLI, and GitHub Actions workflow.
- Deterministic baseline/candidate comparisons with narrowly configurable noise paths.
- Per-tool argument schemas, allowed citation domains, evidence checksums, and Cloud Trace correlation IDs.
Quick start
pip install -e .
pytest
agentaxiom check fixture.json examples/contract.json --evidence-dir artifacts/quoted-answer
fixture.json uses the Transcript shape (scenario plus invocation). The evidence bundle emits evidence.json and index.html; secret-looking values are redacted before writing.
Try the included complete offline path:
python -m agentaxiom.cli check examples/fixture.json examples/contract.json
python -m agentaxiom.cli compare examples/fixture.json examples/fixture.json
agentaxiom minimize failing.json contract.json --output minimized.json
Live provider boundary
The core deliberately has no implicit network path. Implement the small AgentClient protocol for Gemini/Vertex or ADK, then supply ReplayPolicy(live_verification=True, max_live_calls=N, max_live_cost_usd=X). Calls without this explicit opt-in, or beyond either budget, raise PermissionError.
Planned adapters and exports
The core is provider-neutral so Gemini, Vertex AI, ADK, Cloud Trace, Cloud Run, GCS, and BigQuery adapters can preserve each platform's native response metadata without weakening the evidence format. Optional package groups are reserved for the Google provider/export clients:
pip install -e '.[vertex,export]'
GeminiVertexClient in agentaxiom.providers is the optional recorder adapter; export_gcs and export_bigquery in agentaxiom.exports publish evidence to those sinks. Cloud Run can invoke the CLI or pytest suite directly, and the returned evidence record carries the IDs needed to correlate Cloud Trace spans supplied by the calling service.
Cloud Run evaluator
The included container exposes an offline-only evaluator, suitable for a CI runner or a protected internal service:
docker build -t agentaxiom .
docker run -p 8080:8080 agentaxiom
# POST /evaluate with {"transcript": <fixture>, "contract": <contract>}
GET /healthz returns readiness. POST /evaluate never invokes a model; evidence writing is optional and defaults to ephemeral container storage.
No-code checkup screen
Open the evaluator's root URL to use the built-in plain-language console. It lets non-technical teammates upload a saved run and its rule file, see a simple pass/fail explanation, compare two runs, and download a shareable result. With a local install, start it with:
agentaxiom serve
# Then open http://localhost:8080
The screen uses the same offline evaluator and does not make model calls.
It is designed for a simple hand-off: an engineer records the run and writes the rules once; anyone on the team can then use the browser screen to review the result.
Regression workflow
- Capture a sanitized
Transcriptafter an agent response, including the exact tools, provider model, region, generation settings and ADK version. - Commit it as an offline fixture and pair it with a
Contract. - Run
agentaxiom checkin CI. Failed runs write a self-contained, checksumed evidence bundle. - Use
agentaxiom compare baseline.json candidate.jsonwhen validating a model, region, prompt, or dependency upgrade. For a failure whose trigger is independent of deleted context, useagentaxiom minimizeto delta-debug the trace. - Only for a bounded confirmation, create a
ReplayRunnerwithlive_verification=True, a nonzero call limit, and an explicit cost ceiling.
The root GitHub Action accepts a transcript and contract path for use from another repository.
Metadata
Release files for agentaxiom 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| agentaxiom-0.1.0.tar.gz | 39.6 kB | With provenance | Details for agentaxiom-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| agentaxiom-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for agentaxiom-0.1.0-py3-none-any.whl |
Total release size: 66.7 kB
Release files / agentaxiom-0.1.0.tar.gz
| Download URL | agentaxiom-0.1.0.tar.gz |
|---|---|
| Size | 39.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
12be380314b1f5c253395c10b48850e41ec08514d6a5216d0d6c22fda89bb81f
|
|
BLAKE2b-256 checksum How to use checksums |
64a488e20741ab1b2aacaceeac608e1f774ccd35a5306f0f97394a4857d9c5b8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / agentaxiom-0.1.0-py3-none-any.whl
| Download URL | agentaxiom-0.1.0-py3-none-any.whl |
|---|---|
| Size | 27.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
eddda8e835c1caf8adb7b0b6e39a7eb1e8c621b1dbc57306745768589b65270c
|
|
BLAKE2b-256 checksum How to use checksums |
359b0709e5d8949be15708a08bfd5b9c026d575300b38252e7a89c6bb0d7e821
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logSecurity for agentaxiom 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for agentaxiom-0.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.