Bug Report: CrewAI Agent Tool Validation Errors

Environment: macOS | Python 3.10.12 | CrewAI 0.100.0 | Pydantic 2.5.3 | Virtual Environment: venv

I’m facing multiple validation errors when setting up CrewAI for AI-powered outbound automation. The key issues are:

:one: Agent Tool Validation Error:
When assigning tools to an agent (ICPResearchAgent = Agent(role="ICP Research Specialist", tools=[find_icp])), CrewAI throws:
ValueError: Invalid tool type: <class 'function'>. Tool must be an instance of BaseTool or an object with 'name', 'func', and 'description' attributes.
This suggests CrewAI no longer supports direct function references as tools, requiring a BaseTool implementation.

:two: Pydantic Type Annotation Error:
When defining a tool class in tools/tool_icp.py, I get:
PydanticUserError: Field 'name' defined on a base class was overridden by a non-annotated attribute.
It seems Pydantic v2 enforces stricter type hints, causing a breaking change.


What I Need Help With

:white_check_mark: Correct way to define and use BaseTool in CrewAI.
:white_check_mark: Best practices for Pydantic v2 compatibility with CrewAI.
:white_check_mark: Whether downgrading Pydantic or modifying tool structure is recommended.

I’ll provide screenshots and code snippets for more context. Any guidance from the CrewAI team would be highly appreciated!