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!

Was there a solution to this? I am running into this and are wondering if there’s a specific version or method that would work.

What’s the exact error you are getting? Pasting it here might help people better assist you.

Regarding creating custom tools, have you followed the guide Tools - CrewAI?

You can use functions as tools, but you need to wrap them in a way CrewAI expects Tools - CrewAI

If that doesn’t help, show us the exact error.