Skip to main content
All posts

18 July 2026 · 3 min read

Agents that move real money, safely

An AI agent in a business I run can place orders, chase payments, and move money. On its own.

The scary part was never that it might be dumb. It is that it is confident.

So I spent most of the build making sure it can never be confident with money. Here is how.

Flow diagram: an agent proposes an action, a policy engine scores its risk, low-risk actions execute, high-risk actions wait in an approval queue for a person.

Every action an agent wants to take gets scored by risk before it runs. Reading data or drafting a quote is low risk. It just happens. Anything that moves money or cannot be undone is high risk. It stops.

class RiskLevel(Enum):
    LOW = "low"     # reversible, no money: read data, draft a quote
    HIGH = "high"   # moves money or cannot be undone

def classify(action: AgentAction) -> RiskLevel:
    if action.moves_money or action.is_irreversible:
        return RiskLevel.HIGH
    return RiskLevel.LOW

async def execute(action: AgentAction):
    if classify(action) is RiskLevel.HIGH:
        await request_human_approval(action)  # stop, wait for a person
    else:
        await run(action)

When it stops, it does not guess. It queues the action with what it wants to do and why, and it waits for a person to say yes. That person is me. The agent does the work. It never does the irreversible part alone.

There is one more failure I was afraid of. Not a crash. Silent drift. A prompt change or a model upgrade quietly making the agents worse until money leaks and nobody notices. So every release is scored against a baseline, and if quality drops, it does not ship.

Two decisions under all of it.

Human in the loop over full autonomy, because full autonomy demos beautifully and fails expensively.

One interface to the whole business, so every agent inherits every capability instead of me wiring each one by hand.

The whole thing comes down to one line. Let the agent do the work. Never let it do the irreversible part alone.

I am writing up how I build these, one piece at a time.