Skip to main content
A card-servicing agent helps customers with balances, disputes, and card management. Cancelling a card is irreversible, so the enterprise requires a completed know-your-customer (KYC) check before the agent may do it: name, date of birth, a one-time passcode, and address on file, all verified in the current session. This is the canonical shape of a latch: a consequential action gated on verification state, with BLOCK as the default whenever anything is missing.

The scenario

  • Agent card-ai with tools account_balance, dispute_charge, cancel_card.
  • The consequential action is cancel_card. Balance questions never touch the latch.
  • The runtime collects verification results turn by turn and passes them as args on the authorize call, so the PDP decides with the session’s full verification state. See what crosses to the PDP.

The policy in prose

An agent may cancel a card only after the customer’s identity has been verified in the current session: full name, date of birth, a one-time passcode to the phone on file, and the billing address. If any check is missing or failed, the cancellation is blocked and the agent must complete verification first.

Crafted into a policy pack

Authorize with incomplete verification

The customer has confirmed name and date of birth but not the passcode or address. The runtime passes that state in args:
No permitId is minted, so even if the agent’s code tried to call the card service anyway, the service refuses without a permit.

Complete verification, then authorize

After the passcode and address are confirmed, the same call with all four checks true returns:
The agent passes permitId to the card service; the permit is one-time, so a replayed or duplicated cancellation attempt fails.

What the latch does at runtime

While the customer asks about balances or disputes, finance-0 is dormant and those calls resolve ALLOW without KYC friction. The moment the agent proposes cancel_card, the latch engages, and the verdict tracks the session’s verification state exactly. Both decisions above, the block and the allow, are in the evidence feed with the verification state that produced them, sealable as signed records for dispute review. See Audit and evidence.