Skip to main content
evalopt: Agents propose. Policy decides. A noisy proposal signal passes through Gates, Evidence, and Bounds, then forks to Accepted or Blocked.

Release CI PyPI Python License: MIT

Agents propose. Policy decides.

A zero-dependency governance and evidence-integrity kernel for any agent runtime.

evalopt turns host observations into one deterministic, content-addressed acceptance decision. It does not run models, choose tools, edit repositories, or pretend that retrieved text is true. Your agent runtime does the work; the kernel decides whether the resulting evidence satisfies an explicit policy.

Install

pip install evalopt-graph

Python 3.10–3.14 is supported. The stable kernel has no required runtime dependencies.

Decide, serialize, replay

from evalopt_graph import AcceptanceDecision, AcceptanceInput, GovernancePolicy, evaluate_acceptance

policy = GovernancePolicy(required_gates=("tests", "lint"))
observed = AcceptanceInput(
    observed_at="2026-07-20T12:00:00+00:00",
    gate_results=(("tests", "PASS"), ("lint", "PASS")),
)

decision = evaluate_acceptance(policy, observed)

assert decision.status == "ACCEPTED"
assert decision.reasons == ("policy_satisfied",)
assert decision.validate()

# Decisions are plain, content-addressed records.
stored = decision.to_dict()
restored = AcceptanceDecision.from_dict(stored)
assert restored.replay(policy, observed)

The evaluator is pure: the same policy and input produce the same decision. Terminal outcomes are ACCEPTED, BLOCKED, UNVERIFIED, UNSUPPORTED, and FAILED, each with stable reason codes and hashes for the policy, input, evidence records, and decision.

Stable kernel API

The package root exports exactly ten stable symbols in v0.1.x:

from evalopt_graph import (
    GovernancePolicy,
    ClaimRecord,
    EvidenceRequest,
    EvidenceMaterial,
    EvidenceAttestation,
    SupportAssessment,
    EvidenceAuthority,
    AcceptanceInput,
    AcceptanceDecision,
    evaluate_acceptance,
)
  • GovernancePolicy declares required gates, trust, freshness, evaluator, claim, verifier, and record authorization requirements.
  • EvidenceAuthority applies controller-owned adapter policy to material already retrieved by a host.
  • EvidenceAttestation binds source policy, retrieval metadata, selected content, and hashes.
  • SupportAssessment separately records whether selected content supports, contradicts, or is insufficient for a claim.
  • evaluate_acceptance evaluates a complete immutable observation once and returns a replayable AcceptanceDecision.

See kernel.py for the compact public contract and test_kernel.py for complete evidence-authority examples.

Kernel owns / host owns

The kernel owns Your host owns
Deterministic policy evaluation Model calls, prompts, and sampling
Terminal decision status and reason codes Tools, edits, retries, and orchestration
Content-bound evidence and support records Retrieval and protection of controller policy
Record authorization and freshness checks Sandboxes, network and filesystem controls
Canonical serialization, hashes, and replay Persistence, scheduling, graders, and metrics

This boundary is intentional. Importing evalopt_graph loads the kernel without importing provider SDKs, the compatibility graph, CLI code, filesystem adapters, benchmark adapters, or optional frameworks.

Evidence, not a truth oracle

Evalopt keeps three questions separate:

  1. Was this exact material retrieved under an allowed adapter policy? An attestation binds the retrieved bytes, selected span, source class, time, parser identity, and policy.
  2. Does the selected material support this exact claim? A support assessment records the verifier and its result independently of retrieval integrity.
  3. May these exact records authorize acceptance? Governance policy allowlists the authority policy, verifier, and evidence records before the decision can use them.

That structure makes evidence tampering and unsupported load-bearing claims visible. It does not prove semantic truth, deployed behavior, source correctness, or model capability.

Current evidence ladder

  • IMPLEMENTED / UNIT_PROVEN: pure API, immutable records, distinct terminal states, authorization, serialization, replay, and import isolation.
  • INTEGRATION_PROVEN: the compatibility host and optional Harbor verifier mapping terminate through the same kernel decision path.
  • CONFORMANCE_PROVEN: deterministic generated and authored cases exercise a bounded evidence boundary mechanism.
  • Not established: benchmark superiority, external comparison, independent reproduction, or SOTA.

Read the evidence report and prospective external protocol for the claims, controls, and gaps. There is no live-model governance campaign or official Docker SWE-bench result in this release.

Integrate it anywhere

The kernel is host-independent: adapt observations from Codex, Claude Code, OpenHands, LangGraph, CI, or your own runtime into AcceptanceInput, then store the returned decision beside the policy and input used to create it.

An optional Harbor 0.18 conformance task demonstrates verifier-side mapping without importing Harbor into the kernel. It validates integration wiring only; it is not an external benchmark.

The historical graph, standalone CLI, provider clients, Codex bridge, research loop, and filesystem adapters remain as deprecated compatibility surfaces for one migration cycle. They are not stable API or policy authorities. New integrations should depend only on the ten root exports above.

Documentation

Community and security

Bug reports, focused proposals, documentation improvements, and integrations are welcome. Start with the contribution guide and follow the Code of Conduct.

Please report vulnerabilities privately using GitHub Security Advisories, not a public issue. See the security policy for supported versions and response expectations.

Development

git clone https://github.com/ajaysurya1221/evalopt-graph.git
cd evalopt-graph
uv venv .venv
source .venv/bin/activate
uv pip install -e ".[dev]"

python -m compileall -q src tests scripts
python -m pytest -q
python -m ruff check src tests scripts
python -m ruff format --check src tests scripts
bash scripts/smoke_test.sh
uv build

License

Released under the MIT License. Copyright © 2026 Ajay Surya Senthilrajan.

Metadata

Release files for evalopt-graph 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for evalopt-graph 0.1.0
File Size Uploaded
evalopt_graph-0.1.0.tar.gz 349.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for evalopt-graph 0.1.0
File Interpreter ABI Platform
evalopt_graph-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 484.1 kB

Release files / evalopt_graph-0.1.0.tar.gz

Download URL evalopt_graph-0.1.0.tar.gz
Size 349.8 kB
Tags Source
SHA-256 checksum
How to use checksums
65845e9da30aad0ee22195076d8fcd525a282caac6809a4ea2c9cbd604547910
BLAKE2b-256 checksum
How to use checksums
746aefbf25dbc7fd885372439600cc95835a78f3365f0f6a8854f199585dd547
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.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 Jul 20, 2026.

Transparency log

Release files / evalopt_graph-0.1.0-py3-none-any.whl

Download URL evalopt_graph-0.1.0-py3-none-any.whl
Size 134.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
582140ec2b04c412ec7f56483b9e476c5b38ce309afb4f086b9a830e14d53156
BLAKE2b-256 checksum
How to use checksums
2e1262a9a27c0ea92a28f7b3a0b353f27aa365e535f016ad2cbc28256355b728
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.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 Jul 20, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page