> ## Documentation Index
> Fetch the complete documentation index at: https://agno-v2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Multiple Tool Call Reliability Evaluation

> Assert an agent calls both multiply and exponentiate, then relax to subset matching with allow_additional_tool_calls.

Demonstrates reliability checks for multiple expected tool calls, including subset matching with allow\_additional\_tool\_calls.

```python calculator.py theme={null}
"""
Multiple Tool Call Reliability Evaluation
=========================================

Demonstrates reliability checks for multiple expected tool calls,
including subset matching with allow_additional_tool_calls.
"""

from typing import Optional

from agno.agent import Agent
from agno.eval.reliability import ReliabilityEval, ReliabilityResult
from agno.models.openai import OpenAIChat
from agno.run.agent import RunOutput
from agno.tools.calculator import CalculatorTools


# ---------------------------------------------------------------------------
# Create Evaluation Functions
# ---------------------------------------------------------------------------
def multiply_and_exponentiate():
    agent = Agent(
        model=OpenAIChat(id="gpt-5.2"),
        tools=[CalculatorTools()],
    )
    response: RunOutput = agent.run(
        "What is 10*5 then to the power of 2? do it step by step"
    )
    evaluation = ReliabilityEval(
        name="Tool Calls Reliability",
        agent_response=response,
        expected_tool_calls=["multiply", "exponentiate"],
    )
    result: Optional[ReliabilityResult] = evaluation.run(print_results=True)
    if result:
        result.assert_passed()


def subset_matching():
    """Only require 'multiply' -- extra tool calls like 'exponentiate' are allowed."""
    agent = Agent(
        model=OpenAIChat(id="gpt-5.2"),
        tools=[CalculatorTools()],
    )
    response: RunOutput = agent.run(
        "What is 10*5 then to the power of 2? do it step by step"
    )
    evaluation = ReliabilityEval(
        name="Subset Tool Calls",
        agent_response=response,
        expected_tool_calls=["multiply"],
        allow_additional_tool_calls=True,
    )
    result: Optional[ReliabilityResult] = evaluation.run(print_results=True)
    if result:
        result.assert_passed()


# ---------------------------------------------------------------------------
# Run Evaluation
# ---------------------------------------------------------------------------
if __name__ == "__main__":
    multiply_and_exponentiate()
    subset_matching()
```

## Run the Example

<Snippet file="create-venv-step.mdx" />

**1. Install dependencies**

```bash theme={null}
uv pip install -U agno openai
```

**2. Export your OpenAI API key**

```bash Mac/Linux theme={null}
export OPENAI_API_KEY="your_openai_api_key_here"
```

```bash Windows theme={null}
$Env:OPENAI_API_KEY="your_openai_api_key_here"
```

**3. Run the example**

Save the code above as `calculator.py`, then run:

```bash theme={null}
python calculator.py
```

Full source: [cookbook/09\_evals/reliability/multiple\_tool\_calls/calculator.py](https://github.com/agno-agi/agno/blob/v3.0.4/cookbook/09_evals/reliability/multiple_tool_calls/calculator.py)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.