Would You Let an AI Agent Move Your Money? A developer building an LLM-powered support agent with deterministic boundaries has implemented a risk-tiered gating system that prevents AI agents from executing consequential actions without human approval. The system assigns every action a risk tier in code, with unknown actions refused by default and very-high-risk actions queued as propose-only, ensuring that model confidence is never an authorization mechanism. What human-in-the-loop costs once it stops being a stub Part 4 of an ongoing experiment: building an LLM-powered support agent with deterministic boundaries. The companion repo grows with the series. The rules say the customer is owed a €512.64 refund. The agent agrees. The API is one method call away. Who presses go? That one line of code is where "AI-assisted" becomes "AI has authority." An agent can be perfectly capable of deciding that a refund is justified without being allowed to issue the refund. Deciding and doing are different permissions. That's the boundary I wanted to make impossible to blur. I considered two designs: Option A: let the agent execute whatever tool it decides to call, constrained by prompts and instructions. Option B: assign every action a risk tier in code, then make consequential actions wait for a human regardless of how confident the model is. I chose B. Not because I think the model is always wrong. Because I don't want model confidence to be an authorization mechanism. The policy is deterministic: That last distinction matters. "Please don't do this" is a prompt instruction. "There is no code path that can do this" is an architectural property. php flowchart LR P "Agent proposes action" -- G{"RiskPolicy.tierFor "} G -- "LOW" -- E "Proceeds autonomously