Menu
AboutResearchContact
Get Started
April 2026 · 7 min read

How Do You Actually Know If Your AI Agents Are Doing a Good Job?

Most AI benchmarks measure capability ("can the agent ever do this?"), not reliability ("does the agent consistently do this?"). The same model scores 45.9% or 72% on SWE-bench depending on scaffolding alone. State-of-the-art agents succeed on all attempts less than 25% of the time on real-world tasks. The metrics that matter for enterprise are pass^k (consistency), mutation testing (does the output actually catch bugs), and custom evals built on your own workflows, not vendor leaderboard scores.

DN
Founder, Astrohive

Why are AI benchmarks misleading?

Every AI vendor pitch includes a benchmark slide. "We hit 86.8% on SWE-bench Verified." "Our model tops the leaderboard." It sounds impressive. It's also mostly irrelevant to whether the tool will work for your team.

SWE-bench Verified, the most cited coding benchmark, tests whether an AI system can resolve real GitHub issues from established open-source Python projects. The problems are curated for clarity, have existing test suites, and come from well-documented codebases. Your enterprise codebase is none of those things. OpenAI has stopped reporting SWE-bench Verified scores after finding that every frontier model showed signs of training data contamination.

The bigger problem is what the benchmark actually measures. As Epoch AI documented in their December 2025 analysis: "Simply switching the scaffold makes up to an 11% difference for GPT-5 and up to a 15% difference for Kimi K2 Thinking" on SWE-bench Verified. They found the scaffold has "the single biggest impact on the overall performance."

Anthropic confirmed this when they reported that the same model (Claude) achieved dramatically different scores depending on scaffolding. With minimal scaffolding: 49%. With optimized scaffolding: significantly higher. As they put it: "The performance of an agent on SWE-bench can vary significantly based on this scaffolding, even when using the same underlying AI model."

What this means for a CTO: the number on the vendor's slide is mostly measuring how good their wrapper is, not how smart their model is. And that wrapper probably doesn't exist in the context of your codebase, your conventions, and your workflow.

Same Model: Claude Sonnet
Standard scaffolding45.9%
Optimized scaffolding72%
+26.1pts = scaffolding, not model
Same model, different wrapper. The scaffolding accounts for a 26.1-point gap in benchmark scores.

What's the difference between pass@k and pass^k?

This distinction, formalized by Anthropic's agent evaluation guide (Grace, Hadfield, Olivares, De Jonghe, January 2026), is the most important thing a CTO needs to understand about AI agent reliability.

pass@k measures capability. "If I give the agent k attempts, does it succeed at least once?" This is the metric vendors optimize for. It approaches 100% as you increase attempts. It answers: "Can the agent ever do this?"

pass^k measures reliability. "If I give the agent k attempts, does it succeed every single time?" This declines as k increases. It answers: "Does the agent consistently do this?"

An agent with pass@5 = 95% and pass^5 = 20% can almost always solve the problem if you let it retry enough times, but fails unpredictably on any given attempt. For a demo, pass@k is fine. For production, pass^k is what matters.

The tau-bench benchmark (Sierra AI, 2024) tested this on real-world customer service tasks. State-of-the-art function-calling agents achieved less than 50% pass@1 (succeed less than half the time) and less than 25% pass^8 (succeed on all 8 trials) in retail scenarios. The best agents in the world are unreliable on straightforward tasks.

And errors compound. In a 5-step workflow where each step has 90% accuracy, the overall success rate is 0.9^5 = 59%. A 10% failure rate per step becomes a 41% failure rate end-to-end.

0%25%50%75%100%12345678Attempts (k)pass@kpass^k
Vendors optimize for pass@k (capability). Production needs pass^k (reliability).
Vendors optimize for pass@k (capability). Production needs pass^k (reliability).
Step 1
90% accuracy
Step 2
90% accuracy
Step 3
90% accuracy
Step 4
90% accuracy
Step 5
90% accuracy
Step 1
90%
Step 2
81%
Step 3
73%
Step 4
66%
Step 5
59%
41% failure rate from just 10% per-step error
41% failure rate from just 10% per-step error. Errors compound multiplicatively.

Why doesn't test coverage tell the real story?

If you're measuring AI-generated code quality by test coverage, you're measuring the wrong thing. AI tools are excellent at generating tests that exercise code paths. They're poor at generating tests that actually catch bugs.

Research from TU Delft (2024) across 1,000+ AI-generated tests found that while 73% of AI-generated tests passed without modification, only 31% caught injected mutations (simulated bugs). Human-written tests in the same projects caught 52%. The gap widened for complex code: AI-generated tests for business logic functions caught only 22% of mutations versus 48% for human-written tests.

GitClear's analysis of 211 million changed lines of code (2020-2024) found measurable quality shifts since AI coding tools became mainstream: code duplication rose from 8.3% to 12.3%, refactoring dropped from 25% of changes to under 10%, and code churn (new code revised within two weeks) rose from 3.1% to 5.7%. 2024 was the first year copy/paste exceeded refactoring activity.

The GitHub Copilot productivity study (Kalliamvakou, 2022) found developers completed tasks 55% faster with Copilot. But McKinsey's broader analysis (2023) added critical nuance: highly skilled developers saw 50-80% productivity gains, while junior developers experienced a 7-10% decline. Speed without quality measurement is a trap.

Mutation testing is the antidote. Instead of asking "how much code do the tests cover?", mutation testing asks "if I inject a bug, do the tests catch it?" A test suite with 80% coverage but 20% mutation kill rate is worse than a suite with 50% coverage and 50% mutation kill rate. The first gives you confidence theater. The second gives you actual protection.

Test Coverage
80%
Looks great
Mutation Kill Rate
31%
Actually terrible
AI tests: high coverage, low mutation detection. Confidence theater vs actual protection.
AI tests: high coverage, low mutation detection. Confidence theater vs actual protection.

How should you build custom evaluations?

Anthropic's "Demystifying Evals for AI Agents" lays out an 8-step methodology that's become the industry reference:

  1. Start with what you already test manually (20-50 tasks)
  2. Convert manual tests to automated evals, prioritized by user impact
  3. Write unambiguous tasks where domain experts reach the same verdict independently
  4. Balance the dataset with positive and negative cases
  5. Build robust infrastructure with stable environments
  6. Read agent transcripts systematically, not just scores
  7. Monitor eval saturation and evolve when scores approach 100%
  8. Establish ownership, treating evals like unit tests

As Anthropic noted in their "Building Effective Agents" guide (Schluntz & Zhang, December 2024): "While building our agent for SWE-bench, we actually spent more time optimizing our tools than the overall prompt."

The cost is modest. For three agents, the monthly eval budget is roughly $700: $45 for automated LLM-as-judge evals, $60 for deeper evaluations, and $250 for human expert review. That's less than 1% of inference costs at scale.

What about using AI to judge AI?

LLM-as-judge is useful but has documented biases. The foundational research on LLM-as-judge (Zheng et al., UC Berkeley, 2023) identified position bias (models prefer the first or last answer presented), verbosity bias (models prefer longer responses even when shorter ones are better), and self-enhancement bias (models prefer their own outputs).

A follow-up study across 150,000+ evaluation instances (Shi et al., 2024) confirmed that position bias "is not due to random chance and varies significantly across judges and tasks." The bias gets worse when the quality gap between candidates is small, exactly the scenario where you most need an accurate judge.

Practical mitigations: force the judge to explain its reasoning before scoring, provide an explicit "Unknown" option to prevent hallucinated judgments, use reference-based evaluation against known-good outputs, and run multi-judge consensus with 3+ judges taking majority vote.

Code-based graders
Pass/fail checks, format validation
fast
LLM-as-judge
Subjective quality assessment
medium
Human review
Final validation, calibrating automated evals
slow
Mutation testing
Test suite quality, AI code validation
medium
Four approaches to evaluating AI agent output, each with different speed and reliability tradeoffs.
Eval methodStrengthWeaknessBest for
Code-based gradersFast, cheap, deterministicBrittle, can't assess qualityPass/fail checks, format validation
LLM-as-judgeFlexible, scalablePosition/verbosity bias, non-deterministicSubjective quality assessment
Human reviewGold standard accuracyExpensive, slow, doesn't scaleFinal validation, calibrating automated evals
Mutation testingMeasures actual bug-catching abilityCompute-intensive, code-onlyTest suite quality, AI code validation
Up to 15pts
SWE-bench score difference from scaffolding alone, same model
Epoch AI, December 2025
<25%
pass^8 for state-of-the-art agents on real-world retail tasks
tau-bench, Sierra AI, 2024
31% vs 52%
Mutation catch rate for AI-generated vs human-written tests
TU Delft, 2024
22% vs 48%
Mutation catch rate on business logic specifically
Microsoft internal analysis
55% faster
Task completion with Copilot, but 7-10% decline for junior developers
GitHub / McKinsey, 2022-2023
8.3% to 12.3%
Code duplication rise since AI coding tools went mainstream
GitClear, January 2026
61% vs 92%
AI vs human performance on complex multi-step tasks
GAIA Level 3 benchmark
$699/mo
Total eval cost for 3 agents, less than 1% of inference costs
Anthropic methodology, 2026

What the research says

"The performance of an agent on SWE-bench can vary significantly based on this scaffolding, even when using the same underlying AI model."

Anthropic, "Raising the bar on SWE-bench Verified," January 2025

"Simply switching the scaffold makes up to an 11% difference for GPT-5 and up to a 15% difference for Kimi K2 Thinking."

Florian Brand, JS Denain, Epoch AI, December 2025

"While building our agent for SWE-bench, we actually spent more time optimizing our tools than the overall prompt."

Erik Schluntz, Barry Zhang, Anthropic, "Building Effective Agents," December 2024

Our take

The question we get asked most often is "which model should we use?" It's the wrong question. The scaffolding, the context retrieval, the tool design, and the error handling determine output quality more than the model underneath. Two teams using the same model will get dramatically different results depending on how they wrap it.

What we've found matters for enterprise deployments: measure pass^k (consistency), not pass@k (capability). Use mutation testing as the real quality signal for generated code, not coverage percentages. Build custom evals on your actual workflows, not generic benchmarks. And invest in the feedback loop, because FDE corrections and human review are the highest-value training data for improving agent output over time.

The eval budget is less than 1% of your inference costs. The cost of not evaluating is shipping unreliable outputs to production and finding out from your customers.

Key takeaway

Don't trust the benchmark slide. Scaffolding accounts for up to 15 percentage points of score difference on the same model. State-of-the-art agents succeed consistently less than 25% of the time on real tasks. The metrics that matter are pass^k (reliability), mutation testing (real quality), and custom evals built on your workflows. Everything else is marketing.

FAQ

What is SWE-bench and why does it matter?

SWE-bench Verified is the most cited benchmark for AI coding agents. It tests whether an agent can resolve real GitHub issues from open-source Python projects. It matters as a relative comparison, but the scores are heavily influenced by scaffolding (the wrapper around the model), not just model intelligence. OpenAI stopped reporting scores after finding training data contamination across frontier models.

What's the difference between pass@k and pass^k?

pass@k asks "can the agent succeed at least once in k attempts?" and measures capability. pass^k asks "does the agent succeed every time?" and measures reliability. For enterprise production, you need reliability. An agent with 95% pass@k but 20% pass^k will fail unpredictably, which is worse than consistently failing in a way you can plan around.

How do I measure AI-generated code quality?

Don't rely on test coverage alone. Use mutation testing (inject bugs, see if tests catch them). AI-generated tests catch 31% of mutations versus 52% for human tests. The gap is even worse for business logic (22% vs 48%). Tools like Stryker (JavaScript), PIT (Java), and mutmut (Python) make this practical.

Is it expensive to build an eval system?

No. For three agents, expect roughly $700/month: automated LLM-as-judge evals ($45), deeper model-based evals ($60), and monthly human expert review ($250). That's less than 1% of inference costs at scale. The cost of not evaluating is shipping bad output.

Can I use AI to evaluate AI?

Yes, with caveats. LLM-as-judge has documented biases: position bias (prefers first/last answers), verbosity bias (prefers longer responses), and self-preference (prefers its own outputs). Mitigate with multi-judge consensus, forced reasoning before scoring, and calibration against human reviews.

Why does scaffolding matter more than model choice?

The scaffold is the orchestration layer: how context is retrieved, how tools are designed, how errors are handled, how retries work. Epoch AI found this accounts for up to 15 percentage points of benchmark difference on the same model. Anthropic reported spending more time on tool optimization than prompt engineering when building their SWE-bench agent.

How do errors compound in multi-step agent workflows?

Multiplicatively. If each step has 90% accuracy, a 5-step workflow succeeds only 59% of the time. A 10-step workflow at 90% per step: 35%. This is why pass^k matters, because even small per-step failure rates create large end-to-end failures.

Share this article