Spaces:
Running
Running
from crewai import Crew, Process | |
from langflow.base.agents.crewai.crew import BaseCrewComponent | |
from langflow.io import HandleInput | |
class HierarchicalCrewComponent(BaseCrewComponent): | |
display_name: str = "Hierarchical Crew" | |
description: str = ( | |
"Represents a group of agents, defining how they should collaborate and the tasks they should perform." | |
) | |
documentation: str = "https://docs.crewai.com/how-to/Hierarchical/" | |
icon = "CrewAI" | |
inputs = [ | |
*BaseCrewComponent._base_inputs, | |
HandleInput(name="agents", display_name="Agents", input_types=["Agent"], is_list=True), | |
HandleInput(name="tasks", display_name="Tasks", input_types=["HierarchicalTask"], is_list=True), | |
HandleInput(name="manager_llm", display_name="Manager LLM", input_types=["LanguageModel"], required=False), | |
HandleInput(name="manager_agent", display_name="Manager Agent", input_types=["Agent"], required=False), | |
] | |
def build_crew(self) -> Crew: | |
tasks, agents = self.get_tasks_and_agents() | |
manager_llm = self.get_manager_llm() | |
return Crew( | |
agents=agents, | |
tasks=tasks, | |
process=Process.hierarchical, | |
verbose=self.verbose, | |
memory=self.memory, | |
cache=self.use_cache, | |
max_rpm=self.max_rpm, | |
share_crew=self.share_crew, | |
function_calling_llm=self.function_calling_llm, | |
manager_agent=self.manager_agent, | |
manager_llm=manager_llm, | |
step_callback=self.get_step_callback(), | |
task_callback=self.get_task_callback(), | |
) | |