From e1306a8e6a8e190f90bcb03ff4bbcebedbc5a5de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Moura?= Date: Wed, 28 Feb 2024 03:39:11 -0300 Subject: [PATCH] removing necessary crewai-tools dependency --- src/crewai/agent.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/crewai/agent.py b/src/crewai/agent.py index e204d639b..13870cd49 100644 --- a/src/crewai/agent.py +++ b/src/crewai/agent.py @@ -2,7 +2,6 @@ import os import uuid from typing import Any, Dict, List, Optional, Tuple -from crewai_tools import BaseTool as CrewAITool from langchain.agents.agent import RunnableAgent from langchain.agents.tools import tool as LangChainTool from langchain.memory import ConversationSummaryMemory @@ -280,12 +279,18 @@ class Agent(BaseModel): def _parse_tools(self, tools: List[Any]) -> List[LangChainTool]: """Parse tools to be used for the task.""" + # tentatively try to import from crewai_tools import BaseTool as CrewAITool tools_list = [] - for tool in tools: - if isinstance(tool, CrewAITool): - tools_list.append(tool.to_langchain()) - else: - tools_list.append(tool) + try: + from crewai_tools import BaseTool as CrewAITool + + for tool in tools: + if isinstance(tool, CrewAITool): + tools_list.append(tool.to_langchain()) + else: + tools_list.append(tool) + except ModuleNotFoundError: + tools_list.append(tool) return tools_list @staticmethod