Adding manager llm

This commit is contained in:
João Moura
2024-04-16 16:50:37 -03:00
parent dd97a2674d
commit a391004432
4 changed files with 2865 additions and 6 deletions

View File

@@ -25,7 +25,7 @@ from crewai.process import Process
from crewai.task import Task
from crewai.telemetry import Telemetry
from crewai.tools.agent_tools import AgentTools
from crewai.utilities import I18N, Logger, RPMController, FileHandler
from crewai.utilities import I18N, FileHandler, Logger, RPMController
class Crew(BaseModel):
@@ -173,7 +173,9 @@ class Crew(BaseModel):
@model_validator(mode="after")
def check_manager_llm(self):
"""Validates that the language model is set when using hierarchical process."""
if self.process == Process.hierarchical and not self.manager_llm:
if self.process == Process.hierarchical and (
not self.manager_llm and not self.manager_agent
):
raise PydanticCustomError(
"missing_manager_llm",
"Attribute `manager_llm` is required when using hierarchical process.",
@@ -311,9 +313,11 @@ class Crew(BaseModel):
i18n = I18N(language=self.language, language_file=self.language_file)
try:
self.manager_agent.allow_delegation = (
True # Forcing Allow delegation to the manager
)
manager = self.manager_agent
manager.allow_delegation = True # Forcing Allow delegation to the manager
except:
except:
manager = Agent(
role=i18n.retrieve("hierarchical_manager_agent", "role"),
goal=i18n.retrieve("hierarchical_manager_agent", "goal"),
@@ -321,7 +325,7 @@ class Crew(BaseModel):
tools=AgentTools(agents=self.agents).tools(),
llm=self.manager_llm,
verbose=True,
)
)
task_output = ""
for task in self.tasks: