diff --git a/src/crewai/agent.py b/src/crewai/agent.py index 7c983b9dd..e3379f9c5 100644 --- a/src/crewai/agent.py +++ b/src/crewai/agent.py @@ -77,6 +77,9 @@ class Agent(BaseAgent): default=None, description="Response format for the agent." ) + allow_code_execution: Optional[bool] = Field( + default=False, description="Enable code execution for the agent." + ) allow_code_execution: Optional[bool] = Field( default=False, description="Enable code execution for the agent." ) diff --git a/src/crewai/crew.py b/src/crewai/crew.py index c4a863f35..da4a30356 100644 --- a/src/crewai/crew.py +++ b/src/crewai/crew.py @@ -5,15 +5,15 @@ from typing import Any, Dict, List, Optional, Union from langchain_core.callbacks import BaseCallbackHandler from pydantic import ( - UUID4, - BaseModel, - ConfigDict, - Field, - InstanceOf, - Json, - PrivateAttr, - field_validator, - model_validator, + UUID4, + BaseModel, + ConfigDict, + Field, + InstanceOf, + Json, + PrivateAttr, + field_validator, + model_validator, ) from pydantic_core import PydanticCustomError @@ -404,6 +404,7 @@ class Crew(BaseModel): ] if len(self.agents) > 1 and len(agents_for_delegation) > 0: task.tools += task.agent.get_delegation_tools(agents_for_delegation) + task.tools += task.agent.get_delegation_tools(agents_for_delegation) role = task.agent.role if task.agent is not None else "None" self._logger.log("debug", f"== Working Agent: {role}", color="bold_purple") @@ -586,9 +587,3 @@ class Crew(BaseModel): def __repr__(self): return f"Crew(id={self.id}, process={self.process}, number_of_agents={len(self.agents)}, number_of_tasks={len(self.tasks)})" - - def aggregate_token_usage(self, token_usage_list: List[Dict[str, Any]]): - return { - key: sum([m[key] for m in token_usage_list if m is not None]) - for key in token_usage_list[0] - } diff --git a/src/crewai/task.py b/src/crewai/task.py index 1acf75df4..8717cee81 100644 --- a/src/crewai/task.py +++ b/src/crewai/task.py @@ -13,7 +13,9 @@ from pydantic_core import PydanticCustomError from crewai.agents.agent_builder.base_agent import BaseAgent from crewai.tasks.task_output import TaskOutput from crewai.telemetry.telemetry import Telemetry -from crewai.utilities import I18N, ConverterError, Printer +from crewai.utilities.converter import ConverterError +from crewai.utilities.i18n import I18N +from crewai.utilities.printer import Printer from crewai.utilities.pydantic_schema_parser import PydanticSchemaParser if TYPE_CHECKING: