from langchain_core.tools import tool import operator @tool("add_tool", parse_docstring=True) def add(a: float, b: float) -> float: """ Adds two numbers. Args: a: The first number. b: The second number. Returns: The sum of a and b. """ return operator.add(a, b) @tool("subtract_tool", parse_docstring=True) def subtract(a: float, b: float) -> float: """ Subtracts the second number from the first. Args: a: The first number (minuend). b: The second number (subtrahend). Returns: The result of subtracting b from a. """ return operator.sub(a, b) @tool("multiply_tool", parse_docstring=True) def multiply(a: float, b: float) -> float: """ Multiplies two numbers. Args: a: The first number. b: The second number. Returns: The product of a and b. """ return operator.mul(a, b) @tool("divide_tool", parse_docstring=True) def divide(a: float, b: float) -> float: """ Divides the first number by the second. Args: a: The numerator. b: The denominator. Returns: The result of dividing a by b. Returns an error message string if division by zero occurs. """ if b == 0: return "Error: Cannot divide by zero." return operator.truediv(a, b)