Skip to content
← Blog

AIHafsteinn Runarsson · AI Konsulent21 May 2026 · 8 min

Building agents that survive contact with users

Illustration for the article.

Every agent demo looks the same: a tidy prompt, a happy path, a room that applauds. Then a real user asks the thing nobody tested for, and the agent improvises — confidently, fluently, and wrong.

The difference between a demo and a production agent is not the model. It is everything around the model: the evals that catch regressions before users do, the guardrails that keep the agent inside its mandate, and the escalation path for the cases it should never have handled alone.

We start every agent build with the failure modes. What is the worst message this system could send? What does it do when the data it needs is missing, stale, or contradictory? Writing the rubric before the prompt sounds backwards, but if you cannot describe what a wrong answer looks like, you are not ready to automate the right ones.

Tools deserve the same rigour. An agent is only as safe as the actions it can take, so every tool gets a narrow contract, explicit preconditions, and logging that lets you replay exactly what happened and why. When something goes sideways — and something always goes sideways — you want a transcript, not a mystery.

Then there is the boring, decisive work: an eval set built from real cases, scored on every change, with a number that has to go up before anything ships. It is unglamorous. It is also why the agent still works in month six, after the prompt has been edited forty times by three different people.

Agents that survive contact with users are engineered, not prompted. The prompt is the easy part.

Have a system that needs to ship?

Get a quote