| requires_confirmation | bool | Pause for user confirmation before execution |
| requires_user_input | bool | Prompt user for input during execution |
| user_input_fields | List[str] | Fields to prompt user for when requires_user_input is True |
| external_execution | bool | Handle execution externally (advanced use-cases) |
| show_result | bool | Display result directly to user without LLM processing |
| stop_after_tool_call | bool | Terminate agent after this tool call |
| sequential | bool | Require sequential execution (no parallelization) |
| cache_results | bool | Cache the result based on arguments |
| cache_dir | Optional[str] | Directory to store cache files |
| cache_ttl | Optional[int] | Time-to-live for cache entries in seconds |
| tool_hooks | Optional[ToolHooks] | Custom functions to run before/after tool execution |
| max_retries | Optional[int] | Maximum number of retries allowed for this tool (default: 5) |
| timeout | Optional[float] | Timeout for tool execution in seconds (default: 30.0) |
| strict | Optional[bool] | Enforce strict JSON schema validation on tool parameters |
| docstring_format | str | Format of the docstring: ‘google’, ‘numpy’, ‘sphinx’, or ‘auto’ |
| require_parameter_descriptions | bool | Raise error if required parameter descriptions are missing |