Skip to lesson

NVIDIANVIDIA-Certified Professional: Agentic AI2026-102.6 Evaluate and refine agent decision-making strategies.

Score tool choices and trajectories separately

Completed by the knowledge check

Learning objective

Evaluate tool-selection accuracy and trajectory quality.

Core idea

An agent can produce a correct answer after choosing an unnecessary tool, using the wrong account identifier, or repeating a successful operation. Answer correctness measures the destination. Tool-selection accuracy measures a decision at a particular state. Trajectory quality measures whether the sequence of decisions reaches the destination appropriately.

Score all three separately. Otherwise, a higher answer score can hide a deterioration in action selection, and a low trajectory score cannot tell you whether to repair the tool description, the arguments, or the stopping behavior. See 3.1 for evaluation-pipeline design; this lesson defines what you measure inside an execution.

How it works

Define a correct choice at a known state

Create evaluation cases that specify the request, available tools, observations already received, and acceptable next actions. Include cases where the correct choice is to ask for missing information or finish without a tool. If the denominator contains only executed calls, an agent that always calls something escapes the test of whether a call was needed.

Define your tool-selection score as the number of evaluated states with an acceptable selected action divided by the number of evaluated states. This is a team-defined metric, not a built-in NeMo Agent Toolkit metric name. Record an explicit no-call outcome alongside tool names. Define argument correctness separately: selecting lookup_invoice with another customer’s identifier counts as a selection success under a name-only definition, yet it is an operational failure.

Where several actions are valid, annotate an acceptable set and the conditions that distinguish its members. Two independent lookups can occur in either order. A refund before checking eligibility cannot be made acceptable by treating every permutation as equivalent. The reference is a set of constraints on decisions, rather than a single transcript every successful run must imitate.

Connect the rubric to execution records

NeMo Agent Toolkit runs configuration-driven evaluation with nat eval --config_file=EVAL_CONFIG_PATH; replace EVAL_CONFIG_PATH with your evaluation configuration. The full command runtime needs nvidia-nat[eval]. Its workflow_output.json contains per-case question, answer, generated_answer, and intermediate_steps, so you can compare the returned answer with the actions that produced it.

For explicit checks, implement a custom evaluator registered with @register_evaluator. Its asynchronous evaluate_item receives an EvalInputItem and returns an EvalOutputItem. The input exposes trajectory, optional expected_trajectory, input_obj, output_obj, and expected_output_obj. Return the case id, a numeric score, and reasoning explaining the failed condition. Use separate evaluators for tool identity and arguments when you need independent aggregate scores.

For canonical ATIF trajectories, subclass AtifBaseEvaluator and implement evaluate_atif_item; trajectory steps expose tool_calls for tool-level scoring. These helper classes and ATIF-specific models remain evaluation subsystem APIs, while registration, configuration, and EvaluatorInfo are stable public plugin APIs. Registered ATIF evaluators require nvidia-nat-eval[full]; standalone ATIF harness usage needs only nvidia-nat-eval.

Store case annotations such as acceptable tools and required prerequisites in dataset metadata. Set eval.general.dataset.pass_full_entry: true to expose those fields through EvalInputItem.full_dataset_entry. Your evaluator translates them into assertions; adding metadata alone does not make the toolkit enforce the rubric.

Check that your selected workflow integration actually captures the tool events the evaluator needs. An empty trajectory is missing observation data, not proof that no tool ran. The output filter eval.general.output.workflow_output_step_filter controls which intermediate steps appear in the output file. The default is [LLM_END, TOOL_END]; the documented example adds TOOL_START. Keep the records needed to inspect arguments and correlate returned results before interpreting a score.

Judge the path without hiding exact failures

The toolkit’s built-in _type: trajectory evaluator uses a judge LLM, selected through llm_name under eval.evaluators, to assess intermediate steps while considering available tools. NVIDIA documents a score from zero to one and describes this evaluator as LangChain/LangGraph agent trajectory evaluation. Do not assume that selecting this evaluator gives every external agent integration equivalent trajectory coverage.

Use the judge for qualities that need contextual judgment: whether a lookup was useful, whether the agent acted on the observation, and whether it stopped with a sufficient answer. Keep exact prerequisites, tool names, and argument checks deterministic in your custom evaluators. A judge score of 0.9 is not a statement that 90% of tool selections were correct.

Inspect disagreements between the judge and the explicit checks. A judge may approve an economical answer while a prerequisite assertion catches a skipped eligibility lookup. Preserve that failure even if the final answer happens to match. Your evaluator’s reasoning should identify the failing step, not merely describe the answer as poor.

The custom evaluators and the judge score the trajectory separately, and you inspect where they disagree.

The custom evaluators and the judge score the trajectory separately, and you inspect where they disagreeThe trajectory feeds two custom evaluators, one for tool identity and one for arguments, which also receive dataset metadata exposed through pass_full_entry. The judge LLM assesses the intermediate steps of the trajectory. The explicit checks and the judge then meet at one step: inspect disagreements.custom evaluatorspass_full_entrypass_full_entryassess intermediate stepstool identityargumentstrajectorydataset metadatajudge LLMInspectdisagreements

Key distinctions and trade-offs

These measurements answer different questions:

MeasurementUnit being scoredWhat it detectsWhat it can miss
Tool-selection accuracyA decision at a specified stateWrong tool or unnecessary callIncorrect arguments and later misuse
Argument correctnessA selected tool’s inputsWrong identifier, missing field, invalid valueWhether the tool was needed
Trajectory qualityThe execution sequenceRedundancy, missed prerequisites, failure to use resultsExact failures absent from its rubric
Answer correctnessThe final resultWrong or incomplete business outcomeWasteful or inappropriate intermediate actions

More detailed annotation costs domain-expert time, but gives a targeted repair. A single judge score is cheaper to introduce and harder to diagnose. An exact transcript match is easy to compute but rejects valid alternative paths. Prefer invariant prerequisites and allowed alternatives when the workflow permits them.

Architecture / decision scenario

In an illustrative replay of 200 invoice questions, an accounts-payable assistant returns 180 correct answers, but only 150 first actions match the acceptable tool set. Thirty cases ask about status yet call a payment-mutation tool; eight of those also use an incorrect invoice identifier. Successful answers do not erase those selections.

The finance automation owner rejects the proposal to release on the 90% answer score alone. The evaluation engineer adds separate custom evaluators for first-action identity and argument scope, using metadata exposed through pass_full_entry. A trajectory judge assesses redundant status checks and stopping behavior. These outputs distinguish description confusion from identifier extraction and repeated calls.

The competing proposal is to require one exact reference sequence for every question. The team rejects it because two read-only lookups can legitimately be reversed. Instead, the reference annotation permits both orders but requires the eligibility result before any mutation. The owner chooses a description repair for the wrong-tool cases and an argument-validation repair for the eight identifier failures, then reruns the same cases. The release decision considers tool identity, argument scope, trajectory quality, and answer correctness separately.

Common exam traps

  • Treating a correct final answer as proof of correct action selection.
  • Calling a judge’s trajectory score a tool-selection percentage.
  • Penalizing every difference from one reference sequence.
  • Counting only executed calls and omitting no-call decisions.
  • Assuming an absent tool event proves that the agent did not execute a tool.

Where the exam guide differs

Note:

The study guide’s suggested readings say “NVIDIA Agent Intelligence Toolkit (1.1.0).” The evaluation documentation uses NeMo Agent Toolkit and the nat eval command. Read an exam reference to the earlier toolkit name as the workflow evaluation role; use the documented NeMo Agent Toolkit interfaces when implementing it.

What to remember

Evaluate the selected action, its arguments, the execution sequence, and the final answer as distinct objects. Combine explicit custom assertions with a trajectory judge, preserve valid alternative paths, and inspect missing instrumentation before trusting a score.

Knowledge check

References