Adaptive AI Agent Execution Layer for risk scoring, audit trails, and regulatory compliance
Project description
Vaara intercepts agent tool calls, scores each one with a conformal risk interval, and writes a hash-chained audit record. Online learning across five expert signals via Multiplicative Weight Update. Distribution-free conformal coverage on the score.
For broader agent governance (zero-trust identity, capability-based access control, multi-language SDKs) see Microsoft's Agent Governance Toolkit.
Numbers
- 5,955-entry adversarial corpus (3,422 attack across 8 categories, 2,533 benign)
- 97.1% attack recall on held-out distribution-shift split, threshold 0.55
- PAIR adaptive-attacker calibration: ASR 0/25 against Qwen2.5-32B
- vaara-bench-v1: 77-trace synthetic-corpus benchmark with frozen methodology, 100% soft TPR, 0% hard FPR
- 140 µs / 210 µs p99 inference latency, commodity CPU
- Distribution-free conformal coverage on the score
- MWU regret bound O(sqrt(T log N))
Install
pip install vaara
Python 3.10+. Zero runtime deps. Optional XGBoost classifier: pip install vaara[ml].
Quick start
from vaara.pipeline import InterceptionPipeline
pipeline = InterceptionPipeline()
result = pipeline.intercept(
agent_id="agent-007",
tool_name="fs.write_file",
parameters={"path": "/etc/service.yaml", "content": "..."},
agent_confidence=0.8,
)
if result.allowed:
pipeline.report_outcome(result.action_id, outcome_severity=0.0)
else:
print(result.reason)
report_outcome closes the loop. MWU reweights signals based on which ones predicted the outcome.
HTTP API
The same scorer and audit trail are available over HTTP for non-Python agents and for control planes that prefer a network boundary. Install with the server extra:
pip install 'vaara[server]'
vaara serve --host 0.0.0.0 --port 8000
curl -sX POST http://localhost:8000/v1/score \
-H 'content-type: application/json' \
-d '{"tool_name":"tx.transfer","agent_id":"agent-007","base_risk_score":0.5}'
The contract is in docs/openapi.yaml. Vaara defines the interface; control-plane and orchestration vendors call it. Integration recipes for adopters live under examples/recipes/.
OVERT 1.0 attestation
Vaara is the first OSS Python reference implementation of the OVERT 1.0 (overt.is, Glacis Technologies, March 2026) Protocol Profile 1.0 Base Envelope at AAL-3 Phase 2 (Provisional Receipt). Closed-schema 9-field structure, canonical CBOR encoding, Ed25519 signatures, HMAC-SHA256 keyed commitments, IEEE-754 float rejection. External Independent Attestation Providers can promote AAL-3 emission to AAL-4 by attaching Phase 3 notary signatures and transparency-log inclusion proofs.
pip install 'vaara[attestation]'
from vaara.attestation.overt import emit_base_envelope, make_request_commitment, encoder_binary_identity
envelope = emit_base_envelope(
signing_key=key,
request_commitment=make_request_commitment(payload, operator_key=op_key),
encoder_binary_identity=encoder_binary_identity(arbiter_version="vaara/0.12.0", policy_hash=ph),
non_content_metadata={"action_class": "tx.transfer", "decision": "escalate"},
monotonic_counter=42,
arbiter_instance_identifier=uuid_bytes,
)
Vaara operates as the Arbiter in OVERT terms. See COMPLIANCE.md "Position relative to open runtime-attestation standards" for the architectural framing.
v0.12.0 adds an OVERT S3P (MEA-2) emitter with exact Clopper-Pearson confidence intervals (pure Python, no scipy), plus a proposed Protocol Profile extension that reports aggregate statistics over Vaara's per-action conformal prediction intervals alongside the standard binomial CI. The agentic-controls mapping in COMPLIANCE.md "OVERT 1.0 Part 3 (Agentic AI Controls) mapping" walks Vaara's coverage of TOOL-, MCP-, MULTI-, CAP-, DISC-, HITL-, and DRIFT-* control by control.
from vaara.attestation.s3p import emit_s3p_attestation, ConformalExtension, make_epoch_nonce_commitment
Where things live
- docs/formal_specification.md: math. MWU regret bound O(sqrt(T log N)), conformal coverage guarantees, security properties.
- COMPLIANCE.md: Article-level evidence mapping for EU AI Act (Articles 9, 11 to 15, 61) and DORA (Articles 10, 12, 13). Eval numbers, threshold sweeps, PAIR adversarial calibration.
- Article 14 runtime: why oversight of agentic AI has to be evidenced as action, not model: why this exists. Posted on the EU Apply AI Alliance Futurium.
src/vaara/integrations/: LangChain, OpenAI Agents SDK, CrewAI, MCP server.src/vaara/audit/: hash-chain trail, SQLite backend, append-only WAL.src/vaara/policy/: declarative YAML / JSON policy schema withvaara policy validate(semantic checks) andvaara policy test(Conftest-style cases-file runner) for reviewing the policy artifact in CI independently from agent code.src/vaara/sandbox/: synthetic-trace cold-start calibration.
Vaara helps deployers assemble evidence for their own conformity work. It does not certify compliance or constitute legal advice. Deployers own their obligations under the EU AI Act and other applicable law.
License
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 vaara-0.12.0.tar.gz.
File metadata
- Download URL: vaara-0.12.0.tar.gz
- Upload date:
- Size: 418.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2b5c29a940d1729058f6d67f10fb86d22638c302d1f230481efddc78e5f9fb41
|
|
| MD5 |
f4d70d19b755ec9b1fbef92179b99083
|
|
| BLAKE2b-256 |
0e8c5d93f7d9182af2cd6e38fe52bae2e0eb3f4ad1f4a662fb506c114cdbb4b1
|
Provenance
The following attestation bundles were made for vaara-0.12.0.tar.gz:
Publisher:
release.yml on vaaraio/vaara
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vaara-0.12.0.tar.gz -
Subject digest:
2b5c29a940d1729058f6d67f10fb86d22638c302d1f230481efddc78e5f9fb41 - Sigstore transparency entry: 1553973283
- Sigstore integration time:
-
Permalink:
vaaraio/vaara@6b635cfe722ef618df5425a75a483607ea7dad46 -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/vaaraio
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6b635cfe722ef618df5425a75a483607ea7dad46 -
Trigger Event:
push
-
Statement type:
File details
Details for the file vaara-0.12.0-py3-none-any.whl.
File metadata
- Download URL: vaara-0.12.0-py3-none-any.whl
- Upload date:
- Size: 379.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e252a963860ad70cfd55c095f9725e595dcff2ffa4804b3d5ce724abb2af0b99
|
|
| MD5 |
28031c120bae071845150901bbd4c7b5
|
|
| BLAKE2b-256 |
dddb49bcd08c10c944b5d8fbcf2dc8dc4239bf760ff859a004d0d24f317888c8
|
Provenance
The following attestation bundles were made for vaara-0.12.0-py3-none-any.whl:
Publisher:
release.yml on vaaraio/vaara
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vaara-0.12.0-py3-none-any.whl -
Subject digest:
e252a963860ad70cfd55c095f9725e595dcff2ffa4804b3d5ce724abb2af0b99 - Sigstore transparency entry: 1553973344
- Sigstore integration time:
-
Permalink:
vaaraio/vaara@6b635cfe722ef618df5425a75a483607ea7dad46 -
Branch / Tag:
refs/tags/v0.12.0 - Owner: https://github.com/vaaraio
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@6b635cfe722ef618df5425a75a483607ea7dad46 -
Trigger Event:
push
-
Statement type: