Most teams building an AI agent spend their effort on the model: which LLM, which prompts, which tools, how to squeeze out a better benchmark. Then the product ships and users hesitate. They undo its work, double-check everything, or quietly stop using it. The thing that decided the outcome was not model quality. It was trust — and trust is a design problem.
An AI agent asks the user to hand over control. The hard question is not 'can the model do this?' but 'how much will the user let it do, and does the interface make that safe?' Across agents we have designed and built — from an autonomous trading bot to a voice assistant to a personal bot with long-term memory — the same handful of patterns decide whether people trust the agent or fight it. This article is the field guide.
Trust is the product, not the model
A capable model wrapped in a confusing, all-or-nothing interface feels dangerous, so users keep it on a short leash and never get value from it. An average model wrapped in an interface that shows its work, asks at the right moments, and lets you undo feels safe — and safe products get used. The patterns below are how you build that feeling deliberately, each illustrated with something we actually shipped.
Pattern 1 — Boundaries and tiered confirmation
The first decision in any agent is where the line sits between what it may do on its own and what it must ask about. The cleanest model is three tiers: always-do (low-stakes, reversible actions the agent handles silently), ask-first (actions with financial, social, or data weight that pause for approval), and never-do (hard stops the agent is architecturally prevented from crossing). Crucially, 'ask first' has to be enforced by the system, not just requested in a prompt — an instruction the agent can ignore is not a boundary.
We built an autonomous algorithmic trading bot (client under NDA) where this was the whole game. Routine analysis and paper trades ran freely. But moving a strategy onto a real balance — an irreversible action with money on the line — sat behind explicit confirmation, and some actions were simply never permitted. The design job was deciding which tier every action belonged to, and making the irreversible ones impossible to trigger by accident.
Pattern 2 — Earned autonomy
Autonomy should not be a single switch flipped at launch. Users grant freedom to systems they have watched succeed, so the interface should let autonomy grow with demonstrated reliability — sometimes called an autonomy slider or permission ladder. Start the agent in a supervised, suggest-only mode; as it proves itself on a given task, let the user widen its scope.
The trading bot made this literal. A strategy first ran in paper mode — a sandbox with no real money — where the user could watch it perform with zero downside. Once it earned confidence there, promoting it to live trading was a single, deliberate click. Autonomy was something the agent earned in front of the user, not something the product demanded on day one.
Pattern 3 — Confidence calibration and honest uncertainty
An agent that states a guess with the same confidence as a fact will eventually burn the user, and the trust does not come back. Good agents make uncertainty visible: hedged language when the model is unsure, confidence indicators, source attribution so claims can be checked, and more friction before acting on low-confidence output. The goal is to let the user calibrate — to know when to lean on the agent and when to verify.
We designed an assistant for sports betting predictions, where this is unavoidable: the product is probabilistic by nature. Presenting a prediction as a certainty would be both dishonest and dangerous to the user's money. So the design surfaced confidence and reasoning honestly, framing outputs as probabilities rather than promises — which, counterintuitively, makes users trust the product more, because it never pretends to know what it cannot.
Pattern 4 — Memory legibility
Agents that remember are more useful and more unsettling. The moment an agent carries context across sessions, the user needs to see what it knows about them and be able to change or delete it. Hidden memory feels like surveillance; visible, editable memory feels like a tool. Surfacing memory is also a control: it lets the user correct a wrong assumption before it compounds across every future interaction.
We built a personal bot with multi-layered memory, and the design challenge was less 'how to store context' than 'how to show it.' The user could see what the bot remembered and prune it — turning a black box into something they governed. That visibility is what made long-term memory feel like an asset instead of a liability.
Pattern 5 — Control without a screen
Most agent UX advice assumes a screen to show state on. Voice removes it. When there is no interface to display what the agent is doing, legibility and control have to live in the conversation itself: the agent confirming back what it understood before acting, offering a way to interrupt or cancel, and failing out loud instead of silently doing the wrong thing. Trust is harder to earn precisely because the usual visual cues are gone.
We worked on a voice assistant — a port of a GPT model into a Meta AI surface — where every trust cue had to be carried by speech and timing. Confirmation, status, and recovery all had to happen without a UI to fall back on. Voice is a good stress test for whether your trust patterns are real or just decoration on a screen.
Pattern 6 — Failure legibility and graceful handoff
Agents will fail. The difference between a product users abandon and one they keep is whether failure is legible: the agent says what went wrong, does not take an irreversible action when it is uncertain, and hands off cleanly to a human or to manual control. Designing for the failure case rather than the happy path is the single highest-leverage trust decision, because the failure is the moment trust is actually tested.
This even shapes lighter products. On a funny Telegram bot we built, the interesting design work was the boundaries — what it would refuse to do and how it declined without breaking character. Defining what an agent will not do, and making refusal graceful, is as much a part of trust as what it does well.
Where most teams get this wrong
- They trust the model's output too quickly and design the UI as if it is always right — so there is nowhere for the user to catch an error.
- They treat autonomy as binary: fully manual or fully automatic, with nothing in between for trust to grow.
- They hide failures and uncertainty to look polished, which holds up until the first visible mistake and then collapses trust entirely.
- They enforce boundaries in the prompt instead of the system, so 'ask first' becomes a suggestion the agent can skip.
- They design for the demo — the happy path that wows in a pitch — instead of the messy, high-stakes moments where trust is won or lost.
How we approach agent design
At 99 Francs, designing an AI agent starts with the trust map, not the model: which actions are always-do, ask-first, or never-do; where autonomy should be earned; how uncertainty and memory are surfaced; and what happens when it fails. We have designed and built agents across the hard surfaces — autonomous trading, probabilistic prediction, long-term memory, voice — which is where these patterns came from. If you are building an AI agent or assistant, or shaping an AI product more broadly, the product design work is mostly this: deciding how much control to hand over, and making that safe.
The output is an agent users actually let do its job — because the interface earned it.
Frequently asked questions.
Need this done instead of just read about it?
99 Francs is a subscription-based design studio: one flat monthly rate, unlimited requests, first delivery in 1–2 days. Start with pricing or book a free intro call.



