Evaluating Agent Performance with Benchmarks
Evaluating an agent means finding the specific ways it can fail, then measuring how often each one happens. A single failure shows that a problem is possible; a count across many runs shows how much it matters.
A Fluent Answer Is Not Enough
Suppose an agent is asked to plan a task, carry it out using a set of tools, and report back. The answer it gives looks fluent and confident. How would you know whether the agent actually did its job well? A confident final answer hides the steps that produced it, and a polished report can sit on top of a plan that was wrong from the start.
The starting point for answering that question is not a score on a leaderboard. It is a list of the specific ways the agent can go wrong. In this sense, evaluation is the work of detecting failures. This article explains the main categories of agent failure, shows how a tool use failure differs from a badly formed or badly valued tool call, and walks through a plan call by call to find where it breaks.
Evaluating an agent means finding the specific ways it can fail, then measuring how often each one happens. A single failure shows that a problem is possible; a count across many runs shows how much it matters.
Why Agents Fail in More Places
The more complex the task an agent performs, the more places there are where something can break. A single model answering one question has relatively few points of failure. An agent that decides which steps to take, chooses tools, passes arguments to them, and works through many actions has many more. This is why agents need their own treatment in evaluation rather than being judged only by the standards that apply to any AI application.
Beyond the failure modes that every AI application shares, agents have failures that come from three sources: planning, tool execution, and efficiency. The diagram below arranges these as a family tree under the heading of agent failure modes. The three branches are siblings, and each one can be studied and measured on its own.
Planning and Tool Use Failure
Planning is the stage where an agent decides which steps to take and which tools to use. The source is direct about how this goes: planning is hard and can fail in many ways. Of those ways, the most common is tool use failure.
A tool use failure is a planning error in which the agent's plan involves a tool incorrectly, either by reaching for a tool that the agent does not actually have, or by calling a tool that does exist in the wrong way.
The planning category breaks down further. Tool use failure sits under planning, and three specific ways of misusing tools sit under tool use failure. Reading the hierarchy from the top down gives you a checklist to run when you review a plan. Each of the three leaves is a distinct mistake that can appear in a plan. They are worth separating because they are caught in different ways, and because the fix for one does not automatically fix the others.
The first leaf is a plan that names a tool not in the agent's inventory. The second and third leaves both involve a valid tool that is called with bad arguments, and these two are easy to confuse. The next section sets them side by side.
Three Ways a Tool Call Goes Wrong
To make the three planning errors concrete, consider a small inventory with two tools. The first tool is get_weather, which takes a city and a date. The second is book_hotel, which takes a city, a check-in date, and a number of nights. Every call the agent plans can be compared against this inventory.
The three columns in the comparison show the distinction the source draws. In the first column, the plan reaches for a tool that does not exist in the inventory. In the second, the tool exists, but the call is structurally wrong because a required parameter is absent. In the third, the call has the right structure, and only the content is wrong. A valid tool called with invalid parameters is a structure problem. A valid tool called with incorrect parameter values is a content problem.
Structural Errors Versus Value Errors
The distinction between the two parameter-related errors affects how each one is detected. The table below summarizes the difference in terms of what is wrong, how it is found, and what it takes to confirm it.
| Property | Structural error | Value error |
|---|---|---|
| What is wrong | The shape of the call: missing, extra, or wrongly typed parameters | The content of a parameter: right shape, wrong for the task |
| Typical example | book_hotel called without the nights parameter | book_hotel called with nights=100 for a 2-night trip |
| How it is caught | Compare the call against the tool's signature | Compare the value against what the task actually needs |
| Can a mechanical check find it? | Often yes | No, a check of form alone will pass it |
Two parameter-related errors compared
Tracing a Four-Call Plan
Now apply the distinctions to a whole plan. The task is to check the weather in Lisbon on June 10, 2025 and then book a hotel there for a two-night stay starting that day. The inventory contains get_weather and book_hotel, as described above. The agent produces four planned calls, in order. The goal is to trace the plan call by call and find the first place where it would fail.
What do you think happens?
Looking only at the four calls, which one is the first point where the plan would fail?
Reveal answer
Call 2, book_flight, which is not in the inventory
Call 1 is sound: the tool exists and its values match the task. Call 2 names a tool the agent does not have, so the plan breaks there. Calls 3 and 4 also contain errors, but the first failure in the trace is call 2.
Checking Each Call Against the Inventory and the Task
Trace the four planned calls for a two-night hotel booking in Lisbon and identify each failure, its category, and whether it is the first failure in the plan.
- 1Call 1: get_weather(city=Lisbon, date=2025-06-10)
The tool is in the inventory, the required city and date are present, and the values match the task. No failure.
- 2Call 2: book_flight(...)
The name
book_flightis not in the inventory. This is a tool use failure of the first kind. The plan breaks here, because the agent cannot carry out an action with a tool it does not have. - 3Call 3: book_hotel(city=Lisbon, check_in=2025-06-10)
The tool exists, but the required nights parameter is missing. Comparing the call with the tool's signature reveals this immediately. This is a structural error, a valid tool called with invalid parameters.
- 4Call 4: book_hotel(city=Lisbon, check_in=2025-06-10, nights=100)
The structure now matches the signature, so the mechanical check passes. The value 100 is wrong for a stay of two nights. This is a value error, and it is only visible when the value is compared with what the task demands.
The first failure is call 2, a tool use failure in which the planned tool is not in the inventory. Calls 3 and 4 each carry a separate error: one structural and one a value error. Because the plan has already failed at call 2, the plan as a whole cannot be counted as sound, though a reviewer still checks each remaining call for its own errors.
Mistakes When Reviewing a Plan
Common mistake Treating a plan as correct because every call matches the tool's signature
What it looks likeCall 4 in the trace passes every signature check, yet it asks for 100 nights.
Why it failsA signature check is structural. It cannot tell whether a well-formed value is right for the task.
Do this insteadAfter the structural check, compare each value with what the task actually requires.
Common mistake Treating the two parameter errors as one kind of error
What it looks likeCalling both a missing nights argument and a nights value of 100 a bad call.
Why it failsThe fixes differ. A missing argument is repaired by matching the signature; a bad value is repaired by checking the task.
Do this insteadLabel each parameter error as structural or value before deciding how to fix it.
Common mistake Judging the whole plan by its final answer
What it looks likeThe agent reports a confident summary of a trip even though call 2 named a tool that does not exist.
Why it failsA fluent report can sit on top of a plan that failed early, and the report hides the failure.
Do this insteadTrace the plan call by call and locate the first failure before accepting the result.
Common mistake Assuming one passing run shows the agent is reliable
Why Failure Modes Must Be Measured
Identifying failure modes is only half of evaluation. The source's instruction is to identify an agent's failure modes and then measure how often each one happens. The claim that tool use is the most common planning failure is a claim about frequency. It can only be checked by counting occurrences across many runs. A single failed run tells you that a failure is possible; a count across runs tells you how much it matters.
Measurement is also what makes the three categories useful. Planning, tool execution, and efficiency are separate branches, so each one can be counted separately. An evaluation that reports only a single overall score would hide which branch is responsible for the failures. Counting per category tells you where the agent needs work.
The source points to external resources for this kind of measurement, including the Berkeley Function Calling Leaderboard, the AgentOps evaluation harness, and the TravelPlanner benchmark. It also mentions a simple benchmark the author built to illustrate these failure modes. The source does not describe how these resources work in detail, so treat them as places to look rather than as descriptions of their methods.
Classify Three Planned Calls
Using the same inventory of get_weather(city, date) and book_hotel(city, check_in, nights), classify each of these three planned calls as sound, a tool use failure (tool not in inventory), a structural error (invalid parameters), or a value error (incorrect parameter values). The task is a two-night hotel stay in Porto starting June 12, 2025, with the weather checked first. Call A: get_weather(city=Porto, date=2025-06-12). Call B: get_forecast(city=Porto, date=2025-06-12). Call C: book_hotel(city=Porto, check_in=2025-06-12, nights=20).
Hints
- Check the tool name first. Is it in the inventory at all?
- For a real tool, compare the arguments against the signature before judging the values.
- A well-formed call can still be wrong for the task. Compare the value with the number of nights the task needs.
Key Takeaways
- Agent failures come from three sources: planning, tool execution, and efficiency, and each can be studied and measured on its own.
- Planning failures are the most discussed category, and tool use failure is their most common form.
- A tool use failure can mean a plan names a tool not in the inventory, a valid tool is called with invalid parameters, or a valid tool is called with incorrect parameter values.
- Structural parameter errors can often be caught by comparing a call against the tool's signature, while value errors require knowing what the task actually needs.
- Failure modes must be counted across many runs, because a single failure shows only that a problem is possible, not how much it matters.