# Docstring Format Standard for Tools

All tool classes must use the following docstring style for schema compatibility and consistency:

- Use a single docstring in the tool class describing Args and Returns for all parameters of the `call` method.
- Args: List each parameter as `name (type): description` (type hints required for clarity).
- No blank lines between Args entries.
- Returns: Single line description, followed by examples if needed (no list markers).
- Keep formatting simple and consistent for schema compatibility.

Example:

    class FindFilesTool(ToolBase):
        """
        Find files in one or more directories matching a pattern.

        Args:
            directories (list[str]): List of directories to search in.
            pattern (str): File pattern to match. Uses Unix shell-style wildcards (fnmatch), e.g. '*.py', 'data_??.csv', '[a-z]*.txt'.
            
            max_results (int, optional): Maximum number of results to return. Defaults to 100.
        Returns:
            str: Newline-separated list of matching file paths. Example:
                "/path/to/file1.py\n/path/to/file2.py"
                "Warning: Empty file pattern provided. Operation skipped."
        """

# Tool Class Docstring Requirement

- All parameter documentation for OpenAI function tools must be in the class docstring, not the `call` method docstring.
- The class docstring is prepended to the tool's description in the OpenAI schema and is user-facing.
- Write class docstrings as concise, clear summaries of the tool's purpose and behavior, including parameter and return descriptions as shown above.
- Avoid implementation details; focus on what the tool does for the user.
