The Coding Agent Paradox
Thesis
Coding agents are simultaneously more capable and less useful than they appear. They can solve hard algorithmic problems at superhuman speed but haven’t improved merge rates in over a year. They generate vast amounts of code but that code may be unknowable to the humans who “wrote” it. The resolution: agents excel at narrow, quantifiable optimization but struggle with the broader judgment that software engineering actually requires.
The Evidence
What agents do well
Narrow quantifiable optimization:
- 910 experiments in 8 hours across 16 GPUs — 9x faster than sequential to hit same validation loss (Scaling Autoresearch)
- Matches published SOTA on algorithmic optimization problems — matching purpose-built evolutionary systems without any evolutionary scaffolding (AutoEvolver)
- Discovers emergent strategies (heterogeneous hardware routing, factorial search) not explicitly programmed
Speed at scale:
- Claude Code writing 20,000 lines in hours (a human bottleneck that would take weeks)
- 200+ Claude Code instances in parallel on shared codebases (AgentField/SWE-AF)
What agents don’t do well
Real software engineering:
- Merge rate (would a maintainer approve?) has not improved since early 2025 (Are LLMs Not Getting Better?)
- 50% horizon drops from 50 minutes → 8 minutes under the stricter “maintainable” criterion
- The gap between “passes tests” and “a human would accept this” is substantial
Sustained judgment:
- Agents satisfice — declare victory at local optima without awareness that better exists (AutoEvolver)
- One-sentence aspiration prompting unlocks qualitatively different strategies — agents have latent capability but don’t deploy it without prompting
- The gap between “narrow automatable tasks” and “the full arc of building good software” is large (Lambert)
The Cognitive Debt Problem
The paradox deepens: agents generate code faster than humans can understand it (Willison). The human bottleneck was a feature — it paced code production to human comprehension speed. Remove it without replacement and you get:
- Compound errors at machine speed
- A codebase nobody fully understands
- “Merchants of complexity”
The Resolution
Two complementary frames:
Harness engineering (Harness Engineering): Encode the judgment into the environment. Tests, linters, automated checks enforce discipline that humans previously provided implicitly. The agent writes code; the harness validates it. Human role becomes environment design, not implementation.
Aspiration discipline (AutoEvolver): Agents need explicit targets. “The SOTA is X, I believe you can beat it” — one sentence unlocked strategies the agent had but didn’t use. Managing aspiration is a new layer of human-agent collaboration.
Implications for Alex
Building AI products that survive a tightened market requires the agent to produce real value, not just impressive code volume. The right metrics aren’t “how much code was written” but “would a maintainer accept this?” or “does this generate measurable business value?” The token economy bubble analysis (Token Economy Bubble) connects here: exploration demand looks like productivity but isn’t.
Open Questions
- Is the merge rate plateau an artifact of the models that were benchmarked, or a real ceiling?
- Can aspiration prompting scale to complex, multi-month engineering projects?
- What’s the right harness design for different task types?
- Does recursive improvement work at the project level (agent improves its own harness)?