Agent experience design: when the user is sometimes an agent
Agents now consume products alongside humans. What that changes in affordances, error states, and provenance, from someone who ships both.
Software is being read by machines now, not just people. Agent experience design means building a product so an AI agent can tell what a button does, understand what went wrong when something fails, and check where a number came from. Mathias Biilmann named the field AX at Netlify in January 2025, putting it after UX and DX. The actual work is smaller than the name suggests. Most of it is already sitting in features you shipped for humans.
01What Biilmann actually named
Read the original post and the community site that grew from it, agentexperience.ax, and it is mostly infrastructure. Clean APIs. Docs a machine can read. A standard way for an agent to log in, work out what a service does, and recover when a call fails.
The site's own principles read like an accessibility spec written for machines. Don't put a barrier in front of an agent that you wouldn't put in front of a person. Don't assume the model already knows your domain. And an agent should admit it is one, in its own request headers. Good, durable guidance. It's aimed at people building the pipes an agent calls.
Microsoft took the same three letters somewhere else. Their framework is about designing the agent itself, sorted into space, time, and core, with rules like “connecting, not collapsing” and “nudging more than notifying.” That is persona work. It shapes how the agent behaves, not how your product looks to it.
And the platforms have found the term too. Salesforce is publishing agent experience design content that reads like Agentforce onboarding: a naming convention for your agent ("Name + Agent," kept under ten characters), a standardized avatar system, a decision tree for monolithic versus multi-agent architecture. Useful if you're selling an agent platform.
None of the three answers what happens to a screen you already shipped, the one some other company's agent is reading right now without asking your permission.
02The question most designers have
You didn't build the agent. It showed up. It's reading your help center to close a support ticket, filling out your checkout form on someone's behalf, or pulling structured data off a page you built for a person's eyes. Nobody asked whether your interface was ready for that.
The best writing on this makes a simple point. An agent has a goal, an interface, and a result, which is the same shape as a person doing a task. So the advice lands on accessibility work most teams owed anyway: label things, keep the structure predictable, stop shipping buttons that are only an icon.
That is correct and it is not enough. It gives a designer nothing to measure on a Friday with a review due. There is no test for whether a screen is readable by an agent, and no way to decide what to fix first when the deadline forces a choice.
That's the actual gap, and it's smaller than a new discipline. It's a checklist, and on any interface it lives in exactly three places.
03Affordances stop being implied
A person reads a raised button, a filled background, and a hover state as "click here," and reads a grayed-out one as "not yet." An agent parsing a DOM or an accessibility tree gets none of that for free unless the state is declared somewhere it can actually check: a label, an aria attribute, a disabled flag. The visual hierarchy that makes a screen feel calm to a person is invisible to a parser. So the affordance has to exist twice. Once as weight and color for the eye. Once as a stated, checkable property for whatever else is reading.
I built this without naming it, on Scarlett, a personal AI assistant I designed end to end. Every action on the surface obeys a verb law: Scarlett can draft, remind, watch, propose, and compare. Only the person can send, book, confirm, approve, and decide. That split was built to earn a human's trust, capability-honest copy like "only you press send" shipped verbatim because people needed the limit stated, not implied. It turns out the same split is close to the cleanest API contract available. An agent reading that surface doesn't have to infer what's safe to call. The verb already tells it.
04Error states stop being allowed to be vague
"Something went wrong, try again" works fine for a person, who brings judgment, memory of what they were doing a minute ago, and the option to just stop. An agent retrying blindly against a vague error can loop, repeat a side effect it already completed, or read a partial failure as success and move on to the next step. The fix isn't friendlier copy. It's specificity: which part failed, whether retrying is safe, what state the system is actually in right now. A human benefits from that detail too. It just isn't the thing that breaks them when it's missing.
05Provenance is where the two readers agree
This is the one place agent legibility and human trust stop trading off against each other. On Scarlett, every claim on every screen traces to a source you can name: an insight ties to the email that produced it, a draft cites the thread it's answering, the Context Inspector shows exactly what the system has learned about you and lets you correct it. That rule got written for a person deciding whether to trust an assistant with their inbox. It would satisfy an agent auditing the same claim too, provided the source is structured somewhere a machine can parse it and not just written into a sentence a person reads. That qualifier is the actual work. A citation is agent-legible the moment it stops being prose only a human can follow.
Articos runs on the same instinct one layer down, in research rather than assistance. The model never sees the hypothesis. The eval harness is written down. A reader can follow any claim back to its source in half an hour.
None of that was built for agents. It turns out that showing your work to a doubtful person gets you most of the way to showing it to a doubtful machine. What is left is formatting the trail so something other than a person can walk it.
06A checklist, run against what you already shipped
Pick a screen you built for people and ask it four questions. Where does an affordance live entirely in color or weight, with no declared state a caller could check? Where does an error message apologize instead of naming what failed and whether retrying is safe? Where does a claim on the screen have no traceable source, for a human or for anything reading alongside one? And where would supervising an agent's action actually require more than the confirm-and-audit-trail pattern you'd design for a person anyway?
That last question matters most. Most interfaces do not need rebuilding for agents. They need the review step they should have shipped already.
I made the approval-gate case in AI as a Design Material and it carries over almost unchanged. Build the harness that lets a person catch a wrong answer that sounds right, and you have most of the harness an agent needs standing over it too. The decision layer under an agent's interface is the same layer either reader leans on.
07Where this leaves the practice
Strip away the platform pitch and agent experience design is three edits to something you already shipped. Make the affordance clear. Make the error say what went wrong. Show where the number came from. You were probably underbuilding all three for people too.
The one new thing is the second reader. It notices immediately, and it never complains.
Which of your product's error states would actually survive an agent retrying against it without a human stepping in? That's usually the fastest way to find where to start.
The Scarlett case study walks through the rest of the verb law, if you want to see where the split holds up against a real inbox instead of an argument.
08References
- Introducing AX: Why Agent Experience Matters
- Principles of AX
- UX design for agents
- Welcome to a New Era of Experience with AI Agents
- AI Agents as Users
- Accessible Rich Internet Applications (WAI-ARIA) 1.2
- Mind2Web: Towards a Generalist Agent for the Web
- SWE-agent: Agent-Computer Interfaces Enable Automated Software Engineering
- RFC 9457: Problem Details for HTTP APIs
- The Idempotency-Key HTTP Header Field
- HTTP Message Signatures for Automated Traffic (Web Bot Auth architecture)
- Visibility into AI Agents
09Further study
Branching by what you are actually trying to do next.
If you are about to run the checklist on a screen you already shipped.
- Accessible Rich Internet Applications (WAI-ARIA) 1.2 — the vocabulary of declared state; where "a label, an aria attribute, a disabled flag" is actually specified.
- Mind2Web: Towards a Generalist Agent for the Web — what agents actually face on real human-built sites; the failure cases are your checklist findings in benchmark form.
- Augmenting Interface Usability Heuristics for Reliable Computer-Use Agents — 2026 evidence that interface usability heuristics predict where computer-use agents break, the checklist idea taken to a lab.
If your error states are where you are starting.
- RFC 9457: Problem Details for HTTP APIs — the machine-readable shape for "which part failed"; short, and directly implementable this week.
- The Idempotency-Key HTTP Header Field — makes "is retrying safe" a declared property instead of a guess.
- τ-bench: A Benchmark for Tool-Agent-User Interaction in Real-World Domains — measures agents against rules and repeated interaction; the retry-loop failure the essay describes, quantified.
If you are deciding what your product should declare to the agents arriving.
- The /llms.txt file — Jeremy Howard's machine-readable docs entry point, the minimum viable declaration a product can ship.
- HTTP Message Signatures for Automated Traffic — how transparent identity becomes verifiable rather than an honor-system header.
- PROV-DM: The PROV Data Model — the W3C model for provenance a machine can walk; the formal end of section 05's "citation that stops being prose".