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:
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.
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
Correct way to define and use
BaseTool
in CrewAI.
Best practices for Pydantic v2 compatibility with CrewAI.
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!