Open Agent Contract
Vendor-neutral contracts for governed agent consequence.
Publication status — 2026-08-14: this repository is public. The current target package line is
0.4.0; Governed Contract semantics are1.1.0. SeePUBLICATION_STATUS.mdfor exact release state.
The project defines a portable Governed Contract for describing who may attempt what action, on which resource, for which purpose, under which authority, evidence, constraints and validity window.
It is designed for A2A and human-to-agent interoperability. It does not require a specific model, agent framework, identity provider, transport, policy engine or execution-governance product.
Governed Contract v1.1
Core fields:
- issuer and subject identity references
- explicit authority grants and delegation chain
- allowed actions, resources and purposes
- explicit prohibitions and constraints
- evidence requirements with freshness bounds
- validity window
- completion conditions
- downstream receipt requirement
- vendor/domain extension namespace
Deterministic conformance outcomes:
conformantnon_conformantinsufficient_evidencenot_yet_validexpired
A conformant result is not permission to execute. It means the intent satisfies the portable contract and may be submitted to a separate organization-controlled authorization/enforcement boundary.
Every newly produced conformance result binds the exact contract ID, spec version and digest used for evaluation. verify_contract_continuity() detects amendment/replacement before a prior result is reused. contract_changed requires fresh conformance.
Legacy results without a contract spec version remain readable, but continuity fails closed to fresh conformance.
Persistence also creates no standing: files, memory, config, instructions, handoffs or cached artifacts do not become contract authority or evidence merely because they survived into another agent/session.
See docs/governed-contract-v1.md and open_agent_contract.governed.
Reference flow
agent discovery / transport
|
v
Governed Contract
|
v
contract conformance + exact contract digest
|
v
continuation check if reused later
|
v
organization-controlled authorization boundary
|
v
execution / settlement
|
v
receipt / evidence
Relationship to other governed-contract work
This repository remains an independently usable portable contract/reference implementation.
The exact canonical relationship between Open Agent Contract and VALO GCoP is unresolved as of 2026-08-14. They MUST NOT be described as aliases, replacements or parent/child profiles until that relationship is explicitly resolved.
This uncertainty does not weaken the local contract invariants:
conformance != execution authorization
persistence != standing
contract drift -> fresh conformance
Existing contract lifecycle
The package also retains the original general and isolated ephemeral agent-contract implementation:
- DRAFT → PROPOSED → ACTIVE → SUSPENDED → TERMINATED / EXPIRED
- scope, authority, constraints, obligations, prohibitions and permissions
- enforcement and violation records
- integrity verification and deterministic digests
- isolated ephemeral contracts for bounded acquisition work
These modules remain backward compatible. Product-specific integrations are optional adapters, not requirements of the open Governed Contract.
Quick start
pip install -e '.[test]'
pytest --tb=short
from datetime import datetime, timedelta, timezone
from open_agent_contract import (
ActionIntent,
AuthorityGrant,
GovernedContract,
PartyRef,
check_conformance,
verify_contract_continuity,
)
now = datetime.now(timezone.utc)
org = PartyRef(party_id="org:example", kind="organization")
agent = PartyRef(party_id="agent:buyer", kind="agent")
contract = GovernedContract(
contract_id="gc-1",
issuer=org,
subject=agent,
authority=[AuthorityGrant(
grant_id="g-1",
granted_by=org.party_id,
granted_to=agent.party_id,
actions=["purchase"],
resources=["catalog:item-42"],
purposes=["restock"],
)],
allowed_actions=["purchase"],
allowed_resources=["catalog:item-42"],
allowed_purposes=["restock"],
valid_from=now,
valid_until=now + timedelta(hours=1),
)
intent = ActionIntent(
intent_id="i-1",
actor=agent,
action="purchase",
resource="catalog:item-42",
purpose="restock",
requested_at=now,
)
result = check_conformance(contract, intent, checked_at=now)
continuity = verify_contract_continuity(result, contract)
print(result.outcome, continuity.outcome)
Project governance
CHANGELOG.md— version historyGOVERNANCE.md— normative/public-API change authority and external standardization transferCONTRIBUTING.md— contribution rulesSECURITY.md— vulnerability reportingPUBLICATION_STATUS.md— exact publication and release state
Wire-format/spec versions and Python package versions are intentionally independent. Substantive additive contract semantics increment the Governed Contract minor version. The pre-1.0 Python package increments its own minor version when its public API/behavior expands materially.
Discussion, issues, publisher review and external standards work are proposal/evidence surfaces. They do not silently change the contract; accepted versioned contract/API state is normative for this repository until an explicit canonical transfer.
Publication
This repository is public and open source. A formal release is identified only by an exact version, tag and commit hash; repository visibility by itself is not a release claim. Historical tags are immutable and corrections move forward through new versions.
License
MIT. The contract format and reference implementation are intended to be usable independently of any single vendor.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file open_agent_contract-0.4.0.post1.tar.gz.
File metadata
- Download URL: open_agent_contract-0.4.0.post1.tar.gz
- Upload date:
- Size: 25.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f27182b2bb9263c9dd4916feb2ac24e3997b3cdb260219b20349f8910ae32b04
|
|
| MD5 |
b199b28afeb7c1e5c8966021ea26929c
|
|
| BLAKE2b-256 |
a888ac78b352811f1252852c2bdc20a7b17298543b0f6368197a287cc3763eda
|
Provenance
The following attestation bundles were made for open_agent_contract-0.4.0.post1.tar.gz:
Publisher:
publish.yml on nsolland/open-agent-contract
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
open_agent_contract-0.4.0.post1.tar.gz -
Subject digest:
f27182b2bb9263c9dd4916feb2ac24e3997b3cdb260219b20349f8910ae32b04 - Sigstore transparency entry: 2485009991
- Sigstore integration time:
-
Permalink:
nsolland/open-agent-contract@ef3248bab67ea4c8506405f72a29bb89d418eae2 -
Branch / Tag:
refs/tags/v0.4.0.post1 - Owner: https://github.com/nsolland
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ef3248bab67ea4c8506405f72a29bb89d418eae2 -
Trigger Event:
push
-
Statement type:
File details
Details for the file open_agent_contract-0.4.0.post1-py3-none-any.whl.
File metadata
- Download URL: open_agent_contract-0.4.0.post1-py3-none-any.whl
- Upload date:
- Size: 19.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
92d495625d5e56c9af792b81dd0e5f521a4bc5dcd651893dcd621994d123b749
|
|
| MD5 |
1bc445cffd312d36fb9bb31c749970f3
|
|
| BLAKE2b-256 |
5631afe8f174afeecee7906c3621242d8faffeedfe71e4de45fdf445d25d43e4
|
Provenance
The following attestation bundles were made for open_agent_contract-0.4.0.post1-py3-none-any.whl:
Publisher:
publish.yml on nsolland/open-agent-contract
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
open_agent_contract-0.4.0.post1-py3-none-any.whl -
Subject digest:
92d495625d5e56c9af792b81dd0e5f521a4bc5dcd651893dcd621994d123b749 - Sigstore transparency entry: 2485010092
- Sigstore integration time:
-
Permalink:
nsolland/open-agent-contract@ef3248bab67ea4c8506405f72a29bb89d418eae2 -
Branch / Tag:
refs/tags/v0.4.0.post1 - Owner: https://github.com/nsolland
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@ef3248bab67ea4c8506405f72a29bb89d418eae2 -
Trigger Event:
push
-
Statement type: