Agent Experience (AX): What Changes When Your User Is an AI Agent
Agent Experience is product design for AI agents instead of people. What breaks in auth, docs, error messages, and state handling — and the order to fix it.
Your product has a user segment that never opens the dashboard, never reads the onboarding email, and never files a support ticket. It reads your docs as tokens, calls your API, gets a 400 back, and either recovers or quits. Nothing in your funnel records that as churn.
Mathias Biilmann, Netlify’s CEO, put a name on the problem in early 2025: Agent Experience, or AX — the quality of the experience an AI agent has using your product, treated as a design concern sitting alongside UX and DX. The label matters less than the assumption it breaks. Nearly every signup flow shipped in the last decade assumed a human with a browser, an email inbox, and patience. For a growing share of API traffic, none of the three is present.
An agent is not a fast human
The differences are not cosmetic, and each one invalidates a design pattern you probably rely on.
It pays for everything it reads. A human skims a 4,000-word quickstart in fifteen seconds and jumps to the code block. An agent ingests the whole thing into a finite context window, at a token cost, and the marketing preamble competes for space with the actual task. Long docs are not thorough to an agent; they are expensive.
It cannot leave the process it is running in. “Check your inbox for a confirmation link,” a CAPTCHA, or an OAuth consent screen that requires a rendered browser are all terminal states for a headless agent. It will either stop, or improvise a workaround you did not sanction.
It retries instead of asking. A person who hits a confusing error rereads the docs or messages a colleague. An agent mutates the request and fires again. Against a non-idempotent POST, three retries are three records — or three charges.
It starts cold every session. Whatever your product taught a user last week is gone unless it is retrievable from your docs right now, at the moment of the call.
It never complains. There is no support ticket, no NPS response, no rage-click. An agent that fails on your product simply produces a worse answer for its human, who blames the model.
The four surfaces where AX actually breaks
Authentication
This is the most common hard stop. If the only path to a credential runs through a browser session, an email verification, and a dashboard click, every agent workflow needs a human babysitter at minute zero. The fix is a programmatic path: scoped tokens that can be created by an API call, short-lived credentials with explicit permission sets, and an approval step an agent can request and then poll rather than one it must click. Scope matters as much as issuance — an agent-held token with account-wide write access is a blast radius, not a feature.
Documentation
Agents fetch, they do not browse. Docs that render only after JavaScript execution, live inside an interactive playground widget, or hide the working example behind three tabs are effectively unreadable to a plain HTTP fetch. What travels well: one canonical, copy-pasteable example per task, stable URLs, explicit version numbers in the snippets, and a plain-text or markdown mirror of every page. Jeremy Howard’s llms.txt proposal from September 2024 is the low-effort version of this — a single index file at your root that points a crawler at the pages that matter, in the order that matters.
Error messages
Error copy is where AX is won or lost, because an error is the only channel through which your product can teach an agent mid-task.
| What the API returns | What the agent does next |
|---|---|
400 Bad Request | Guesses. Retries with a different guess. Loops. |
400: invalid field "expires" | Tries expiry, expires_at, expiration. Maybe recovers. |
400: field "expires_at" must be RFC 3339 with offset; received "2026-08-13" | Fixes it on the next call. |
The third message costs you one extra sentence in a validation handler. It converts an abandoned session into a completed one. Include the offending field name, the expected format, the received value, and a docs URL — agents follow links in error bodies.
State and reversibility
Because retry is the default failure behavior, anything an agent can do twice, it will eventually do twice. Idempotency keys on every mutating endpoint. A dry_run parameter that returns the diff without applying it. Soft deletes with a restore window. List-before-write endpoints so an agent can check its assumption cheaply instead of writing to find out.
What to measure, and what to ship first
You cannot run a heatmap on an agent. The proxies that do work are all server-side:
- Split your telemetry by credential origin. Tokens issued through the dashboard by a logged-in human behave differently from tokens issued programmatically. Tag them at creation, then compare funnels.
- Time to first successful call from a cold credential. Measured from token creation to the first
2xxon a meaningful endpoint. This is the closest thing AX has to a single north-star number. - 4xx rate by endpoint and by error code. Sort descending. The top error code is your top AX bug, and it is usually a naming or format mismatch between your docs and your validator.
- Distinct endpoints per session. Agents that are lost fan out across many endpoints; agents that understood the docs move in a straight line.
Ship in this order, cheapest leverage first: fix error messages, publish a plain-text docs mirror and an llms.txt index, add programmatic token issuance, then idempotency keys and dry-run modes.
Notice that an MCP server is not on that list. The Model Context Protocol, which Anthropic open-sourced in November 2024, is a transport — a standard way to hand tools to a model. Wrapping an API that returns opaque errors and requires a browser to get a key does not fix either problem; it relocates the failure one layer up and makes it harder to debug. Get the underlying surface right, then wrap it.
OpenCode
An open-source terminal coding agent. Useful for AX testing specifically because it runs headless with your own model key — point it at your quickstart with fresh credentials and read the transcript to find where your product stops being usable without a human.
Open source; bring your own model API key
Affiliate link · We earn a commission at no cost to you.
The underlying shift is straightforward to state and awkward to act on: for a growing share of your traffic, the buyer, the evaluator, and the integrator are the same non-human process, and it forms its judgment about your product in the first few hundred tokens. Products that are legible to that process get adopted by it. The rest get worked around.
FAQ
Isn't AX just good API design with a new name?
Do I need to ship an MCP server to have good AX?
Does an llms.txt file actually get read?
Tools used in this review
Some links above are affiliate links. We may earn a commission if you sign up. See our disclosure for details.
Related reading
2026-07-16
How Agent Tool-Use Loops Work
AI coding agents follow a loop of planning, reading, editing, and verifying. Understanding that loop helps you write prompts that get better results.
2026-07-16
Context Windows in AI Coding Agents Explained
Context windows limit how much code an AI agent can see at once. Understanding that limit explains why agents miss files, repeat work, and sometimes lose track of the task.
2026-07-16
How AI Coding Agents Read and Index Your Codebase
AI agents do not magically understand your project. They use a mix of file listing, search, and context loading to find relevant code. Here is how it works.
2026-07-16
Inline Completion vs Agentic Coding: What Is the Difference?
Inline completion and agentic coding are both AI-assisted development, but they solve different problems. Here is how to tell which one you need.
2026-07-16
Why Terminal-Based AI Agents Use Text In, Text Out
The terminal seems old-fashioned, but its text-based interface is exactly why AI coding agents work there. Here is the engineering reason behind the trend.
Get the best tools, weekly
One email every Friday. No spam, unsubscribe anytime.