HEX
Server: LiteSpeed
System: Linux houston.panomity.com 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64
User: nudepix (1011)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //opt/PraisonAI/docs/tools/calculator_tools.mdx
---
title: "Calculator Agent"
description: "Mathematical calculation tools for AI agents."
icon: "calculator"
---

<Note>
  **Prerequisites**
  - Python 3.10 or higher
  - PraisonAI Agents package installed
  - `sympy` and `pint` packages installed
</Note>

## Calculator Tools

Use Calculator Tools to perform mathematical calculations with AI agents.

<Steps>
  <Step title="Install Dependencies">
    First, install the required packages:
    ```bash
    pip install praisonaiagents sympy pint
    ```
  </Step>

  <Step title="Import Components">
    Import the necessary components:
    ```python
    from praisonaiagents import Agent, Task, PraisonAIAgents
    from praisonaiagents.tools import (
        evaluate, solve_equation, convert_units,
        calculate_statistics, calculate_financial
    )
    ```
  </Step>

  <Step title="Create Agent">
    Create a calculator agent:
    ```python
    calculator_agent = Agent(
        name="MathAssistant",
        role="Mathematical Computation Specialist",
        goal="Perform accurate mathematical calculations and solve equations.",
        backstory="Expert in mathematical computations and problem-solving.",
        tools=[
            evaluate, solve_equation, convert_units,
            calculate_statistics, calculate_financial
        ],
        self_reflect=False
    )
    ```
  </Step>

  <Step title="Define Task">
    Define the calculation task:
    ```python
    calc_task = Task(
        description="Calculate the area of a circle with radius 5",
        expected_output="The area of the circle in square units",
        agent=calculator_agent,
        name="circle_area"
    )
    ```
  </Step>

  <Step title="Run Agent">
    Initialize and run the agent:
    ```python
    agents = PraisonAIAgents(
        agents=[calculator_agent],
        tasks=[calc_task],
        process="sequential"
    )
    agents.start()
    ```
  </Step>
</Steps>

## Understanding Calculator Tools

<Card title="What are Calculator Tools?" icon="question">
  Calculator Tools provide mathematical computation capabilities for AI agents:
  - Expression evaluation
  - Equation solving
  - Unit conversions
  - Support for mathematical functions
  - Variable substitution
</Card>

## Key Components

<CardGroup cols={2}>
  <Card title="Expression Evaluation" icon="function">
    Evaluate mathematical expressions:
    ```python
    result = evaluate("2 + 2 * 3")
    ```
  </Card>
  <Card title="Equation Solving" icon="equals">
    Solve mathematical equations:
    ```python
    result = solve_equation("2*x + 3 = 7")
    ```
  </Card>
  <Card title="Unit Conversions" icon="exchange">
    Convert between units:
    ```python
    result = convert_units(100, "meters", "kilometers")
    ```
  </Card>
  <Card title="Statistical Calculations" icon="chart-line">
    Calculate statistical metrics:
    ```python
    result = calculate_statistics([1, 2, 3, 4, 5])
    ```
  </Card>
  <Card title="Financial Calculations" icon="chart-pie">
    Calculate financial metrics:
    ```python
    result = calculate_financial(1000, 5, 2)
    ```
  </Card>
</CardGroup>

## Advanced Usage

<AccordionGroup>
  <Accordion title="Expression Evaluation">
    Evaluate complex mathematical expressions with variables:
    ```python
    # Basic arithmetic
    result = evaluate("2 + 2 * 3")
    
    # With mathematical functions
    result = evaluate("sin(pi/2) + sqrt(16)")
    
    # With variables
    result = evaluate(
        "x^2 + y",
        variables={"x": 3, "y": 4}
    )
    ```
  </Accordion>
  
  <Accordion title="Equation Solving">
    Solve different types of equations:
    ```python
    # Linear equation
    result = solve_equation("2*x + 3 = 7")
    
    # With custom variable
    result = solve_equation("y^2 = 4", variable="y")
    ```
  </Accordion>
  
  <Accordion title="Unit Conversions">
    Convert between different units:
    ```python
    # Length conversion
    result = convert_units(100, "meters", "kilometers")
    
    # Temperature conversion
    result = convert_units(32, "fahrenheit", "celsius")
    
    # Time conversion
    result = convert_units(2.5, "hours", "minutes")
    ```
  </Accordion>
  
  <Accordion title="Statistical Calculations">
    Calculate statistical metrics:
    ```python
    result = calculate_statistics([1, 2, 3, 4, 5])
    ```
  </Accordion>
  
  <Accordion title="Financial Calculations">
    Calculate financial metrics:
    ```python
    result = calculate_financial(1000, 5, 2)
    ```
  </Accordion>
</AccordionGroup>

## Error Handling

<Card title="Error Management" icon="shield-check">
  The tools include comprehensive error handling:
  ```python
  # Returns success result
  {"result": 8.0}
  
  # Returns error message
  {"error": "Invalid expression"}
  ```
</Card>

## Best Practices

<CardGroup cols={2}>
  <Card title="Precision Control" icon="ruler">
    Control calculation precision:
    ```python
    evaluate(
        "pi",
        precision=5
    )
    ```
  </Card>
  <Card title="Safe Execution" icon="shield">
    Uses safe evaluation environment with:
    - Restricted builtins
    - Mathematical functions only
    - Variable validation
  </Card>
</CardGroup>