Compare commits

...

4 Commits

Author SHA1 Message Date
Lucas Gomide
11d4229eb6 Merge branch 'main' into lg-crew-structure-docs 2025-04-30 10:23:26 -03:00
Lucas Gomide
1df46bb97b Merge branch 'main' into lg-crew-structure-docs 2025-04-29 18:56:02 -03:00
Lucas Gomide
3cfc35bc5d Merge branch 'main' into lg-crew-structure-docs 2025-04-28 16:59:08 -03:00
Lucas Gomide
a536db6980 docs: remove CrewStructuredTool from public documentation
It is used internally and should not be recommended for building tools intended for Agent consumption
2025-04-28 15:31:39 -03:00

View File

@@ -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
<Tip>