Loading...

Blog

AI coding agents are moving the bottleneck to verification

· agents, engineering, evaluation, analysis

What recent research says about agent productivity, why more output can slow delivery, and a practical evaluation worksheet for small engineering teams.

A team can generate working-looking code faster than it can decide whether that code deserves to ship. As coding agents become more capable, that gap becomes a management problem as much as a model-selection problem.

The useful question is how quickly a team can turn a proposed change into a result it trusts. A faster first draft helps. It does not tell us how long someone will spend reproducing an issue, reviewing the change, checking an assumption or recovering from a bad deployment.

Recent research gives this distinction sharper edges. This article reads three primary sources, then proposes a small-team experiment. The experiment is our recommendation, not a benchmark we have run or a claim about TopxAI's performance.

What the new evidence actually establishes

In its September 6 research update, OpenAI reports growing use of coding agents inside its research organization, alongside more code and experiments. It also gives an unusually useful qualification: over half of successful tasks estimated to take a human four to eight hours involved at least one intervention. Its task-success analysis excludes uncertain outcomes. More available compute is another factor in the experiment-volume trend.

These are observations from a frontier lab, with its own infrastructure and task mix. They do not establish the same productivity gain for a five-person SaaS team. The report itself cautions that activity metrics are difficult to translate into overall research progress. That limitation deserves to travel with the headline.

My interpretation is that delegation is becoming useful at a wider range of task sizes while supervision remains part of the production process. Counting the delegation and omitting the supervision would describe only part of the work.

Two earlier engineering reports help explain what to measure. In February, Anthropic varied infrastructure resources while holding the model, harness and tasks constant on Terminal-Bench 2.0. It reported a six-percentage-point success-rate difference between strict and uncapped resource configurations. Moderate headroom reduced infrastructure failures; larger allocations could also enable more resource-intensive solution strategies. This is a result about that experimental setup, not evidence that any particular production model is six points better or worse.

Anthropic's January guide to agent evaluations makes another distinction: a transcript records what the agent did and said; an outcome is the final state of the environment. A convincing completion message is not sufficient evidence that the requested action happened. The guide also distinguishes tests that probe new capabilities from regression tests that protect behavior already expected to work.

A queue can hide inside a productivity gain

Consider a hypothetical team that previously brought four proposed changes to review each day and now brings twelve. If it can confidently validate six, unfinished review work accumulates. These numbers illustrate a queue; they are not observed customer results.

The immediate temptation is to add a second reviewing agent. That can be useful, but it changes the question to whether the reviewer catches consequential errors. A second fluent explanation does not resolve uncertainty by itself. Two agents may share an incorrect assumption about the specification, interpret the same incomplete test as sufficient, or overlook a behavior absent from the prompt.

The team needs a record of what made the change acceptable. For a routine refactor, that may be an unchanged external contract and a compact regression check. For a billing change, it may require reconciliation against known transactions. For a research task, it may be independent reproduction of the central result. The evidence should follow the failure consequence.

This also changes how to read a busy agent dashboard. More concurrent sessions can mean more useful exploration. It can also mean more abandoned branches, competing edits and work waiting for a decision. Measure how much accepted work leaves the system before optimizing how much draft work enters it.

Model comparisons need an environment contract

When evaluating two models, write down the conditions before looking at the scores. Include the repository revision, tool versions, dependencies, memory ceiling, time limit, retry behavior and allowed network access. Record the model identifier and evaluation date as well. If you change the harness between candidates, describe the comparison as one between complete configurations.

That is not pedantry. A timeout after an external write is fundamentally different from a syntax error before any write. A model that retries aggressively may look effective in a sandbox while producing duplicate actions in an application without deduplication. A benchmark that rewards the final answer without inspecting external state will miss that distinction.

For a small team, a useful task bundle contains ordinary successful cases and a few deliberately awkward ones: a missing dependency, an interrupted tool call, a stale instruction, an ambiguous requirement and an action that must not be repeated. Use a disposable environment and synthetic data for failure injection. Choose cases from your own workflow; a public leaderboard cannot tell you how often your users encounter these conditions.

Keep a small set of tasks out of prompt tuning. Otherwise the apparent improvement may only show that the instructions have learned your examples. Re-run important cases enough to see whether success is repeatable, and retain the failed attempts rather than reporting only the best run.

A worksheet a small team can use this week

Start with ten representative tasks as a manageable pilot, not a statistically conclusive benchmark. Write the expected outcome before running the agents. Keep the comparison small enough that someone can inspect every failure.

Record for each task Decision it supports
Acceptance condition and final evidence Did the requested result actually happen?
Time from start to accepted result Did the entire workflow become faster?
Human review and recovery minutes Where did the remaining work go?
Retries, interruptions and duplicate effects Is the behavior safe to repeat in this application?
Model, route, harness and environment versions Can we explain and reproduce the result?
Rejection reason or unresolved outcome What are we excluding from our success claim?

Use elapsed completion time and human effort as separate columns. A task can finish sooner while demanding more supervision. Either tradeoff may be acceptable, but a single speed score conceals the choice.

At the end of the pilot, sort failures into categories that lead to different fixes. A specification error needs a clearer decision. A dependency failure needs environment work. A tool-contract mismatch needs an integration correction. An incorrect solution needs stronger capability or better evidence. Buying a stronger model for every category is an expensive way to avoid diagnosis.

When comparing results, show the task counts and uncertain outcomes. With ten tasks, one result changes the percentage by ten points. That is enough to reveal obvious problems and shape a larger evaluation; it is too little to declare a universal winner.

When verification is not the bottleneck

The argument has limits. A team with strong acceptance tests and a large backlog of routine changes may still be constrained by implementation speed. In that setting, adding agent capacity can improve delivery without creating a review backlog. Open-ended design work may instead be blocked on deciding what should exist at all.

The practical test is where unfinished work waits. If changes sit for review, inspect validation capacity. If reviewers wait for implementations, inspect generation capacity. If both wait for product decisions, settle the specification. The bottleneck may move again after any of these interventions.

A useful operating habit is to revisit that diagnosis as models and workflows change. The same team can be implementation-limited on one task class and verification-limited on another. Route work according to those observed differences rather than imposing one universal agent workflow.

What this means for an API gateway

Disclosure: this is published by TopxAI, an AI API gateway. We benefit when developers use models through our service.

A common API can reduce integration work when trying different models. It does not make those models behaviorally interchangeable, validate an agent's decisions or guarantee the same outcome across routes. Those are separate questions that need evidence in the calling application.

If you are comparing configurations, our setup guides for Claude Code and Cline are an entry point. Keep the task set and acceptance conditions fixed, record the route, and inspect your actual outcomes; the usage log keeps the route and the charge of every request. The useful deliverable is a comparison you can act on.

For teams already deploying coding agents: where does work now wait longest—implementation, review, environment setup or deciding what counts as done? A concrete example, including what changed after adoption, would be more informative than another leaderboard screenshot.

Sources checked September 19, 2026. All three reports above are provider-authored; this article does not independently reproduce their experiments. The worksheet and workflow recommendations are TopxAI's analysis. No customer benchmark or measured productivity uplift is claimed.

Related