AI Safety & Governance

A model can hallucinate a parameter,
it cannot hallucinate it past the schema gate

Action Schema Validator sits between every agent proposal and every production tool. Each tool has a JSON Schema describing the exact shape of arguments it accepts. The validator runs the proposal against the schema. Wrong type, missing field, unexpected key, blocked before the tool runs. The agent gets a structured rejection it can use to retry, not a half-applied call to fix later.

Get Started Talk to Sales
app.novaaiops.com / action-schema
● LIVE
< 1ms
Validation overhead
JSON
Schema per tool
0
Bypasses possible
Logged
Every reject in ledger
How It Works

Schema first, tool second

Every tool exposed to the agents is registered with a JSON Schema describing its argument shape: types, required fields, enum values, numeric ranges. When an agent proposes a tool call, the validator parses the proposal and runs JSON Schema validation against the registered shape. Pass means the tool runs. Fail means the agent receives a structured error and decides whether to retry or escalate.

  • Schemas live next to tools: a tool ships with its schema in the same file, so adding a tool means adding its schema in the same review
  • Strict by default: extra unknown keys are a reject, not a warn, silent extra args have caused too many incidents to be permissive
  • Structured rejection: agents get a JSON error with the exact failing path, not a stack trace, so they can retry with corrected args
app.novaaiops.com / action-schema · flow
Why Strict

Permissive validation has a cost we have already paid

Loose validation seems convenient until production breaks because an agent passed a string where a number was expected and a tool silently coerced it. Strict validation is one more reason an agent has to retry, which costs tokens. Production not breaking is worth the tokens. Every reject in the ledger has saved a real-world ticket.

  • Type strictness: string vs number vs bool, never coerced, always rejected if mismatched
  • Range strictness: replicas: -1 is a reject, not a "treated as 0", negative values were a recurrent bug class
  • Extra-key strictness: unknown keys reject, agents that want to pass extra context use a registered metadata field
app.novaaiops.com / action-schema · why
Versioning

Tool schemas are versioned, never silently widened

When a tool wants to accept a new argument, the schema gets a new version. Agents are pinned to a schema version per tenant. Adding a field is a major bump (existing agents do not get it). Loosening a constraint is a major bump. The validator never silently accepts more than it did yesterday.

  • Per-tenant pin: tenants pin to a schema version; rolling forward is opt-in, not automatic
  • Major bumps for widening: adding a field, loosening a type, raising a range, all major version bumps
  • Auto-tested for compat: every schema change runs the historical agent ledger as a regression suite to confirm no past calls would now reject
app.novaaiops.com / action-schema · versions
How to Use the Page

Read it like a firewall log

The page shows live validation traffic and a per-tool reject rate. A tool with a 5% reject rate is a tuning signal: either the agent prompt is wrong about the schema, or the schema is wrong about the tool. Both are cheap to fix when you can see the data. Use the search to find rejects for one agent or one tool.

  • Live traffic feed: every validation pass and reject in the last hour, refreshed every 2s
  • Per-tool reject rate: sortable table; high reject rates point at schema/agent drift before incidents
  • Drill into a reject: click any reject row for the failing JSON path and the proposing agent's prompt
app.novaaiops.com / action-schema · live
Video walkthrough coming soon

Subscribe to Nova AI Ops on YouTube for demos, tutorials, and feature deep-dives.

The cheapest safety check on the platform

A model that calls a tool with the wrong arguments is not creative. It is broken. The validator catches it before any production system sees it.

Get Started Request a Demo