Skip to main content

Tool Validation

Schema validation and type safety for tool inputs and outputs.

Overview

Tool validation ensures that tool inputs and outputs conform to expected schemas using Pydantic and Instructor.

Basic Validation

from recoagent.tools import ToolValidator, ValidationError
from pydantic import BaseModel

class SearchInput(BaseModel):
query: str
limit: int = 10

validator = ToolValidator()

# Validate input
try:
validated_input = validator.validate_input(
tool_name="search_tool",
input_data={"query": "test", "limit": 5},
schema=SearchInput
)
except ValidationError as e:
print(f"Validation failed: {e}")

Structured Validation with Instructor

from recoagent.tools import StructuredToolValidator

validator = StructuredToolValidator()

# Validate with automatic retries
result = validator.validate_structured_output(
tool_output=raw_output,
schema=OutputSchema,
max_retries=3
)

Best Practices

  1. Define Clear Schemas: Use Pydantic for type safety
  2. Validate Inputs: Always validate before execution
  3. Handle Errors: Implement proper error handling
  4. Use Retries: Configure retries for validation failures