Skip to content
AI Agents & MCP

The guardrails an AI agent actually needs

Agents that take real actions need limits, not enthusiasm. The seven controls worth building, why each exists, and which ones you can skip.

4 min read
The guardrails an AI agent actually needs. An article by Athabasca Solutions.

There is a meaningful difference between an assistant that answers questions and an agent that takes actions. The first can be wrong and waste a minute. The second can be wrong and email four hundred customers.

Most of the writing about agents is about capability. This is about the other half, which is what stops a capable thing from doing something expensive.

Start from the blast radius

For every action an agent can take, answer one question: if this fires incorrectly a hundred times before anyone notices, what does that cost?

The answers sort actions into three groups, and each group gets different treatment.

  • Free to be wrong. Reading a record, drafting text nobody sends, running a report. Let the agent do these without ceremony.
  • Recoverable. Creating an internal ticket, updating a status, adding a note. Allow, log, make reversible.
  • Not recoverable. Anything that reaches a customer, moves money, deletes data, or changes access. A human confirms, every time, with no exception for convenience.

The mistake is treating all three the same, in either direction. Requiring approval for reads makes the agent useless. Not requiring it for refunds makes it dangerous.

The seven controls worth building

1. A confirmation step that shows the actual payload. Not “send email to customer?” but the recipient, the subject and the body. Approving a description of an action is not approving the action, and people click yes on vague prompts.

2. Idempotency. Agents retry. Networks fail mid-call and the agent tries again, which is correct behaviour and produces two invoices unless every action carries a key that makes the second attempt a no-op.

3. Rate limits on the agent itself. Not on users, on the agent. A loop that should have run once and ran two hundred times is the single most common expensive failure, and a hard ceiling per hour turns it into a small bill and an alert.

4. A hard stop. One switch that disables all actions and leaves reads working. Somebody who is not the developer needs to be able to flip it at 7pm.

5. Full logging, in business terms. What was asked, what was decided, what was called, what came back, who approved. Written so a manager can read it, not only a developer. This is what you use when a customer asks why they received something.

6. Separation of read and write credentials. The read path and the write path should not share an account. It costs nothing and it means a mistake in the read-only half cannot write anything.

7. Untrusted input handled as untrusted. If the agent reads a customer message, a web page or a document, that content can contain instructions. Treat anything the agent reads as data, never as direction, and never let content from a record widen what the agent is permitted to do. Narrow tools are the practical defence here, which is one reason MCP servers should expose little.

What you can skip

Not everything marketed as agent safety earns its place in a small deployment.

Elaborate permission matrices. Two or three roles cover most small businesses. A configurable policy engine is a system to maintain in exchange for flexibility nobody uses.

Model-based filtering of the model’s own output. Useful at scale, mostly theatre for a team of twelve. A human approving the three risky action types is cheaper and more reliable.

Real-time dashboards. A daily summary email of what the agent did is read. A dashboard is opened twice and then never again.

Full autonomy as a goal. An agent that drafts and a human who approves is not a failed agent. For most small business workflows it is the correct end state, because the approval takes four seconds and removes the entire category of expensive mistakes.

The failure that gets missed

The dramatic failures get attention. The quiet one is worse: an agent that works, is trusted, and slowly drifts as the underlying system changes around it. Field meanings shift, a status value gets reused, and the agent keeps acting confidently on an assumption that stopped being true.

The defence is sampling. Once a week, somebody reads ten of the agent’s actions end to end and confirms they were right. It takes fifteen minutes and it is the only control on this list that catches drift, because nothing about drift throws an error.

Building it in the right order

Read-only first, for a fortnight. Then one recoverable write, logged. Then one approval-gated action. Each step stays in place long enough to be boring before the next one is added.

Teams that go straight to autonomous action either get lucky or get a story they tell later. There is no third outcome worth planning for.

If you are scoping something that will take actions rather than just answer questions, describe what it would be allowed to do. The interesting part of that conversation is always the list of things it should not.

Related: AI agents that do real work, building an MCP server, and our AI agents and MCP work.

Further reading

Sections covered in The guardrails an AI agent actually needs: Start from the blast radius, The seven controls worth building, What you can skip, The failure that gets missed, Building it in the right order
The shape of the argument, in order.

Get new articles by email

One email when something new goes up, roughly twice a month. Plain writing on what software costs and what is worth building. No sequences, no sales calls, and one click to leave.

We use it for the newsletter and nothing else. Unsubscribe any time.

Have something you need built?

Tell us what the problem is. You will get an honest read on whether it is worth building, what it would take, and roughly what it would cost. No pitch deck, no pressure.

Replies within one business day. Mon to Fri, 9am to 5pm MT.

Call Start a project