Tag Your Failed Agent Runs Before You Re-Benchmark Another Model
Three vendors independently landed on decomposition and verification as the lever, which means the reliability gain nobody has claimed is sitting in your Makefile and your CI output format.
Classify the failure before you change the model
An agent run fails exactly three ways: the environment never came up, the test output was unreadable, or the logic was wrong. Only the third is a model problem. Most teams never separate the three, conclude the model is not good enough, and go shopping. The misattribution is the expensive part. Two of the three categories are fixed by work already in the muscle memory of any platform team.
Agent-legible has a spec, not a vibe. One command that provisions and verifies. Machine-readable test output in JSON, not scrollback. Seeded deterministic fixtures instead of shared staging state. Mocked external dependencies, so a run does not die on someone else's rate limit. Snapshot and restore, so a failed run does not poison the next. Every one of those helps human developers too, which puts a floor under the investment.
Decomposition shows up in three independent traces
Google's Chrome vulnerability pipeline is not one model doing one thing. Automated triage runs first, then a fixing agent drafts patches, then a critic agent reviews them, then test-writing agents verify across every supported platform. The last gate is machine-checked, which is the part that matters. Devshot reports the same direction from a different angle: decomposing an automated task into guided steps succeeded 100% of the time versus 50% one-shot, with higher-quality output. AgentRadio, per AINews, moved SWE-Atlas QnA from 32.3% to 62.1% using four agents over asynchronous messaging, beating a stronger single-model baseline. Three unrelated systems, one finding: the bottleneck is orchestration, not model capability.
The costs are specific and they arrive early. Async message ordering is non-deterministic. Debugging fan-out without trace-level observability is misery. Tracing goes in before the second agent does.
Where agents are measurably unsafe
| Role | Evidence | Verdict |
|---|---|---|
| Patch generation behind a critic and test gate | Google's Chrome pipeline in production | Adopt — verification is machine-checkable |
| Iterating against a strict CI checklist | 100% vs 50% decomposition result | Adopt — CI is the objective function |
| Root-cause diagnosis during an incident | 25.3% accuracy; one model fabricated causes 40% of the time | Avoid — evidence gathering only |
| Unbounded execution on mechanical work | Amazon: $1.8M, 860% over budget | Avoid — hard ceilings first |
The review queue is the next queue
GitHub shipped Stacked Pull Requests in public preview. The detail worth reading is that existing reviews, status checks and merge requirements keep working, which means the integration problem third-party stacked-diff tools kept re-implementing is now native. Good engineering. The announcement skips two failure modes. CI fan-out: required checks on a five-PR stack cost five times the build minutes of one large PR. Mid-stack rebase cascades: a reviewer's change at layer two invalidates everything above it. Cap stack depth at three or four. Put the highest-risk change at the bottom so it fails early.
One correlation risk nobody in the available coverage named. If the same model family generates the code, reviews the diff and writes the tests, that is a second opinion from the same brain. Shared priors, shared blind spots. Decorrelating costs a config change.
If your coding agents are not merging code, the bug is probably in your build harness, not your model choice.
What to do
Instrument agent run failures into three tagged categories — environment setup, test harness, logic — this sprint, then fix the largest category first
Ship a one-command agent-verify target with JSON test output, seeded fixtures and mocked external dependencies on your highest-churn service this sprint
Split the model that generates code from the model that reviews it in CI, and pilot native stacked PRs on one non-release-critical repo measuring CI minutes per merged change