AG-010Agent · Using toolslayaeval.ToolNecessity
Tool Necessity
Was calling a tool really needed here?
Simulation state:
When it passes
Needed — it knew nothing yet.
Threshold satisfied: evaluation score >= 0.50.
When it fails
Not needed — it already knew.
Violation detected: execution flagged for human review or fallback routing.
SDK Specification
| Parameter | Value | Description |
|---|---|---|
| Class | ToolNecessity | Python evaluator class in layaeval |
| Required Fields | "task", "available_context", "tool_call" | Arguments expected in the call signature |
| Default Threshold | >= 0.50 | Passes when quality score is at or above this value |
| Category | Agent Evaluation | Using tools (Right tool, right inputs, results actually used.) |
Python Example
tool-necessity.py
1from layaeval import ToolNecessity23metric = ToolNecessity(threshold=0.50) # passes at or above 0.5045res = metric(6 task="Book a hotel in Paris for 2 guests on Mar 4.",7 available_context="No hotel data loaded yet.",8 tool_call="search_hotels(city='Paris', date='2026-03-04', guests=2)",9)1011print(res.passed, res.value, res.confidence)
Related Agent Checks
Other checks in Using tools
AG-005Read →
Tool Selection
Which tool is the best one for this step?
AG-006Read →
Tool Selection Correctness
Was the tool the agent picked the right one?
AG-007Read →
Tool Call Accuracy
Was the tool called the right way?
AG-008Read →
Tool Input Accuracy
Are the values sent to the tool correct?
AG-009Read →
Tool Output Use
Did the agent use what the tool gave back?