Evaluating Coding Agents — SWE-bench and Measuring Real Capability

How good is a coding agent, really? The honest answer requires evaluation — measuring whether an agent can actually resolve real software tasks, not just produce plausible-looking code. Benchmarks like SWE-bench made coding-agent progress measurable by testing agents on real GitHub issues verified by real tests, and understanding how coding agents are evaluated (and the pitfalls) is how you cut through the hype to what agents can actually do. This post is about measuring coding-agent capability honestly.

Posts 1–6 built how coding agents work; this post is how we measure them. Evaluation matters because capability claims are everywhere and mostly unverified, and because code’s verifiability (post 1) makes rigorous evaluation uniquely possible here. It connects to the blog’s AI evaluation coverage, specialized for coding agents.

Why coding agents are especially evaluable

Coding agents are, happily, one of the easiest AI systems to evaluate rigorously — for the same reason they work at all: code is verifiable (post 1). This makes evaluation objective in a way most AI eval isn’t:

This is why coding-agent benchmarks became rigorous and influential: the domain affords objective, realistic evaluation. The headline benchmark, SWE-bench, embodies this — it gives agents real GitHub issues from real open-source projects and checks whether the agent’s fix makes the project’s real tests pass. It measures the thing that actually matters (can the agent resolve a genuine issue, test-verified?), which is why “% of SWE-bench resolved” became the standard coding-agent capability metric and a driver of rapid, measurable progress. The ability to put a real, test-verified number on coding-agent capability is itself a reason the field advanced so fast — progress you can measure is progress you can optimize.

What’s measured, and the pitfalls

Coding-agent evaluation measures several things, each with pitfalls to know:

So reading coding-agent capability claims requires the eval skepticism the blog preaches throughout: what tasks, verified how, contaminated or not, at what cost, and does it generalize to my work?

Evaluating for your use — and the honest picture

Beyond benchmark numbers, the practical question is how good is a coding agent for your work, and evaluation there is its own discipline:

The through-line: coding agents are uniquely evaluable because code is verifiable — you can measure task resolution by tests (objective pass/fail, not fuzzy opinion) on real tasks (GitHub issues with real tests), which is why SWE-bench (“% of real, test-verified issues resolved”) became the standard metric and drove measurable progress. But reading the numbers needs skepticism: beware contamination (benchmark tasks in training = memorization not capability — growing concern), overfitting to the benchmark (Goodhart — may not generalize to your work), weak test suites (passing ≠ correct), and cherry-picked demos; and measure cost/efficiency, not just resolution. For your use, your real tasks are the real benchmark — evaluate resolution and solution quality and review burden (useful-work-per-review-effort). The honest picture: impressive, improving fast, genuinely useful within their reliable zone, but less universally capable than headline numbers suggest — so rigorous, on-your-tasks, benchmark-skeptical evaluation is how you know what to rely on.

Key takeaways

Further reading

Sources & References