pickuma.
Dev Knowledge

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.

7 min read

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 returnsWhat the agent does next
400 Bad RequestGuesses. 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 2xx on 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

Try OpenCode

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?
There is heavy overlap, and if your API design is already excellent you have done most of the work. The genuinely new parts are the ones outside the API: credential issuance without a browser, docs written to be retrieved rather than browsed, and guardrails on destructive actions that used to be enforced by UI friction. Those live in onboarding and content, not in your endpoint schemas.
Do I need to ship an MCP server to have good AX?
No, and shipping one first is usually the wrong order. MCP standardizes how a model discovers and calls your tools; it does not make a confusing error message clearer or a browser-gated signup headless. Fix errors, docs retrievability, and programmatic auth first — an MCP server built on top of those is genuinely useful, and one built on top of the alternative mostly generates support load.
Does an llms.txt file actually get read?
Support is uneven and you should treat it as cheap insurance rather than a guaranteed channel. The concrete win is not the file itself but what producing it forces: a plain-text, fetchable mirror of your documentation with stable URLs. That mirror is readable by any agent doing a plain HTTP fetch, whether or not it knows the convention exists.

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

See all Dev Knowledge articles →

Get the best tools, weekly

One email every Friday. No spam, unsubscribe anytime.