All articles

AI Agents Inherit Your Bad UX. Here's How to Fix It.

AI agents skip your menus, but they inherit every gap underneath and drop the checks people relied on. How to design states and copy for two readers.

A paper-cutout collage on cobalt blue. A torn speech bubble says all done! in black marker. A hand holds a magnifying glass over it, and through the lens the bubble is torn open, showing tangled cables, a broken gear and a blank receipt. A note on a cream paper tag reads: did you check that?

This week I had a call with a team building a tool for big companies. A bot messages employees on Slack and asks, “Hey, are you still using this tool?” You tap an answer and it moves on. At the end, the company gets a report: who uses what, how often, and whether that $30,000-a-year contract is still worth renewing.

I thought it was smart. Then I thought about what it means. We built so much software that we now need AI to tell us which of it we actually use.

A bot asks people in chat whether they still use each tool, and the answers add up to a report on what the company pays for. Drawn for this article; the names are made up.

For years the industry did sales, sales, sales. More features, bigger contracts, more seats. Nobody closed a bigger deal by taking something out. So products got heavier and heavier, and now AI is the thing that scans through all of it and finds what you actually need.

It’s funny, because that was always the job of design: give people what they’re looking for. Somehow we all just said, fine, let the chat do it. My question is: is that good enough?

AI really does fix the top layer

I’m not against any of this. I use it every day.

I work in the chat. If I want to schedule a post, I don’t open the scheduling tool anymore. There’s an MCP for that, so I just ask. If I need a Zapier automation, I describe it and the AI sets it up. Would I go and build that automation myself, click by click? Not really.

In my opinion, it works best at two extremes. On one side are people who don’t understand tech, for whom talking is easier than learning an interface. On the other are people who understand tech deeply and are so bombarded with tools that chat is just faster. The middle, which is most people once you get out of tech, still uses apps the normal way.

For the people it works for, AI goes straight around the bloat. Buried settings, cluttered screens, ten steps to do one thing: the agent doesn’t care. That part is real, and it’s good.

In the app, scheduling a post is three menus deep. Through the chat, it’s one sentence.

The problem is what’s underneath.

The structure is still there

Look at my Zapier example again. Zapier is still there. The AI didn’t replace it. It’s driving it.

That’s true everywhere. Take a booking system. The voice layer can be as smooth as you like, but the booking system still has to know what can be booked, where, when, for whom, and what happens when a class is full. The agent can only work with what the system tells it.

This is where bad UX stops being annoying and starts producing wrong answers.

Think about a dead end: “No results found.” A person sees it, gets confused, tries another filter, maybe gives up. An agent sees it and guesses why. No results, so nothing must be available on Thursday. Maybe. Or maybe the filter didn’t support what you asked, and there are three classes. “No results found” looks exactly the same either way. So the agent tries something else, gets “no results found” again, and again, and at some point it tells you there’s nothing.

Three searches, three dead ends and a confident answer. The classes were there all along. The search just didn’t understand “evening”.

Or you book a class and the confirmation doesn’t include the address or the invoice. The agent has to go and find them, or guess. Then the user comes back: “But where is my invoice? But where is this? But where is that?”

Good agents do stop and ask when they notice something is off. The problem is the flaw that doesn’t look like a flaw. An agent can handle a problem it can see. It passes along the ones it can’t.

The usual pushback is that agents will just get smarter. Fine. Say they get ten times smarter. A smarter agent still can’t know what the system doesn’t tell it. If “no results found” doesn’t say why, it guesses better, but it’s still guessing. If the confirmation has no invoice, no amount of intelligence puts one there. Smarter doesn’t fix missing.

The checks disappear

This is the part I think about most.

In a UI, we put checkpoints everywhere so people know what happened. You save something and a toast says: changes saved, they’re live, here’s the link. In a booking system I worked on, when you publish a class it says, “Class created. Now everyone can start booking it.” One line, at the right moment, and you know it’s live.

When an agent does the task, that moment is gone. What you get instead is a paragraph, and people don’t read paragraphs. Sometimes a visual is just much better. So you end up reading between the lines, trying to work out what actually happened. AI can hide behind text very easily.

The app tells you in one line that the class is live. The agent tells you in a paragraph, and you still don’t know.

It happens to me all the time. Something in the answer feels off, so I ask, “Did you check that?” It didn’t. It goes back, checks, and the answer changes. I wrote about what that means for AI answers in How to Design AI Answers People Can Trust.

But I only notice because I know the task. That’s the uncomfortable part: you can only catch the mistake if you already know the answer. So the people chat helps most, the ones who don’t understand the tech, are the least able to catch it when it goes wrong. And the better agents get, the less any of us check. An agent that’s right 99% of the time makes the 1% much harder to spot.

So whose job is it to protect those people? I don’t think it’s the user’s. It’s the product’s.

AI fixes the shallow part of UX, inherits the deep part, and throws away the part that let you check.

What to do about it

So if the agent goes around the UI anyway, why pay a designer? Because the agent goes around the menus. It doesn’t go around the decisions: what states the product has, what the error says, what you tell someone after they publish a class. That was always the actual job.

My philosophy for UI has always been simple. The UI should always, always tell you what the issue is, give you an exit from the situation, and reassure you about what you just did.

None of that changes with agents. What changes is that there are now two readers.

“No results found” used to be written for a person. Now an agent reads it too, and it can only act on what the copy tells it. “No results for ‘evening’. Try a time, like 6 to 9 pm” helps both of them. The person knows what to try next, and the agent stops guessing. That’s a fix you can make tomorrow.

The same empty state, rewritten. It says why there are no results, so the person gets a next step and the agent searches with a time.

The confirmation has to carry everything: what happened, where it lives, what happens next, the invoice. Not because a person will read all of it, but because the agent needs it to give that person the one line they actually need.

The other pushback is, “We’ll skip the UI and just ship an MCP. The agent is the interface now.” Okay, but then what’s your moat? Brand is not just the output. Brand is product. Brand is user experience. Brand is trust. If you’re one MCP away, the agent can swap you for the next one, and the user won’t even notice.

Trust gets built in those small moments: the toast, the “class created.” If the agent does all the reassuring, the agent gets the trust. And the blame. Whoever shows the confirmation owns the trust.

Somebody has to ask why

There’s one more thing, and it’s not about the AI. It’s about us.

You can spin up a website over a weekend now, and it looks amazing. You can add this feature, that feature, and the AI will happily build all of it. It never pushes back. It does whatever you ask.

Building used to be slow enough that someone in the room asked, “Why do we need this feature?” Now it’s fast enough that nobody has to. With FOMO, growth targets and pressure to ship, nobody does.

Six features in a week, each one built in an afternoon. Nothing in the way, and nobody asking why.

So someone has to choose to. Someone has to have the vision, be opinionated about where the product is going, and say no. Then test it, and iterate.

For three years we judged AI by how much it surprised us. The next three, we’ll judge it by whether we can check it. And whether we can check it comes down to the same thing it always has. Do you know your customer? Do you know what they need at that specific moment? It always, always comes down to that.