Tool Calling Basics

Step-by-step guide to building reliable, production-ready tools

Building Reliable Tools

Let's build a production-ready tool from scratch, step by step. You'll see how to go from a simple function to a robust agent tool.

🔨Interactive Tool Builder

Click through each step to build a complete tool

Define the Function

Start with a clear function that does ONE thing well. Use type hints and detailed docstrings.

def get_current_time(timezone: str = "UTC"):
    """Get current time in specified timezone.
    
    Args:
        timezone: Timezone name (e.g., "America/New_York")
    
    Returns:
        Current time as formatted string
    """
    from datetime import datetime
    import pytz
    
    tz = pytz.timezone(timezone)
    current_time = datetime.now(tz)
    return current_time.strftime("%Y-%m-%d %H:%M:%S %Z")
Step 1 of 4

🎯 Common Tool Patterns

Input Validation
Check inputs before execution, return clear error messages
Timeout Handling
Set time limits for external API calls to prevent hangs
Rate Limiting
Respect API rate limits, implement backoff strategies
Logging
Log all tool calls for debugging and monitoring