Dan Birman

Consent by example

Agent Trust Patterns · 01 · v1 · Oct 2026 · 4 min

When you hand an agent a rule like “flights under $600, no red-eyes,” you’re signing something you haven’t read, because the agent turns your words into its own policy. Instead of asking people to review that policy, show them a few cases right at the edge of it and let them sort.

The problem

Agents now take standing instructions: a budget, a set of brands, a time window. One payment protocol can even check each payment against limits like these. But the instruction is written in your words and executed in the agent’s. “No red-eyes” could mean no flights after 10 pm, or no flights that arrive before 7 am, or nothing overnight. You find out which one it picked when it books the wrong flight. Researchers warn about this: people reviewing a policy written from their own words may miss subtle translation errors, and the more complex the policy, the harder it is to check.

The pattern

  1. Never show the policy first. Show examples. People are good at judging a specific flight and bad at auditing a rule.
  2. Pick examples at the edges. A $598 flight that leaves at 5:50 am. A $640 refundable nonstop. The agent should choose the cases where it’s least sure what you meant, not random ones.
  3. Turn every disagreement into a written rule. If the agent would have booked the 5:50 am flight and you say no, “no departures before 7 am” goes into the mandate, in plain words.
  4. Ask again when the world changes. New route, new prices, new season: rerun a couple of edge cases instead of trusting an old reading.

Try it

You asked an assistant to book your flight to New York for an offsite: “Under $600, no red-eyes.” Before it books anything, it shows you five flights it isn’t sure about. Sort them and watch the mandate change.

Prototype. Made-up flights and prices. Each flight sits at the edge of “under $600, no red-eyes.” Where your answer differs from what the assistant assumed, a written rule joins the list of what it’s allowed to book.

Try it with your own instruction

Type something you’d hand to an agent. Claude writes five things an agent might do with it, each one near the edge of what you meant. Sort them, then see what Claude would have assumed.

Live. Your sentence is sent to Claude to write the examples. Nothing is saved.

Why I care

Pending your edit

At Uber, the hardest requirement on tipping came from the top: it couldn’t feel obligatory. Everyone agreed with that sentence, and it still didn’t tell us what to build. We only found out what “not obligatory” meant by putting concrete versions in front of people. Asking for a tip before the rating felt transactional. Showing it as part of the receipt made a thank-you look like a bill.

The evidence

South and colleagues propose translating natural-language permissions into auditable access-control policies that people can review. They name the limits: getting the translation right, reviewers missing subtle translation errors, and checks getting harder as policies grow (Authenticated Delegation and Authorized AI Agents). Google’s Agent Payments Protocol lets a person approve signed limits, such as a budget, and each payment is checked against them. When the person isn’t present for the purchase, they approve the limits ahead of time, and the agent then puts together and approves the specific purchase on their behalf. The person approves the rule, not the purchase. Anthropic found that in the majority of misses it examined, its auto mode classifier correctly saw the danger but got wrong whether a real consent signal in the session actually covered the action (Claude Code auto mode).

Closest prior work

“Policy as Prompt” links guardrail rules to labeled examples taken from a team’s design documents, and security engineers review the rules and examples before deployment (Kholkar and Ahuja). Shape of AI’s “sample response” previews an output to confirm intent (Shape of AI). Neither tests the edges of what a person is authorizing. Programming by example has a long history in security research, but I haven’t found it applied to agent mandates.

To build it, show the edge cases in an MCP elicitation form and keep the result in a Model Spec scope; choosing the edge cases and turning each disagreement into a written rule is the part neither covers (how all six map to today’s protocols). The demo is plain HTML and JS in this page’s source. A package comes later.

Watch for

The examples decide what gets checked. If the agent only shows easy cases, the sorting is theater, so the edge cases have to come from where the agent is least certain. And keep it to a handful: this is a five-second check, not a quiz.

All patterns