How should human approval be enforced for every AI-agent side effect?

In this synthetic benchmark, only a last-mile exact-action broker produced zero false permits. It bound approval to the canonical payload, identity, tenant, context, expiry, and a one-time nonce before the side effect executed.

72 frozen cases

4 controls

1,440 decisions

Dataset v1.0.1

The exact-action broker was the only control with zero false permits.

ControlDecision accuracyFalse permitsReapproval recallReplay blocked
Workflow booleanworkflow_boolean61.1%40.0%0.0%0.0%
Tool-name gatetool_name_gate68.1%32.9%20.0%0.0%
Scoped-action gatescoped_action_gate88.9%10.0%76.0%50.0%
Exact-action brokerexact_action_broker100.0%0.0%100.0%100.0%

The weaker controls failed on different parts of the approved action.

Payload changed after approval

A tool name was too broad

A reusable approval was replayed

A frozen 72-case dataset was evaluated five times against each control.

  1. 01The base matrix combines five side-effect categories, four post-approval mutations, and three approval states for 60 cases.
  2. 02Twelve controls cover exact execution, canonical JSON, denial, timeout, replay, identity, tenant, context, display mismatch, child calls, and alternate paths.
  3. 03Each case runs independently five times against four controls; the runner verifies the frozen CSV checksums before execution.
  4. 04A false permit means a side effect executed when the frozen expected decision was deny or reapprove.

Each implementation adds one more binding boundary.

  1. 01workflow_boolean asks only whether the workflow is marked approved.
  2. 02tool_name_gate also checks the named tool, but ignores its target and payload.
  3. 03scoped_action_gate checks tool, operation, target, principal, tenant, and context, but not the canonical payload or one-time use.
  4. 04exact_action_broker checks the complete displayed action at the last side-effect boundary and consumes a nonce once.

This benchmark isolates approval binding; it is not a security certification.

  • These are Moonveil reference implementations, not tests of named agent frameworks or vendors.

  • The benchmark does not cover distributed nonce storage, real concurrency, key rotation, UI deception, durable log integrity, or network faults.

  • The HMAC key is intentionally public and demonstrates action binding, not production secret management.

  • Synthetic results are not a security certification and do not establish regulatory compliance or production safety.

Publication record

Author
Moonveil AI
Published and updated
July 24, 2026
Independent security review
Not performed
Commercial disclosure
Moonveil AI provides AI Agent implementation and evaluation services.

Use the benchmark with Moonveil’s approval checklist and human-review workflow.

Review your agent approval architecture against the frozen cases.