DEV Community

Cover image for Why AI Automations Fail: The Capability-Reliability Gap
Fabian Both
Fabian Both

Posted on • Originally published at golemry.com

Why AI Automations Fail: The Capability-Reliability Gap

An AI automation works on day one. The output matches what you pictured, so you ship it, schedule it, and move on. A few weeks later it's worse, and nothing told you. No error, no alert, no failed run. You only notice because you happened to look.

If you run any kind of recurring AI job, you've probably lived some version of this. It isn't bad luck or a weak prompt. It's structural, and it has a name worth understanding before you hand an automation anything that matters.

Why AI fails silently, and traditional software doesn't

Traditional software is deterministic. Same input, same output. When it breaks, it breaks loudly: an error, a crash, a timeout. You know something is wrong because the system tells you.

AI doesn't work that way. A language model produces confident, well-formatted output whether the answer is solid or invented. There's no built-in uncertainty signal, no warning light, just text that looks exactly like good text. So the failure mode isn't a crash. It's a fluent, plausible answer that happens to be wrong, and nothing flags it until it's already been sent, published, or acted on.

If you come from a world where software either works or it doesn't, this is a new thing to operate around. It's the same silent failure a green run can hide inside a workflow builder, and it changes how you have to run AI in production.

The capability-reliability gap: what the data shows

The gap between what AI can do and how reliably it does it is widening, not closing. When Princeton researchers profiled fifteen agentic models across two benchmarks in early 2026, capability had climbed steadily while reliability barely moved (the paper, or Fortune's writeup). Models that scored far higher on benchmarks stayed inconsistent and prone to silent failure in practice.

Doing something impressively once and doing it reliably a thousand times are different problems, and the industry optimizes the first, because that's how model providers compete. Reliability lags because it has to: you can't make something reliable before it's capable. Which means everyone adopting AI automation right now inherits the hard part, making it work consistently, almost entirely themselves.

This isn't only academic. Amazon's retail site saw repeated outages in March 2026, with internal documents reportedly pointing to AI-assisted code changes as a factor, and the fix was more human oversight, not less: senior engineers now sign off on junior engineers' AI-assisted changes. The broader numbers rhyme. RAND has estimated the AI project failure rate at over 80%. These aren't teams that didn't try hard enough. They're teams that built something, watched it degrade, and couldn't make it stick.

What vibe coding already taught us

Developers went through this exact transition with AI coding tools. The first wave was vibe coding: describe it, let the AI write it, ship without looking too closely. Fast, exciting, and it produced code nobody could maintain. The correction wasn't to abandon AI. It was to put review back in as a default step between generation and delivery. The bottleneck moved from writing code to reviewing it.

The same shift is now happening everywhere AI runs unattended: marketing, operations, research, support. The AI does the work. Someone still has to check it. Right now that someone is you, by hand, for every output, with nothing in place to make it better over time.

The three ways the gap shows up

The gap isn't one failure. It wears a few faces, and each has its own deeper write-up:

Different entry points, same root cause: a non-deterministic system running unwatched, with nothing able to tell a good run from a bad one.

How to close the gap: the overseer

Manual review works when you run one or two automations. The moment you run ten or twenty, it falls apart. You can't read every output every day, so you spot-check, or you stop, or you hope. That's not a workflow. It's a liability.

The fix isn't to review everything forever. It's to make review a default step that something else performs, and to let your corrections improve future runs. We call that something the overseer. The overseer is a separate evaluator that reads each run, not just its result, and escalates only what needs a human.

Three properties make it work, and they're worth stating plainly:

  • Separate the doer from the checker. The agent that produced the output is the worst judge of whether it's right, for the same reason you don't review your own code. A dedicated evaluator catches drift the executor can't see in its own work.
  • Make review the default. Every run gets read before its output ships, not after something breaks.
  • Close the loop. When you correct a run, that correction tunes future runs, so the same mistake stops repeating and you review less over time.

This is the pattern we build into Golemry, and it's what the capability-reliability gap actually calls for. Not a smarter model. A second set of eyes that reads the run.

Top comments (0)