Skip to content
/docs

How Veto Compares

Where Veto fits next to general agent-governance toolkits, and why portable verifiable receipts and an agent-first runtime set it apart.

Agent governance is a crowded category, and most entrants are libraries you assemble — policy engines, identity modules, and audit helpers you wire into your own stack. Veto is a different shape: a runtime authorization service plus a portable, verifiable decision protocol, designed so both developers and agents can adopt it in minutes and so anyone can verify what was authorized later.

This page is an honest map of the differences. It uses Microsoft's open-source Agent Governance Toolkit (AGT) as the reference point because it is the broadest toolkit in the space.

The category difference

AGT is a multi-package toolkit (policy engine, zero-trust identity, execution sandboxing, SRE) shipped across Python, TypeScript, Rust, Go, and .NET, oriented toward Azure deployment and breadth of coverage. That breadth is real and useful if you want one umbrella for identity, sandboxing, and reliability engineering.

Veto optimizes for a narrower, sharper job: decide every tool call, and produce proof you can hand to anyone. Two design choices follow from that focus.

1. Portable, offline-verifiable receipts — not just an audit trail

Every Veto decision can emit a canonical veto.receipt/1 payload: RFC 8785-canonicalized, SHA-256 hashed, and hash-linked to the previous receipt with protocol root-continuity checks. The schema and verifier ship as an open package (veto-receipt-protocol), so a regulator, a customer, or another agent can verify a chain with zero Veto API calls and no Veto account.

"Tamper-evident audit logging" inside a toolkit proves integrity to that toolkit. A versioned, vendor-neutral receipt protocol proves it to anyone, anywhere, forever — in your CI, your SIEM, or an auditor's laptop. That portability is the headline difference.

2. Agent-first by construction

Veto is built to be operated by the agents it governs, not only by humans configuring a control plane:

  • Machine-readable docs. Every page is available as Markdown, plus a curated /llms.txt and full-corpus /llms-full.txt per the llms.txt convention.
  • MCP-native. A guarded MCP gateway sits inline in front of any MCP upstream and returns receipts on the decision stream.
  • Create-only safety contract. The agent-facing workflow is non-destructive by default — agents add superseding policy files, never mutate or delete existing ones.
  • Deterministic, local, no account. The core decision runs locally with no API key or network, so an agent can self-guard before any cloud exists.

Side by side

DimensionVetoGeneral governance toolkits (e.g. AGT)
ShapeManaged runtime + open protocol + SDKMulti-package library you assemble
Decision provenancePortable veto.receipt/1, verifiable offline with an open packageInternal tamper-evident audit logs
Time to first guarded callnpm create veto-app / one-line protect()Install and wire several packages
Agent operabilityllms.txt, copy-as-markdown, MCP-native, create-only contractHuman-configured control plane
Local-first decisionDeterministic eval, no account or networkTypically service/SDK setup
Human-in-the-loopApprovals bound to exact action + policy hash, with chained approval receiptsVaries by module
Policy authoringDeterministic-first, optional LLM drafting via CharterPolicy-as-code (e.g. OPA/Rego, Cedar)
ScopeAuthorization + verifiable provenance, done deeplyBroad: identity, sandboxing, SRE, OWASP coverage

Choose deliberately

  • Reach for a broad toolkit when you want a single umbrella spanning identity, execution sandboxing, and reliability engineering, and you are comfortable assembling and operating those packages yourself.
  • Reach for Veto when the job is to authorize agent actions in the hot path and walk away with portable proof — receipts an outside party can verify without trusting you, an MCP-native gateway, and an integration an agent can complete on its own.

The two are not mutually exclusive: Veto wraps existing authorization, policy, and governance tools into veto.receipt/1 receipts without becoming your IAM system. If you already run a governance toolkit, Veto adds the portable, verifiable decision layer it doesn't give you.

Next steps

Go toFor
Decision ReceiptsThe verifiable provenance model
Quick StartOne guarded action in minutes
MCP Gateway APIInline guarding for any MCP upstream