Skip to main content

One More Prompt: The Slot Machine Inside AI Agents

  • AI
  • Vibe coding
  • Dark patterns
  • Ethical design
  • UX design

One more prompt

It’s 1 a.m. and the login screen almost works. The button is in the right place and the form validates. Then the redirect sends you to a blank page.

You type: fix the redirect. You watch the cursor think. Files scroll past. The page loads, and now the button is gone.

You type it again, slightly differently. Just one more.

I’ve had that night more than once, and somewhere around the fifteenth prompt I recognised the feeling. It wasn’t the feeling of building something. It was a pattern I knew: the slot machine.

Giving in to the vibes

Andrej Karpathy named it in February 2025. He described vibe coding as a way to “fully give in to the vibes, embrace exponentials, and forget that the code even exists” (CodeRabbit (opens in a new tab)). You describe what you want, accept what the AI writes, and paste errors back in until it runs.

Within months the term had left developer slang behind. In November 2025, Collins Dictionary named vibe coding its word of the year (opens in a new tab): “telling a machine what you want rather than painstakingly coding it yourself.”

For designers it’s a gift. I can turn a flow into a working prototype in an evening, with no developer and no ticket. I can test an idea with real data instead of a clickable mock-up. That’s real, and I don’t want to lose it.

But the term itself contains a warning. “Forget that the code even exists” means forgetting how the thing works. When you don’t know how it works, every prompt is a guess. And a guess with an uncertain payoff is exactly what a casino sells.

And it isn’t only about code. The same loop runs whenever we work through an AI agent: prompt, wait, judge the result, prompt again. I see it when I ask for research summaries, copy variants, images, or a first pass at a flow. Vibe coding is just the most intense version, because the reward (a working thing) feels so big.

This matters for designers in a second way too. We’re not only using these agents. More and more, we’re asked to design them: the AI assistant in the sidebar, the “generate” button in the editor, the chat that sits on top of the product. Whatever makes the loop addictive for us, we’re now building into other people’s days.

Why we rush to the table

Nobody walks into a casino by accident, and most of us didn’t drift into vibe coding by accident either. I think a big part of why designers have jumped in so fast is fear: fear of being replaced, and fear of being left behind.

The pressure is everywhere. Colleagues show apps they built over a weekend. Job ads start asking designers to ship code. Every week there’s a new tool that promises to make the old way of working obsolete. Standing still starts to feel like falling behind.

Research backs up the feeling. In Afraid of AI, Addicted to AI (opens in a new tab) (SAGE Open, September 2026), Faruk Dursun surveyed 421 working adults in Turkey. Fear of losing their job to AI was the strongest predictor of becoming dependent on it. People use the technology “not despite fear but because of it, attempting to ‘master’ AI before it replaces them.” He calls it a control paradox: the fear that should make us careful makes us use AI more.

That matters for the slot machine comparison. Someone who plays for fun can walk away when it stops being fun. Someone who plays because they’re afraid of losing keeps pulling to make up the ground. Gamblers call it chasing losses. When fear is what sat you down, “one more prompt” isn’t about the feature anymore. It’s about proving you’re not obsolete.

What makes AI agents addictive

Nearly every mechanic that keeps someone at a slot machine has a direct match in how AI agents look and behave.

Slot machine mechanics and their match in AI agents
MechanicAt the slot machineIn an AI agent
One-touch actionPull the leverSend a prompt, or hit “Regenerate”
Variable rewardPayouts come unpredictablyThe same prompt gives a different answer each time
Reward cuesSpinning reels, lights, soundsText streaming word by word, files scrolling past
Near missTwo cherries and a lemon“It almost works, just one bug left”
Losses disguised as winsCelebrating a payout smaller than the betIt runs, but a feature you had is gone
FlatteryComps and the VIP treatment“Great idea!” before every answer
Chips, not cashAbstract currencyTokens and credits, not kronor or dollars
No clocks, no windowsNo cue to leaveAlways a suggested next step, never an end
InvestmentLoyalty points you’d hate to wasteA long conversation and project context you’d hate to lose

Researchers have started naming these mechanics directly. In The Dark Addiction Patterns of Current AI Chatbot Interfaces (opens in a new tab) (CHI 2025 Extended Abstracts), M. Karen Shen and Dongwook Yoon point to four pathways. The first is non-deterministic responses, which trigger “reward uncertainty, which tends to increase dopamine release, similar to playing a slot machine”. The second is responses that appear word by word and act as “reward-predicting cues”. The third is notifications that let the AI start the conversation, and the fourth is empathetic, agreeable replies (summary via Tech Policy Press (opens in a new tab)).

The variable reward is the strongest of them, and it’s one of the best-documented effects in psychology. Under a variable-ratio schedule, a reward arrives after an unpredictable number of tries. The standard textbook example is gambling, and the behaviour is unusually hard to extinguish: “the point of extinction comes very slowly” (OpenStax Psychology (opens in a new tab)). Product design lead Ruth O, writing about her own AI coding, put it bluntly in The Slot Machine in My IDE (opens in a new tab): “This is exactly how slot machines work. Not metaphorically, but literally the same psychological mechanism.”

A made-up run

12 of 12

  1. Prompt 1: Almost works
  2. Prompt 2: Broken
  3. Prompt 3: Works
  4. Prompt 4: Works
  5. Prompt 5: Almost works
  6. Prompt 6: Broken
  7. Prompt 7: Almost works
  8. Prompt 8: Almost works
  9. Prompt 9: Broken
  10. Prompt 10: Almost works
  11. Prompt 11: Works
  12. Prompt 12: Almost works

Start your own run and prompt until something works. The odds are made up: almost works comes up half the time, and works one time in five. Before you start, the strip shows a made-up run.

Even “losses disguised as wins” is a research term, not a metaphor. Gambling researchers use it for outcomes where a player wins back less than they bet, yet “the machine celebrates these outcomes with reinforcing sights and sounds.” In one study, most participants “(mis)categorized LDWs as wins, and significantly overestimated the number of times they actually won” (Dixon et al., Journal of Gambling Studies, 2015 (opens in a new tab)). An agent that cheerfully reports “Done! Your app is working” after quietly deleting a feature is doing the same thing.

Flattery deserves its own warning. In April 2025, OpenAI rolled back a GPT-4o update (opens in a new tab) that made ChatGPT overly agreeable. The company said the model had been shaped too much by “short-term feedback”, and leaned towards “responses that were overly supportive but disingenuous.” In other words, optimising for the thumbs-up in the moment produced a machine that told people what they wanted to hear. That’s a design lesson, not just a model problem.

The anthropologist Natasha Dow Schüll spent years studying slot machine design in Las Vegas. In Addiction by Design (opens in a new tab) (2012) she describes how machines are tuned to sustain “the zone”: a state where players stop playing to win and play simply to keep playing. Time blurs, money becomes abstract, and the goal shifts from winning to continuing.

If you’ve lost an evening to prompting, that description may feel familiar. At some point you stop trying to ship a feature and start trying to win the next pull.

There’s a fair objection here. Isn’t every good tool rewarding? Figma is satisfying too, and nobody calls it a casino. And unpredictable output is part of what makes generative AI useful: you want ten different headlines, not the same one ten times.

The difference isn’t whether a tool feels good. It’s three things together. The rewards are unpredictable by nature. The cost is hidden in an abstract currency. And the business earns more the longer you keep going, whether or not you finish. Figma doesn’t charge per click. A slot machine, and an agent billed per token, does.

What it really costs

The obvious cost is money. Tokens feel cheap one prompt at a time, the way a single spin does. Add them up over a month of late nights and the total can surprise you, especially on plans that top up automatically.

The less obvious costs matter more:

  • Time. Twenty prompts to fix one bug can take longer than reading the code would have. The session feels fast because something happens every few seconds.
  • Understanding. Every accepted change you didn’t read is a piece of your product you no longer understand. That debt is paid later, usually during a demo.
  • Judgment. In the zone, you stop asking whether the feature is worth building. You only ask whether the next prompt will make it work.
  • Rest. “No clocks, no windows” is a design choice. A session with no end eats the hours you’d have slept.

The time cost isn’t just a feeling. In a 2025 randomised trial by the research group METR, 16 experienced developers worked on 246 real tasks in projects they knew well. They expected AI tools to speed them up by 24%. With AI they were 19% slower, yet afterwards they estimated AI had made them 20% faster (The Register (opens in a new tab)). The researchers caution it’s a snapshot of specific tools and conditions. But the gap between feeling fast and being fast is exactly what a casino trades on.

None of this makes vibe coding bad. It makes it something to use on purpose, not something that uses you.

Put the house edge on your side

The fix isn’t to stop vibe coding. It’s to decide when you’ll stop before you start, the way careful gamblers set a limit before they walk in.

  1. Write a short spec first. One paragraph: what you’re building, what done looks like, and a budget in time or tokens. Without a definition of done, there’s always one more pull.
  2. One change per prompt. Small asks give results you can judge. “Make it better” is a lever, not a request.
  3. Read the diff. Even skimming it breaks the spell. You’re back to building something you understand instead of watching reels spin.
  4. Commit when it works, then stop. A working state is a cash-out point. Save it before you get greedy.
  5. Three strikes on the same bug, step away. If the same error comes back a third time, more prompts won’t fix it. Read the code yourself, ask a developer, or sleep on it.
  1. Write a short spec: what done looks like, and a budget in time or tokens.
  2. Prompt one change.
  3. Read the diff.
  4. Does it work? If yes, commit, then stop. Cash out. If no, go on to step 5.
  5. Same bug a third time? If yes, step away. Read the code, ask a developer, or sleep on it. If no, go on to step 6.
  6. Budget left? If no, stop. The limit you set at the start. If yes, go back to step 2 for one more prompt.
The five stopping rules as one loop. Every check has a way out, and only a budget that’s left sends you back for one more prompt.

We of all people should see it

So far I’ve written as the person pulling the lever. But that’s only half of a designer’s story, and the less important half.

Designers know this loop from the other side of the screen. Infinite scroll, pull-to-refresh, streaks, the red notification badge: we’ve built these patterns, debated them in reviews, and written talks about why some of them are dark patterns.

Our field has a whole vocabulary for this. Harry Brignull coined “dark patterns” in 2010 and later catalogued them in his book Deceptive Patterns (opens in a new tab) (2023). Tristan Harris, a former Google product manager who left to campaign against manipulative tech, told 60 Minutes (opens in a new tab) in 2017: “every time I check my phone, I’m playing the slot machine to see, ‘What did I get?’”

The playbook was even written down for us. Nir Eyal’s Hooked (opens in a new tab) describes a four-step loop for habit-forming products: trigger, action, variable reward, investment. Map a vibe coding session onto it and it fits uncomfortably well:

  1. Trigger: an error message, or an idea at 11 p.m.
  2. Action: type a prompt, the lowest-effort action there is.
  3. Variable reward: sometimes it works, sometimes it doesn’t.
  4. Investment: every prompt adds to a project you’d hate to abandon, which brings you back for the next trigger.

Design research saw AI raising the stakes before vibe coding had a name. In Addictive Digital Experiences (opens in a new tab) (2021), Riccardo Chianella warned that “with algorithms that learn the schedules and habits of individual users, addiction can now be generated both with finer granularity and at greater scale”. He was blunt about our role: designers are “undoubtedly complicit in the co-production of addictive user behaviour.” His answer is to treat AI as a design material we understand, not as magic. That’s useful advice for anyone tempted to forget the code even exists.

I don’t think AI tool makers set out to build casinos. But a design doesn’t need intent to have effects. Tools billed by usage earn more when you keep going, and that incentive rarely builds stopping points on its own.

Fred Benenson made this case in UX Collective in The perverse incentives of Vibe Coding (opens in a new tab) (May 2025). He noticed that coding agents “tend to write too much code”, and pointed at the business model: “More tokens processed = more revenue for the company behind the AI.” Whether or not anyone designed it that way, the meter runs in the house’s favour.

Now we design the machine

So do we have a responsibility? I think yes, and it’s growing every quarter. AI interfaces are becoming standard parts of the products we design. Each one carries these mechanics unless someone decides otherwise, and that someone is usually a designer.

It’s tempting to say the addiction lives in the model, not the interface. The Center for Democracy & Technology, which catalogued 37 dark patterns in AI chatbots (opens in a new tab) (May 2026), grants part of that: these patterns “may emerge from system behaviors, rather than designers’ deliberate intent to deceive.” But it adds that design choices often lay the groundwork. The Regenerate button, the streaming text, the suggested follow-up, the cheerful tone: those are interface decisions.

Regulation is heading the same way. The EU’s Digital Fairness Act (opens in a new tab), expected as a proposal in Q4 2026, aims to tackle dark patterns and “the addictive design of digital products”. Designers who think about this now will be ahead, not catching up.

The research to back such rules is piling up. The ADDICT report (opens in a new tab) from the Institute for Advanced Studies Vienna (February 2026) mapped 9 logics and 29 features of addictive design. Among them are gambling-inspired “ludic loops” and infinite scroll that removes “natural stopping cues”. It studied social platforms like TikTok and Instagram, not AI tools, but its conclusion travels well: “Addictive behaviour thus emerges from cognitive manipulations implemented by tech companies to increase monetisation, disguised as intuitive interfaces and personalised experiences.” Its authors argue this is a business practice that needs regulating, not a user’s personal failing.

What does responsibility look like in practice? Mostly, it means making the opposite choice at each of the mechanics above:

Addictive patterns and their responsible alternatives
Addictive patternResponsible alternative
Regenerate as a leverHelp people refine or understand the answer, not just reroll it
Streaming as spectacleHonest progress, and a notification when a long task is done so nobody has to watch
An endless next stepA clear “done” state with a summary of what changed
Flattery by defaultA neutral tone that disagrees when it should
Abstract tokensCost shown in real currency, per task and per session
AI-started conversationsNotifications off by default and easy to control
Retrying the same failureDetect repeat errors and suggest another approach, or a human
Success measured as engagementSuccess measured as tasks completed and time to done

The last row is the one that decides the rest. If a team measures messages per session or time spent with the assistant, every design review will drift towards the slot machine. One question helps in those reviews: would this feature still count as a success if people used it less?

What this looks like on a Tuesday

This isn’t abstract for me. Recently I was asked to help adapt our AI chat assistant to AG-UI (opens in a new tab), an open protocol for connecting AI agents to user interfaces. It started at CopilotKit together with LangChain and CrewAI. It describes itself as an “open, lightweight, event-based protocol that standardizes how AI agents connect to user-facing applications.”

My first question was whether there were dark patterns in it. The honest answer is no. AG-UI is plumbing: a list of events (opens in a new tab) the agent sends to the interface, such as a run starting, a chunk of text arriving, a tool being called, or a run finishing. It doesn’t decide how any of that looks or behaves. That job lands on the designer’s desk.

Some of it is good news. The protocol supports human-in-the-loop flows that let people “pause, approve, edit, retry, or escalate”, along with cancelling and steering a run mid-flow. It shows reasoning as summarised steps, with “no raw chain of thought”. There’s also a clear signal when a run is finished, so a real “done” state is possible.

But plumbing has defaults, and defaults shape behaviour. Going through the docs, I found five decisions where the easy path leads to the slot machine:

  1. Streaming. Text, tool output, and reasoning can all stream in live. That’s useful for short replies, but for long tasks it turns waiting into a show. I’d rather show progress and send a notification when the task is done.
  2. Retry. Retry is built in. If our button only rerolls the answer, it’s a lever. Paired with “refine” or “explain”, and with a limit that notices repeated failures, it’s a tool.
  3. Generative UI. The agent can render interface components itself. Those screens never pass through a design review, so I want them limited to an approved set of components.
  4. Cost. There’s no built-in event for token usage or cost. If we want people to see what a session costs, we have to add it ourselves. Nobody will do that unless a designer asks.
  5. Approvals. Human-in-the-loop protects people only while approvals stay meaningful. Ask for a click on every small step and people stop reading. Approvals belong on actions that are costly or hard to undo.

None of these decisions showed up as “ethics” in my task description. They showed up as interaction details in an integration project. That’s how this responsibility usually reaches designers: not as a big moral question, but as a dozen small defaults you either accept or change.

Put the clocks back

Casinos remove clocks and windows on purpose. AI agents don’t need to copy them, and designers are the people best placed to say so.

If you design AI features, and more of us do every quarter, you’re the one who decides whether the clocks go back on the wall. Show the cost, mark when a task is done, let the assistant disagree, and measure whether people got their work done rather than how long they stayed.

If you use them, and most of us now do, know which machine you’re sitting at. Vibe coding is one of the best prototyping tools designers have ever had. The trick is to keep using it as a tool, not as a game you can’t stop playing.

And if fear is part of what keeps you at the machine, it’s worth remembering what will keep designers valuable. It isn’t how many prompts you can fire off in a night. It’s knowing what’s worth building, and when to stop.

The next time it’s 1 a.m. and you’re typing fix the redirect for the fifteenth time, look up. There’s no clock on the wall. That’s not an accident.

Sources