Which calls should an AI agent never make alone?
By Soumen Sarkar · October 2026
Short answer: An agent should state its assumption and keep going on anything reversible, but irreversible or high-stakes actions, such as deleting data, moving money, changing access or breaking a public interface, deserve a person's look before they take effect. The aim is to make the cost of being wrong visible, not to stop the work.
Why isn't every call the same?
Most unknowns are cheap to get wrong. If an agent assumes a button label or a default page size and it's wrong, someone corrects it and the fix takes minutes. That's why the rule is to state the assumption and keep going: stopping to ask costs more than the occasional correction.
Some calls are different, because being wrong can't be undone with another commit. Deleted records don't come back. A payment sent twice has to be chased. A permission granted to the wrong people has already been used. A public API that changed shape has already broken someone's integration. For these, the honest answer is that a person should look before the action takes effect.
Which calls count as high stakes?
A short list covers most of them:
- Deleting or overwriting data, including migrations that drop columns or rewrite records.
- Moving money: charges, refunds, payouts, prices, anything that reaches a payment provider.
- Changing access: who can see, edit or administer what; sign-in and permission rules.
- Breaking a public interface: an API, a webhook payload, a file format or anything else other people's code depends on.
- Anything that leaves the building: emails to customers, messages to third parties, published content.
The common thread isn't difficulty. It's whether a wrong call can be quietly fixed forward or causes damage first.
Does that mean the agent stops and asks?
No. The agent still turns the unknown into a call: it states its assumption, marks it as high stakes, and keeps doing the reversible work around it. What waits is the irreversible step itself, such as running the migration on real data or switching the new endpoint on, not the session.
Say an agent cleaning up Accounts · lib/accounts finds accounts with no sign-in for two years. It writes: "Assuming inactive accounts should be deleted after two years, including their files. High stakes: deletes data." Then it writes the cleanup job, the tests and a dry run that lists what would be removed, and leaves the job switched off. A person reads the assumption, replies "Archive them, don't delete; files stay for a year", and the correction reaches the agent at its next turn. Nothing was lost, and almost nothing was redone.
How do you make the cost of being wrong visible?
Ask agents to say the stakes out loud. In your agent instructions, add a line like: "When an assumption touches data, money, access, public interfaces or deleting things, mark it high stakes, keep the irreversible step behind a flag or dry run, and say what would happen if you're wrong." The assumption line template has room for that.
Campfyrr helps here directly. When an agent calls state_assumption, assumptions about data, money, access, public interfaces or deleting things are marked High stakes and shown first to whoever is best placed to settle them. The agent keeps going either way; the difference is that the riskiest calls are the first thing a person sees. Campfyrr doesn't approve or block anything, so the irreversible step stays in your own deploys and flags.
Words used here
- High-stakes assumption: A high-stakes assumption is an assumption that touches data, money, access, public interfaces or deleting things, so being wrong costs more and it should be checked first.
- Assumption: An assumption is the best available answer to an unknown, stated and acted on, kept visible so anyone can correct it.
- Correction: A correction is the fix to a wrong assumption or call, made by someone who knows better and sent back to the work that relied on it, without stopping anyone.
The principle behind this: Turn unknowns into calls: Nothing we don't know gets to stop us. We name our assumption, and we move.
Move as one at agent speed. Nobody waits. Add Campfyrr to Claude: it briefs every agent before it touches the code, keeps assumptions and handoffs where the team can see them, and never takes your code (what it keeps).