Open evidence format and Cloudflare-native audit toolkit for enterprise AI agents.
Trustavo — Trust, voiced with authority. The production deployment at trustavo.com is the reference implementation of OpenAgentAudit. In audit, evidence only counts when it is trusted; Trustavo exists to make that trust legible.
Status: Beta — APIs may change in minor versions. Production use requires pinning exact versions.
Agent logs are not audit evidence. OpenAgentAudit turns tool calls, policy decisions, human approvals, benchmark results, training manifests, and runtime traces into defensible technical evidence reports.
trustavo.com — production deployment on Cloudflare Workers.
npm install @openagentaudit/schema @openagentaudit/core @openagentaudit/adaptersimport { validate, computeRiskScore, renderReport } from '@openagentaudit/core';
import { validateEvents } from '@openagentaudit/schema';
import { aepV0_2, otel, langfuse, langsmith } from '@openagentaudit/adapters';
// Parse and validate canonical events
const { valid: events } = validateEvents(raw);
const { errors, crypto_summary } = await validate(events);
// Run the full audit pipeline
const score = await computeRiskScore(events, runId);
const bundle = await renderReport(events, findings, score);
// bundle.html, bundle.markdown, bundle.json, bundle.csv@openagentaudit/passport issues signed audit certificates for AI agents.
A Trust Passport summarises evidence quality, open risks, framework coverage,
and a validity window — giving procurement teams and auditors a single
machine-verifiable trust signal.
import { issue, renew, revoke, status } from '@openagentaudit/passport';
const passport = issue({ report, agentId: 'my-agent', validityDays: 90 });
console.log(status(passport)); // 'valid'
const renewed = renew({ passport, report: newReport });
const revoked = revoke({ passport, reason: 'critical-finding' });| Method | Path | Action |
|---|---|---|
| POST | /passport/issue | Issue a new passport |
| GET | /passport/:id | Fetch a passport by ID |
| POST | /passport/:id/revoke | Revoke a passport |
| GET | /passport/:id/status | Returns valid / expired / revoked |
Passports currently carry attestation.signing_method: "none" — content is
hash-linked but not cryptographically signed. Sigstore / in-toto signing is
planned as a follow-up.
- Validate agent evidence records against a canonical schema.
- Reconstruct tool and permission inventory from runtime traces.
- Detect policy boundary violations and excessive agency.
- Audit benchmark claims with paired statistics (McNemar, Wilson CI).
- Check contamination risk with CPU-first chunked algorithms.
- Monitor behavioral drift over time.
- Render training-run audit reports from
trace-pipelineevidence bundles. - Map evidence to OWASP Agentic Top 10, NIST AI RMF, ISO/IEC 42001, and EU AI Act Annex IV technical documentation needs.
- Run as a TypeScript/Bun CLI or as a Cloudflare-native service.
- It does not provide legal advice.
- It does not certify regulatory compliance.
- It does not require GPU.
- It does not require Python, scipy, or a traditional backend server.
- It does not train models or run benchmarks directly.
- It does not replace observability tools — it consumes their traces and produces audit evidence.
wasmagent-js (runtime, SDK, AEP emitter)
│
├─── bscode (real coding-agent workload) ──┐
└─── erp-agent (ERP workload, planned) ──┤
│ AEP JSONL
│ (signed runtime evidence)
▼
┌────────────────────────────────────────────────────┐
▼ ▼
trace-pipeline open-agent-audit
Measurement Trust (this repo)
Evidence Admission Gate ─────────────────
Training Audit Backend audit reports
│ regulatory maps
│ AgentTrustScore benchmark claims
│ + training evidence ──────────────────────────► evidence bundles
│
├── SFT / DPO datasets (gated — regression gate required)
└── ADAPTER_CARD.md (promote / hold / reject)
External Observability (OTel, Langfuse, LangSmith) ─── via adapters ──► open-agent-audit
OpenAgentAudit is the reporting and evidence layer of the WasmAgent
ecosystem. trace-pipeline decides whether a benchmark claim is statistically
credible and whether a training run is auditable; OpenAgentAudit turns that
evidence into enterprise-readable reports. Both consume AEP records; they serve
different downstream customers.
OpenAgentAudit's reference deployment is Cloudflare-only:
- Cloudflare Workers — API and audit engine
- Cloudflare Pages — Dashboard
- Cloudflare R2 — traces, artifacts, reports
- Cloudflare D1 — run / finding / evidence metadata
- Cloudflare Queues — chunked async jobs
- Cloudflare Durable Objects — per-run coordination
- Cloudflare Workflows — durable multi-step orchestration
- Cloudflare Browser Run — HTML → PDF
- Cloudflare Containers — optional heavy enterprise jobs
No external VPS, Cloud Run, or Kubernetes is required.
Phase 2 — Active implementation. The specification, schemas, and
regulatory profiles are complete. TypeScript implementation packages are
being built against the current open-agent-audit/v0.1 schema.
| Component | Status |
|---|---|
spec/versions/v0.1/SPEC.md |
draft |
schemas/v0.1/*.schema.json |
draft |
profiles/*.yaml |
draft |
packages/schema |
implemented — Zod runtime validation |
packages/core |
implemented — all engines operational |
packages/adapters |
implemented — AEP v0.2, bscode, OTel GenAI, Langfuse, LangSmith; 444 tests |
packages/cli |
implemented — 7 commands including from-aep, from-bscode |
packages/passport |
implemented — Trust Passport issuance, lifecycle, REST API |
packages/worker |
implemented — REST API, deployed at trustavo.com |
packages/dashboard |
implemented — React SPA deployed at trustavo.com |
| npm packages | published — @openagentaudit/schema, @openagentaudit/core, @openagentaudit/adapters |
CONSTRAINTS.md— project rules; every contributor must read this.spec/SPEC.md— canonical evidence specification.docs/architecture.md— system architecture.docs/cloudflare-native.md— deployment model.docs/relationship-to-wasmagent.md— how this fits withwasmagent-js,bscode,trace-pipeline.docs/schema-versioning.md— versioning policy.docs/regulatory-disclaimer.md— what we do and do not claim.docs/compliance-coverage-report.md— per-framework coverage depth and breadth (OWASP / EU AI Act / NIST AI RMF / ISO 42001), upgrade paths, and ceiling analysis.docs/competitive-landscape.md— market analysis: how OpenAgentAudit compares to ATR, VerifyWise, Credo AI, and other tools in the AI agent audit space.docs/agent-risk-score.md— Agent Risk Score (ARS) methodology, penalty table, and interpretation guide.
If your agent runtime is not JavaScript/TypeScript, you can still use the full audit engine via a stdin/stdout bridge pattern:
-
Node.js bridge —
examples/bridges/node-stdin-jsonl/bridge.mjs: reads AEP records from stdin (single JSON or JSONL), runs the full pipeline, outputs analysis JSON to stdout. Exit codes: 0 success / 2 bad input / 3 adapter error / 4 engine error. -
Python wrapper —
examples/bridges/python/oaa_bridge.py: subprocess-invokes the Node bridge. Use this when your agent is Python-native.
# From any language, pipe AEP JSONL to the bridge:
cat records.jsonl | node examples/bridges/node-stdin-jsonl/bridge.mjs --manifest '{"declared_capabilities":["fs.read"]}'
# Python wrapper:
cat records.jsonl | python examples/bridges/python/oaa_bridge.py --manifest '{"declared_capabilities":["fs.read"]}'OpenAgentAudit produces technical evidence that may support selected
regulatory documentation requirements. It does not constitute legal advice,
regulatory certification, or a determination of compliance. Regulatory
interpretations evolve; users are responsible for their own compliance
posture. See docs/regulatory-disclaimer.md.
OpenAgentAudit is part of the WasmAgent ecosystem.
Runtime dependencies: Zod (MIT), React (MIT), Tailwind CSS (MIT).
See NOTICE for full third-party attributions.
Apache License 2.0 — see LICENSE.
