Research

Why AI Agents Fail on Tasks They Can Actually Do

Report

Ask a team why their AI agent botched a task and the answer is almost always that the model wasn't good enough, so they should try a bigger one. That answer is wrong far more often than it's right.

The cause is a gap between what a model can do and what actually ships, which we call the capability-reliability gap. Closing it is the whole job of the harness, meaning the instructions, tools, environment, state, and feedback that surround the model.

Short answer

When AI agents fail, the usual cause is a missing harness rather than a weak model. Given clear instructions, a real environment, and a way to check its own work, the same model reliably finishes tasks it otherwise fumbles.

Chalk illustration of a stick figure walking a tightrope between a glowing lightbulb cloud and a shield-and-checkmark cloud
Capability is the lightbulb. Reliability is the shield. A harness is the rope between them.

Why Does a Capable Model Still Fail at Real Work?

A capable model still fails at real work because raw capability and an agent's reliability are different things. The same model that fails a task with a vague brief, no real environment, and no way to check its own work finishes that exact task once those three things exist, so the gap is rarely intelligence.

Capability is what a model can do in principle, and reliability is whether it does that thing correctly, on your data and in your environment, without a person watching over its shoulder. Benchmarks measure capability, production measures reliability, and the two numbers are not close. The strongest public coding agents resolve roughly half of hand-picked SWE-bench Verified issues, which already come with clean descriptions and a ready-made test. Give them the kind of vague ticket a real engineer gets, with no tests and undocumented conventions, and the success rate drops hard. The model has not gotten worse. What is missing is everything that used to compensate for the ambiguity, such as a coworker's context and a shared understanding of the codebase.

We build custom AI agents for a living, and we have seen the same experiment play out on our own work more times than we'd like to admit: the same model and the same prompt produce wildly different outcomes because one run had a written definition of done and the other didn't. Anthropic ran a version of this test formally, with one prompt and one model, comparing a bare single-agent run against a run wrapped in a planner, generator, and evaluator loop. The bare run finished in 20 minutes for $9 and shipped a broken game. The harnessed run took six hours and $200 and shipped a fully playable one, with no change to the model.

What Are the Five Subsystems That Make Up a Harness?

The five subsystems of a harness are instructions, tools, environment, state, and feedback, and all of them sit outside the model weights. Skip one and the agent behaves erratically no matter how strong the underlying model is. Feedback, the verification loop, returns the most for the least work.

Miss any one of these and the agent looks unpredictable even though the model is fine. We wrote the full breakdown of this model in our report on harness engineering, and it's the same frame we bring to every business automation build: score each subsystem before you touch the prompt.

Does the Data Actually Back Up the Capability-Reliability Gap?

Yes, three separate studies show the same split. AI assistance measurably speeds up a scoped task with a clear spec and measurably slows down real work with ambiguous scope in mature repositories, even though developers believed the opposite was happening the whole time.

GitHub and Accenture ran a randomized controlled trial where developers built the same HTTP server, half with Copilot and half without, and the assisted group finished 55.8% faster. That is capability showing up cleanly, because the task was scoped and the definition of done was obvious: whether the server responds correctly. METR ran a very different study a couple of years later with 16 experienced open-source developers working on their own mature repositories, using 2025-era AI tools including Claude. Their tasks were real backlog items with the usual ambiguity rather than scoped exercises, and developers using AI took 19% longer. Before the study, they predicted AI would save them 24% of their time, and after finishing they still believed it had saved them 20%. They were wrong both times, and that gap between belief and measured outcome is the capability-reliability problem showing up inside a single study.

StudyTask typeMeasured result
Peng et al., GitHub Copilot RCT (2023)Scoped exercise, clear definition of done55.8% faster with AI assistance
METR RCT, experienced OSS developers (2025)Real backlog items, ambiguous scope, own repos19% SLOWER with AI assistance
DORA, State of AI-assisted Software Development (2025)Industry-wide practitioner survey90% AI adoption; only 30% report high trust in AI-generated code
Source: arXiv:2302.06590; METR (2025-07-10), arXiv:2507.09089; DORA 2025 report, dora.dev

The DORA number matters as much as the other two. Ninety percent of software professionals now use AI day to day, up 14 points in a year, and DORA frames the result as AI acting as an amplifier that makes strong engineering practices stronger and weak ones worse. A harness is what decides which side of that line a team lands on.

How Fast Are Agents Actually Getting Better at Longer Tasks?

The length of task an agent can finish at 50% reliability, which is how METR measures agent capability, has doubled roughly every seven months since 2019. In 2024 and 2025 alone it doubled every four months, so the pace is accelerating.

METR's time-horizon research is the closest thing this field has to a speedometer. Instead of a single benchmark score, it measures the longest task, sized by how long it would take a skilled human, that a frontier model can complete half the time. That number has been doubling on a fairly steady seven-month cycle going back to 2019, and in the 2024-2025 window the doubling time compressed to about four months. Beyond short, scoped problems, models are becoming reliably competent on longer and longer stretches of autonomous work. That is where a weak harness turns from an annoyance into a total blocker, because more autonomy means more decisions made without a human catching a wrong turn in real time.

PeriodDoubling time for 50%-reliable task length
2019 to 2025 (six-year trend)~7 months
2024 to 2025 (recent window)~4 months, an acceleration
Source: METR, "Measuring AI Ability to Complete Long Tasks" (2025-03-19), arXiv:2503.14499
A harness leaves the model as smart as it was and builds a closed verification loop around it, so the capability the model already has actually gets realized.
Chalk illustration of a stick figure kneeling beside an open five-compartment toolbox with a tall idle robot standing behind
An idle robot waits by a five-compartment toolbox. The missing gear decides whether it moves.

How Do You Find Which Layer Is Actually Broken?

Find the broken layer with a five-layer attribution before touching the model: was the task spec written down, was the context visible, was the environment reproducible, could success be checked, and was state saved between sessions? One of those five layers is almost always where the failure is.

The diagnostic is simple and takes about twenty minutes. Pull up a failed agent run and ask, in order: was the task specified with enough detail that a right answer was even possible? Could the agent see the conventions it was supposed to follow, or were they living in someone's head? Did the environment actually match what the agent assumed, or did it burn its effort fighting a broken setup? Was there an executable way to know the work was correct, or did "looks done" get accepted as done? And did the agent have any memory of decisions made earlier in the task, or was it re-deriving everything from scratch? We cover the verification piece of this in more depth in our report on agent evaluation, because it's usually the layer that pays off fastest to fix.

What Changes Once You Build the Harness Before the Prompt?

Teams that build the harness first stop treating agent failures as a model problem and start looking for the missing subsystem. The fixes they end up making are a written spec, a real environment, and a check the agent can actually run, and almost never a bigger model.

Run the five-layer diagnostic on a handful of failed tasks and a pattern shows up fast. The cause is rarely the model. More often it is a spec that assumed shared context nobody wrote down, an environment that worked on one machine and not the next, or a definition of done that lived in someone's head instead of a file. We treat this as a design problem for every system we ship, whether it's a customer service agent handling live tickets or a back-office workflow. The two related field notes worth reading next cover the two failure modes we see most: agents that declare the work finished before it holds up, and agents that lose the thread the moment a session ends because nothing durable was written to the repo.

Common Questions

Is a bigger or newer model ever the right fix for an unreliable agent?
Sometimes, but check the harness first, because in our experience the cheapest fix has almost never been a model upgrade. Run the five-layer attribution before spending on a bigger model.
How long does a harness audit actually take?
About twenty minutes per failed task. Score each of the five layers (instructions, tools, environment, state, and feedback) from one to five, and fix the lowest score first.
Does a small one-off automation need a full harness?
No. A one-file script needs a clear ask and a quick check. Full harness weight earns its cost on multi-session work, real test suites, or anything shipping to production.
Why did developers in the METR study believe AI was helping when it measurably wasn't?
AI assistance feels fast in the moment: autocomplete and chat responses arrive instantly. The time lost shows up later, in review, rework, and debugging generated code that didn't fit the codebase's real constraints, which is easy to undercount.
What's the single highest-leverage layer to fix first?
Feedback. An executable way to check the work, such as tests, lint, or a real end-to-end run, also catches failures in the other four layers, because a broken spec or missing state usually shows up as a failing check.

Sources

SourcePublisherLink
The Impact of AI on Developer Productivity: Evidence from GitHub CopilotPeng et al. (arXiv)arxiv.org
Measuring the Impact of Early-2025 AI on Experienced Open-Source Developer ProductivityMETRmetr.org
Measuring AI Ability to Complete Long TasksMETRmetr.org
DORA: State of AI-assisted Software Development 2025DORA / Google Clouddora.dev
Building Effective AI AgentsAnthropicwww.anthropic.com

Questions to explore next

Keep Exploring

Chalk stick figure in a hard hat presenting a little machine of blue gears it just built

Bring us the bottleneck.
We’ll build the system.

Building What's Next.