DEV Community

Mhad2021
Mhad2021

Posted on

We let an autonomous agent spend real money for a week. The first thing I added wasn't a feature — it was a spending firewall.

I kept giving agents real API keys and budgets, and the scary part was never a bad answer — it was a retry loop or a prompt injection quietly spending money while I wasn't watching.

So I wrote a small guard you wrap around any spend:

  • hard caps per action / day / lifetime (checked against a ledger, so a restart can't reset them)
  • an allowlist where empty means nobody
  • a kill switch that fails closed
  • a blast-radius cap for the "pointed it at the wrong wallet" case
  • an append-only ledger you can verify

It got prompt-injected in testing and spent $0.

One file, zero deps, MIT: https://github.com/Mhad2021/agent-spendguard

I also built a free Monte-Carlo "runway simulator" to answer how much capital a self-funding agent needs before it breaks even: https://claude.ai/code/artifact/ebeaa8b2-16eb-400a-8100-5e96c17fd922

How are you all handling runaway spend on autonomous agents? Curious what people do beyond a hard token cap.

Top comments (2)

Collapse
 
reidmarlow profile image
Reid Marlow

A ledger-backed cap is the part I would trust here. Prompt-level budgets are too easy to route around once the agent can see tool output or user-provided text. I’d probably split token/API spend from external payments too, since retry loops and real-money actions fail in different ways.

Collapse
 
alexshev profile image
Alex Shev

The spending firewall is the right first feature. Once an agent can touch money, the product boundary is no longer “can it complete the task?” but “can it fail without creating an expensive surprise?”