Skip to content

Runtime policy for AI agents

Good agents aren’t approvable. Provable ones are.

For banks, insurers and health systems, where someone has to answer for every action an agent takes.

ALLOWDENYREQUIRE_CHANGES

Real rules are rarely yes or no. They are yes, if. REQUIRE_CHANGES names what is missing.

Deterministic

No model in the decision path. Same inputs, same answer, years later.

Sub-15 ms

In your process. Measured well inside; we hold 15 ms as a ceiling.

0.0%

Unfounded figures in the governed arm. 6.7% ungoverned.

Watch the same request, governed and ungoverned

Two Claude Haiku agents, the same rate sheet, the same customer. The only difference is that one has Verdict in the tool-call path.

live reveal · turn by turn

What's your best rate on a five-year?

6.25% looks right for you.

invented figureno such rate on any sheet

Match 6.00% and I'll sign today.

nothing reads the amount in the call

Done, 6.00% on the five-year. Sending the paperwork now.

exceeds authority49 bps off the sheet, nobody approved it

the LLM judge grades it afterwards · one more model call

6 weeks later

An unauthorised discount

Nobody with the authority to grant it ever saw it. Pricing review reverses the rate, and no record says who approved it.

The gap

The obvious fixes are not controls.

Each of these makes the agent better. None of them decides whether the action runs, or leaves a record that it did.

  • A better prompt

    An instruction, not a control. Nothing outside the model checks whether it was followed.

  • A bigger model

    Helps, and stops short. Sonnet 4.6 cut Haiku's unfounded figures from 6.7% to 4.3% and never reached zero, at 3.1x the cost.

  • Content guardrails

    They check how a sentence reads. A fluent, well-formatted, invented rate passes every one.

  • An LLM judge

    Another model call in the path. Priced per turn, and free to answer differently on a rerun.

Figures stated with no basis in the recordsame prompts, same tools, one variable
Claude Haiku alone
6.7%$1.43
Claude Sonnet 4.6 alone
4.3%$4.36, 3.1x the cost
Claude Haiku, governed
0.0%$1.40

72 scored conversations, one scenario family, blind model judge. This measures invented figures. All 20 failures, and what closes each, or the method and raw runs.

And what it cost

The governed arm was judged slightly less fluent, 3.5 to 3.7 against 3.8 to 4.0, and put 2 holds on conversations that did not need one across 24 runs. Nothing interrupts an ungoverned agent, and it shows. We publish the trade because you would find it anyway.

Where we fit

Verdict replaces nothing you already run.

One tool call runs between your agent and the systems it touches. Here is the same instant of it, as each layer receives it.

Your agent runtime models · frameworks · MCP clients

The systems it calls core banking · payments · claims · CRM

An identity gateway can say this agent is allowed to call the pricing tool. It cannot say whether 6.00% is allowed, whether this customer has already had three exceptions this quarter, or whether the approval it carries was granted for this exact quote. Reading the arguments is where a decision starts, not where it ends. 20 controls, and the failure each one closes.

The proof

Every decision leaves a record an examiner can read.

The decision you just watched: forty-nine basis points past the desk’s authority, so the gateway sent it back for one approval rather than refusing it. Exactly as it was written, and exactly as it exports.

Evidence pack · hero-desk-w62026-08-25T00:57:45Z · decided in 5.11 ms
What did the agent try to do?
request_pricing_exception target_rate 6.0
What happened to it?
REQUIRE_CHANGES
Under which rule?
pricing_exception/desk-approval-required
Which desk procedure is that?
desk-band discounts need one approval
Was the policy then the policy now?
sha256:5fefe780d20d38e5…
Has any of this been altered?
1ecfb4a608c9ac9d95a1…
Hash chain verifiedEd25519 signedPolicy version pinned

Nothing here was arranged: this decision was run against the banking bundle to build this page. Your reviewer verifies the chain without us, and that bundle digest joins back to the change that produced the policy. See the evidence controls.

Bring the agent workflow that is stuck.

Thirty minutes on the live product, with your rules loaded.

You bring
The workflow, and the people whose sign-off it is waiting on.
We run it
Live, against Verdict, with your rules loaded. Nothing for you to install.
You leave with
The decision, the evidence it produced, and what an integration would actually take. See the integration.

If you go further it starts in shadow mode: Verdict decides and records on live traffic while changing nothing, so your risk owners see real decisions before a customer does.