Tools
Core Tool Concepts
Using BaseTool
from agentopera.engine.types.agent import CancellationToken
from agentopera.engine.function_call import BaseTool, FunctionTool
from pydantic import BaseModel
class CalculatorInput(BaseModel):
expression: str
class CalculatorOutput(BaseModel):
result: float
# Create a custom tool by extending BaseTool
class CalculatorTool(BaseTool[CalculatorInput, CalculatorOutput]):
def __init__(self):
super().__init__(
args_type=CalculatorInput,
return_type=CalculatorOutput,
name="calculator",
description="Evaluates a mathematical expression and returns the result"
)
async def run(self, args: CalculatorInput, cancellation_token: CancellationToken) -> CalculatorOutput:
# Implement the tool's functionality
result = eval(args.expression)
return CalculatorOutput(result=result)FunctionTool: Turning Functions into Tools
Built-in Tools
Best Practices for Creating Tools
Last updated