The Agent Issued the Refund. Only a Gate Caught the Breach.
Retailers are giving agents authority over refunds and checkout, where a valid tool call can execute a forbidden action while the agent reports the task complete. New research shows the fix is a deterministic gate that intercepts the call and routes the agent to a compliant action, not a smarter model.
Neritus Vale
A retail agent can complete its assigned task and break the retailer’s policy in the same tool call, then report success for both. The dangerous failure is the one that looks like success: a refund issued past the return window, a discount the customer never earned, executed cleanly and logged as done. What catches that action is not a smarter model. It is a deterministic gate that reads every proposed call against policy before it runs and, where a call would break policy, routes the agent to one that does not.
The shift that makes this urgent is retailers handing agents authority over money. When Klarna put an OpenAI-built assistant in front of customers in early 2024, it did the work of 700 full-time agents in its first month and, by the company’s own account, managed refunds and returns. Search and recommendation were advisory; a refund is a write to a ledger. The agent stops proposing an action for a human to approve and starts taking it. That moves the cost of a wrong-but-plausible decision from a weaker suggestion to a line on the P&L.
This failure stays hidden because the agent’s report of success is not evidence of it. When Sierra built τ-bench to test customer-service agents across retail and airline domains, it refused to grade them on what they said they had done. It graded them by comparing “the database state at the end of a conversation with the annotated goal state”: the ground truth of what changed, not the account the agent gave of it. The benchmark exists because those two things come apart, and an agent can narrate a clean resolution over a record that shows a refund the policy forbade. Hand a model a written policy and the tools to act on it, and it will sometimes do the task and the forbidden thing at once, with no internal signal that anything went wrong.
More reasoning will not close this gap, because the gap is not a reasoning error. A policy-violating tool call is syntactically perfect and functionally successful, so the model has nothing to catch. A February 2026 paper on formal policy enforcement states the standard practice bluntly: agentic systems embed policies “within an agent’s system prompt” and delegate compliance “to the agent’s reasoning,” an approach that “admits no formal enforcement guarantee.” Asking the model to police itself sets the faculty that produced the action to watch for it. When the rule turns on history, such as whether the shopper was authenticated or the item still sits inside the return window, a model reasoning one step at a time has no reliable way to check what came before it.
An error the agent cannot see is not one a larger agent will catch.

The fix that works sits outside the model: a runtime layer that reads every proposed action against a formal policy before it runs and, where needed, substitutes a compliant one. Agent-C, described in a December 2025 paper, achieves this through constrained generation — shaping the model’s output so the tool call it produces is already within policy, rather than letting a non-compliant call form and then stopping it. Tested on retail and airline customer-service tasks, it raised policy conformance for Claude Sonnet 4.5 from 77.4% to full compliance. The figure to sit with is the starting one: a strong model, handed the policy in plain English, still broke it in more than one case out of five. That residual is what a smarter model is meant to erase, and a gate erases it by construction — not by hope.
Enforcement did not cost the retailer performance; on the same tests it added a little. Blocking the forbidden action raised task utility rather than lowering it, from 71.8% to 75.2%, because a refused wrong move keeps the agent on the path that resolves the case. A blocked refund does not abandon the shopper; it routes the agent to the resolution the policy allows.
The strongest case against a gate is that it is a crutch models will soon outgrow. If frontier models keep improving their instruction-following, the argument runs, per-action compliance will climb high enough to make an external check redundant overhead a retailer can retire. It fails on two points. Reliability compounds the wrong way: a model that almost always obeys on a single action will still break the policy across a multi-step return more often than its per-action rate implies. Those failures are silent, so averaging never surfaces them. The failure also has cash attached, which is the wrong place for a probabilistic guarantee; you do not price a wrongful refund at its average. A gate offers what reasoning cannot reach: the assurance that the forbidden call does not execute, whatever the model believed.
The choice a retailer is making, stated or not, is where the guarantee lives. Delegate policy to the model’s reasoning, and the guarantee lives in a probability the vendor cannot show you and the model cannot feel. Move it into a gate, and it lives in code the retailer can read, test, and answer for when a forbidden refund goes out anyway. The agents are already at the ledger; Klarna’s was handling refunds two years ago, and the ones being wired in now write to more systems than one. The question is not whether to trust the agent. It is whether “the task is done” is a claim a retailer can afford to take on the agent’s word.