Context
Any tool that calls external services.
Problem
Hung operations block agents indefinitely.
Solution
Set timeout boundaries:
- Define limit: Maximum execution time
- Graceful termination: Clean up on timeout
- Partial results: Return what completed
- Clear error: Explain what timed out
- Define limit: Maximum execution time
- Graceful termination: Clean up on timeout
- Partial results: Return what completed
- Clear error: Explain what timed out
Examples
Python
@tool(timeout_seconds=30)
def search_database(query: str) -> SearchResult:
"""Search database. Times out after 30 seconds.
If timeout occurs, returns partial results if available.
"""
with timeout(30, return_partial=True):
return db.search(query) Considerations
- Set appropriate timeouts for each operation
- Return partial results when possible
- Log timeouts for monitoring