Agentbrisk

AI Agent Evaluation: Benchmarks, Custom Evals, and What Actually Matters

February 12, 2026 · Editorial Team · 10 min read · evaluationbenchmarksai-fundamentals

Evaluating an AI agent is harder than evaluating a language model. A model produces an output you can score. An agent takes a sequence of actions across a real or simulated environment, and the outcome depends on hundreds of intermediate decisions you never see directly. The final result might look correct while the path was a mess, or look wrong because one tool call failed at step eight of a fifteen-step chain. That complexity is what makes eval hard, and it's also why most published benchmark numbers are less useful than they appear.

This guide covers the public benchmarks worth understanding, how custom evals actually get built, what to measure beyond task success, and the mistakes teams make most often when they set up their first evaluation pipeline.

Why agent evaluation is genuinely hard

The core problem is that agents operate in feedback loops. Each action changes the state of the environment, and the next action is conditioned on that new state. That means a small error at step two can compound through the rest of a task in ways that a single output never would. You can't just check the final answer.

There's also the non-determinism problem. Run the same task twice with the same agent and the same prompt, and you'll often get different results, sometimes meaningfully different. That's partly temperature, partly differences in tool response timing, and partly the sensitivity of LLM reasoning to tiny context shifts. Any evaluation methodology that doesn't account for this will mislead you.

The third problem is that the metrics you can measure automatically, task completion rate, steps to completion, number of errors, are not always the metrics that matter in practice. An agent that completes 70% of tasks cleanly might be far more useful than one that completes 90% but produces output you can't trust without reviewing every line.

SWE-bench: the software engineering standard

SWE-bench is the most widely cited benchmark for coding agents. It was introduced by researchers at Princeton in 2023 and has since become the default way to compare agents on real-world software engineering tasks. The setup is concrete: take actual GitHub issues from popular open-source Python projects, strip out the fix, and ask an agent to resolve the issue. The agent's solution is tested against the real test suite that ships with the repository.

The score you see in leaderboards is the percentage of issues "resolved," meaning the agent's changes make the repo's tests pass. SWE-bench Verified is a curated subset of 500 issues where human annotators confirmed the problem statement was unambiguous and that a correct fix actually exists.

What makes SWE-bench credible is exactly what makes it limited. The tasks are from real codebases, which is good. But they're Python-only, all from a specific era of GitHub history, and they test a specific kind of task: applying a targeted patch to fix a described bug. That's not the same as building a feature from scratch, refactoring a codebase, or working on a project the agent has never seen before.

Devin was the first agent to cross 13% on SWE-bench when it launched, which at the time felt like a breakthrough. By early 2026, multiple agents score above 50% on SWE-bench Verified. The improvement is real, but the benchmark is also partially saturated: teams have started training on adjacent data, and the signal quality degrades as scores get higher.

WebArena: agents in a browser

WebArena tests something SWE-bench doesn't touch: whether an agent can complete tasks inside a real web browser against real websites. The benchmark provides locally hosted versions of Reddit, GitLab, a shopping site, and a few other web apps, then asks agents to complete tasks like "find the open issues assigned to user X" or "add a product to the cart and apply a coupon."

The appeal is that browser tasks require multi-step reasoning in a live, dynamic environment. The agent has to decide what to click, what to type, when to navigate, and how to handle pages that don't load as expected. It's a much harder setting than a code patch, and the failure modes are different.

WebArena scores have historically been low because the tasks are hard and the environment is sensitive to small errors. A score of 40% is considered strong. This is actually useful information: it tells you that current agents, even strong ones, fail a lot in interactive web environments. If your use case involves browser automation, benchmark scores here matter more than SWE-bench scores.

OpenHands (formerly OpenDevin) has invested heavily in this space and consistently publishes WebArena results alongside SWE-bench results, which is the right instinct. Reporting only one gives a misleading picture of where an agent actually works.

GAIA: general assistance tasks

GAIA is a benchmark from Meta that tests something closer to general-purpose assistance. The tasks involve research questions, file analysis, math, and web lookup, often chained together. The hardest GAIA questions require an agent to do several different things in sequence: read a PDF, look up a fact, do a calculation, and return a precise answer.

What's notable about GAIA is that the questions are hard for humans too, but in a specific way. A human could answer most of them given enough time and tools. The benchmark is checking whether an agent can do it efficiently and correctly. GAIA Level 1 tasks are achievable for good agents today; Level 3 tasks remain genuinely hard.

The main thing GAIA adds to the conversation is that it forces multi-modal, multi-step reasoning rather than the single-domain focus of SWE-bench or WebArena. An agent that scores well on all three is probably doing something general rather than overfitting to a specific task type.

Other benchmarks worth knowing

A few others come up regularly in technical papers and team reports.

AgentBench is a collection of eight task environments covering web, code, operating system, database, and knowledge graph tasks. It's useful for understanding an agent's breadth rather than depth in any one domain.

OSWorld tests desktop computer use: can an agent operate a real desktop OS, launch applications, move files, and complete tasks across GUI apps? This is relevant for agents marketed as "computer use" tools.

TAU-bench focuses on task completion in tool-augmented environments with realistic, multi-turn conversations. It's closer to what you'd see in a customer service or research assistant use case.

None of these should be treated as a single source of truth. The benchmarks that matter for your evaluation are the ones that most closely resemble your actual tasks.

How custom evals actually get built

Public benchmarks tell you how an agent compares to other agents on standardized tasks. They don't tell you whether an agent works for your specific application, your data, your users, and your acceptable error rate.

This is why teams that use agents seriously almost always build custom evals. The approach is consistent across organizations:

First, collect a ground truth dataset. Take 50 to 200 real tasks from your use case, ideally ones you've already handled manually and know the correct output for. These become your eval set. Don't use synthetic tasks for this unless you have no choice. Synthetic tasks don't capture the edge cases that matter.

Second, define what "correct" looks like for each task. This is where most teams get stuck. For code generation, you can run tests. For research summaries or customer responses, you need a rubric. Some teams use a separate LLM judge (a model that scores agent outputs against a rubric), which works reasonably well if the rubric is specific and the judge model is strong. Others use human review for a random sample and LLM review for everything else. Both approaches have failure modes.

Third, run the eval automatically on every significant change to the agent. If you only run evals before release, you'll catch regressions too late. A small regression that compounds across 10 model changes is much worse than any single regression caught immediately.

LangChain and similar frameworks have started building eval utilities directly into their tooling, which lowers the setup cost. But the hardest part, defining good ground truth and sensible rubrics, is still manual work that no framework automates well.

What to actually measure

Task success rate is the obvious metric but it's often the wrong primary metric. Here's what tends to matter more, depending on the use case.

Step efficiency. How many actions does the agent take to complete a task? A task that takes 30 tool calls when it should take 8 is either poorly prompted, using the wrong model, or running a bad chain design. Efficiency matters for cost and latency, and it's often a better leading indicator of model quality than raw success rate.

Error recovery. When something goes wrong mid-task, does the agent recover or does it spiral? Run tasks where a tool deliberately returns an error and measure how often the agent finds a correct alternative path versus getting stuck or producing garbage.

Calibration. Does the agent know when it's uncertain? An agent that confidently produces wrong answers is more dangerous than one that flags uncertainty. You can measure this by checking whether the agent's expressed confidence correlates with actual accuracy.

Output quality, not just output correctness. For many real tasks, the correct answer can be expressed many ways, and some of them are much more useful than others. Code that passes tests but is unreadable is technically correct but practically bad. Summaries that contain all the facts but are structured confusingly are correct but not useful.

Latency and cost per task. These are often ignored during development and become critical in production. An agent that costs $0.40 per task might be acceptable for a $50 service call. It's not acceptable for a $5 document review.

The context problem in long-horizon tasks

Most benchmarks test tasks that complete in under 20 steps. Most real-world agent failures happen in tasks that take longer than that. The context problem is this: as a task gets longer, the agent's earlier decisions stay in context but may get degraded or misattributed during reasoning. The agent starts making decisions that contradict earlier ones, or forgets constraints set at the start of the task.

This is worth testing explicitly if your use case involves long tasks. Take a task that takes 50+ steps and measure not just final success but consistency: does the agent honor constraints set in the first turn when it's on step 45? Does it reference earlier findings correctly?

OpenHands has done public ablation work on this and found significant degradation past certain context lengths even for frontier models. The problem is not fully solved, and any benchmark that only tests short tasks will miss it entirely.

Common eval mistakes

The most frequent mistake is evaluating on the training distribution. If you collect your eval set from the same source as your few-shot examples or your system prompt tuning, you'll overestimate performance. Real users will ask things your eval set didn't cover.

The second mistake is treating eval as a one-time gate rather than a continuous signal. Agents change, the underlying models get updated, tool schemas change, and what worked in January might silently regress in March. Eval only catches this if it runs continuously.

The third mistake is optimizing for benchmark score at the cost of reliability. This happens both with teams building on top of public models and with model providers themselves. When a specific benchmark becomes the target, the agent starts to overfit it in subtle ways. Publish multiple eval results, not just the one that looks best.

The fourth mistake is skipping failure mode analysis. When your agent fails, why did it fail? Was it a reasoning error, a tool error, a context error, a prompt ambiguity? If you only measure the final outcome, you can't fix the right thing. Add logging to your eval pipeline so every failure is categorized.

The role of human eval

Automated evals are necessary but not sufficient. Human evaluation is expensive and slow, which is why most teams minimize it. But there are things humans catch that automated evals miss, particularly in tone, appropriateness, and practical usefulness.

A reasonable hybrid is to run automated evals continuously at scale and human evals periodically (monthly or before major releases) on a stratified sample. Human evaluators should use a structured rubric, not a vague "is this good?" question, and should be calibrated against each other so the signal is consistent.

If you're using a separate LLM as a judge for automated quality scoring, validate it against human judgments regularly. LLM judges can drift, get fooled by confident-sounding but wrong outputs, and develop biases toward outputs that look similar to their own generation style.

Putting it together

Understanding how AI agents work at a technical level is the right foundation for understanding what evaluation is actually testing. If you haven't read the how do AI agents work guide yet, that context makes the evaluation criteria above easier to interpret.

For most teams, the right evaluation stack looks like this: run SWE-bench or WebArena numbers as a baseline check when choosing between agents. Build a custom eval set from real tasks as soon as you have 50 examples. Measure step efficiency and error recovery alongside task success. Log every failure and categorize the reason. Run human eval on a sample quarterly. Don't treat any single number as the answer.

Benchmarks are maps, not territory. They're useful for orientation, but the territory is your specific tasks, your users, and your acceptable failure rate. The teams that build good agents are the ones that take evaluation seriously from the start, before they have a production system, not after.

Search