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
- Define Clear Schemas: Use Pydantic for type safety
- Validate Inputs: Always validate before execution
- Handle Errors: Implement proper error handling
- Use Retries: Configure retries for validation failures