diff --git a/docs/concepts/tools.mdx b/docs/concepts/tools.mdx index 32c77bc60..d5f9d9cfc 100644 --- a/docs/concepts/tools.mdx +++ b/docs/concepts/tools.mdx @@ -190,48 +190,6 @@ def my_tool(question: str) -> str: return "Result from your custom tool" ``` -### Structured Tools - -The `StructuredTool` class wraps functions as tools, providing flexibility and validation while reducing boilerplate. It supports custom schemas and dynamic logic for seamless integration of complex functionalities. - -#### Example: -Using `StructuredTool.from_function`, you can wrap a function that interacts with an external API or system, providing a structured interface. This enables robust validation and consistent execution, making it easier to integrate complex functionalities into your applications as demonstrated in the following example: - -```python -from crewai.tools.structured_tool import CrewStructuredTool -from pydantic import BaseModel - -# Define the schema for the tool's input using Pydantic -class APICallInput(BaseModel): - endpoint: str - parameters: dict - -# Wrapper function to execute the API call -def tool_wrapper(*args, **kwargs): - # Here, you would typically call the API using the parameters - # For demonstration, we'll return a placeholder string - return f"Call the API at {kwargs['endpoint']} with parameters {kwargs['parameters']}" - -# Create and return the structured tool -def create_structured_tool(): - return CrewStructuredTool.from_function( - name='Wrapper API', - description="A tool to wrap API calls with structured input.", - args_schema=APICallInput, - func=tool_wrapper, - ) - -# Example usage -structured_tool = create_structured_tool() - -# Execute the tool with structured input -result = structured_tool._run(**{ - "endpoint": "https://example.com/api", - "parameters": {"key1": "value1", "key2": "value2"} -}) -print(result) # Output: Call the API at https://example.com/api with parameters {'key1': 'value1', 'key2': 'value2'} -``` - ### Custom Caching Mechanism