Python SDK for the Kevros A2A Governance Gateway — five governance primitives for autonomous agents: verify, attest, bind, verify outcome, and bundle.
This project has been archived.
The maintainers of this project have marked this project as archived. No new releases are expected.
Project description
kevros
Python SDK for the Kevros A2A Governance Gateway — five governance primitives for autonomous agents: verify, attest, bind, verify outcome, and bundle.
pip install kevros
What This Does
Before your AI agent takes an action, ask Kevros: "Is this within policy bounds?"
After your agent acts, tell Kevros: "Here's what I did."
When you need proof, ask Kevros: "Did the outcome match the intent?"
Every decision is HMAC-signed. Every action is hash-chained. Every intent is cryptographically bound to its command. Downstream services verify independently — no callbacks, no trust assumptions.
Five Governance Primitives
| Primitive | Description | Cost |
|---|---|---|
| Verify | Evaluate an action against policy bounds. Returns ALLOW, CLAMP, or DENY with a cryptographic release token. | $0.01 |
| Attest | Record an action in a hash-chained, tamper-evident provenance ledger. | $0.02 |
| Bind | Cryptographically bind a declared intent to the command that fulfills it. | $0.02 |
| Verify Outcome | Confirm the executed action achieved its declared intent. Closes the governance loop. | Free |
| Bundle | Generate a certifier-grade compliance evidence package. Independently verifiable. | $0.25 |
Quick Start
from kevros_governance import GovernanceClient
client = GovernanceClient(api_key="kvrs_...")
# 1. VERIFY before acting — get ALLOW, CLAMP, or DENY
result = client.verify(
action_type="trade",
action_payload={"symbol": "AAPL", "shares": 100, "price": 185.50},
policy_context={"max_values": {"shares": 500, "price": 200.0}},
agent_id="trading-bot-001",
)
if result.decision.value == "ALLOW":
execute_trade(result.applied_action)
# 2. ATTEST after acting — create provenance record
attestation = client.attest(
agent_id="trading-bot-001",
action_description="Executed AAPL buy order",
action_payload={"symbol": "AAPL", "shares": 100, "filled_price": 185.42},
)
print(f"Provenance hash: {attestation.hash_curr}")
Intent Binding + Outcome Verification
Bind a declared intent to a specific command, then verify the outcome matched.
from kevros_governance import GovernanceClient, IntentType
client = GovernanceClient(api_key="kvrs_...")
# 3. BIND intent to command
binding = client.bind(
agent_id="nav-agent-001",
intent_type=IntentType.NAVIGATION,
intent_description="Navigate to waypoint Alpha",
command_payload={"lat": 38.0293, "lon": -78.4767, "alt": 100},
goal_state={"lat": 38.0293, "lon": -78.4767},
)
# ... execute the command ...
# 4. VERIFY OUTCOME — did the action achieve the intent?
outcome = client.verify_outcome(
agent_id="nav-agent-001",
intent_id=binding.intent_id,
binding_id=binding.binding_id,
actual_state={"lat": 38.0293, "lon": -78.4768},
)
print(f"Status: {outcome.status}") # ACHIEVED or FAILED
Compliance Evidence Bundle
Generate an audit-ready evidence package for any agent.
# 5. BUNDLE — certifier-grade compliance package
bundle = client.bundle(
agent_id="trading-bot-001",
include_intent_chains=True,
include_pqc_signatures=True,
)
print(f"Records: {bundle.record_count}, Chain intact: {bundle.chain_integrity}")
Async Support
Every method has an async counterpart prefixed with a:
async with GovernanceClient(api_key="kvrs_...") as client:
result = await client.averify(
action_type="trade",
action_payload={"symbol": "AAPL", "shares": 50},
agent_id="async-bot-001",
)
Pricing
- Free tier: 100 calls/month, instant signup, no payment required
- Scout: $29/mo — 5,000 calls
- Sentinel: $149/mo — 50,000 calls
- Sovereign: $499/mo — 500,000 calls
Agent Card
The gateway publishes an A2A Agent Card for agent-to-agent discovery.
MCP
For MCP-native agents, connect via streamable-http transport:
https://governance.taskhawktech.com/mcp/
Links
- Gateway: https://governance.taskhawktech.com
- Agent Card: https://governance.taskhawktech.com/.well-known/agent.json
- Website: https://taskhawktech.com
Project details
Release history Release notifications | RSS feed
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 kevros-0.3.6.tar.gz.
File metadata
- Download URL: kevros-0.3.6.tar.gz
- Upload date:
- Size: 22.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
95b8825eedc4a43018f02e77ec6e84010ec00b5159bd927f9c70bb19e9673de8
|
|
| MD5 |
81673fe8eab48973c79d613163f7bbd4
|
|
| BLAKE2b-256 |
1f90b94fca8764972f931f575f694d4015bcca1456cc7019740734e460869a3a
|
Provenance
The following attestation bundles were made for kevros-0.3.6.tar.gz:
Publisher:
publish-sdk.yml on ndl-systems/kevros
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kevros-0.3.6.tar.gz -
Subject digest:
95b8825eedc4a43018f02e77ec6e84010ec00b5159bd927f9c70bb19e9673de8 - Sigstore transparency entry: 1016915973
- Sigstore integration time:
-
Permalink:
ndl-systems/kevros@429ac3cbfde7c7dee8da4ce4f6edeea658244a2a -
Branch / Tag:
refs/tags/sdk-v0.1.6 - Owner: https://github.com/ndl-systems
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-sdk.yml@429ac3cbfde7c7dee8da4ce4f6edeea658244a2a -
Trigger Event:
push
-
Statement type:
File details
Details for the file kevros-0.3.6-py3-none-any.whl.
File metadata
- Download URL: kevros-0.3.6-py3-none-any.whl
- Upload date:
- Size: 21.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
472fab6cf9bb4822d73e82d4c30250e7f5e9a5fd2567e87a8f399ea4ad84fa38
|
|
| MD5 |
ec75d848ae783f245783b2d97091b55e
|
|
| BLAKE2b-256 |
c81ac1f9fe947898e90f91a48f85721360e64bbd4fd4e091a67aad2453a7155d
|
Provenance
The following attestation bundles were made for kevros-0.3.6-py3-none-any.whl:
Publisher:
publish-sdk.yml on ndl-systems/kevros
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
kevros-0.3.6-py3-none-any.whl -
Subject digest:
472fab6cf9bb4822d73e82d4c30250e7f5e9a5fd2567e87a8f399ea4ad84fa38 - Sigstore transparency entry: 1016915989
- Sigstore integration time:
-
Permalink:
ndl-systems/kevros@429ac3cbfde7c7dee8da4ce4f6edeea658244a2a -
Branch / Tag:
refs/tags/sdk-v0.1.6 - Owner: https://github.com/ndl-systems
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-sdk.yml@429ac3cbfde7c7dee8da4ce4f6edeea658244a2a -
Trigger Event:
push
-
Statement type: