Hierarchical Process
Introduction
Section titled “Introduction”The hierarchical process in CrewAI introduces a structured approach to task management, simulating traditional organizational hierarchies for efficient task delegation and execution. This systematic workflow enhances project outcomes by ensuring tasks are handled with optimal efficiency and accuracy.
Hierarchical Process Overview
Section titled “Hierarchical Process Overview”By default, tasks in CrewAI are managed through a sequential process. However, adopting a hierarchical approach allows for a clear hierarchy in task management, where a ‘manager’ agent coordinates the workflow, delegates tasks, and validates outcomes for streamlined and effective execution. This manager agent can now be either automatically created by CrewAI or explicitly set by the user.
Key Features
Section titled “Key Features”- Task Delegation: A manager agent allocates tasks among crew members based on their roles and capabilities.
- Result Validation: The manager evaluates outcomes to ensure they meet the required standards.
- Efficient Workflow: Emulates corporate structures, providing an organized approach to task management.
- System Prompt Handling: Optionally specify whether the system should use predefined prompts.
- Stop Words Control: Optionally specify whether stop words should be used, supporting various models including the o1 models.
- Context Window Respect: Prioritize important context by enabling respect of the context window, which is now the default behavior.
- Delegation Control: Delegation is now disabled by default to give users explicit control.
- Max Requests Per Minute: Configurable option to set the maximum number of requests per minute.
- Max Iterations: Limit the maximum number of iterations for obtaining a final answer.
Implementing the Hierarchical Process
Section titled “Implementing the Hierarchical Process”To utilize the hierarchical process, it’s essential to explicitly set the process attribute to Process.hierarchical, as the default behavior is Process.sequential.
Define a crew with a designated manager and establish a clear chain of command.
from crewai import Crew, Process, Agent
# Agents are defined with attributes for backstory, cache, and verbose moderesearcher = Agent( role='Researcher', goal='Conduct in-depth analysis', backstory='Experienced data analyst with a knack for uncovering hidden trends.',)writer = Agent( role='Writer', goal='Create engaging content', backstory='Creative writer passionate about storytelling in technical domains.',)
# Establishing the crew with a hierarchical process and additional configurationsproject_crew = Crew( tasks=[...], # Tasks to be delegated and executed under the manager's supervision agents=[researcher, writer], manager_llm="gpt-4o", # Specify which LLM the manager should use process=Process.hierarchical, planning=True,)Using a Custom Manager Agent
Section titled “Using a Custom Manager Agent”Alternatively, you can create a custom manager agent with specific attributes tailored to your project’s management needs. This gives you more control over the manager’s behavior and capabilities.
# Define a custom manager agentmanager = Agent( role="Project Manager", goal="Efficiently manage the crew and ensure high-quality task completion", backstory="You're an experienced project manager, skilled in overseeing complex projects and guiding teams to success.", allow_delegation=True,)
# Use the custom manager in your crewproject_crew = Crew( tasks=[...], agents=[researcher, writer], manager_agent=manager, # Use your custom manager agent process=Process.hierarchical, planning=True,)Workflow in Action
Section titled “Workflow in Action”- Task Assignment: The manager assigns tasks strategically, considering each agent’s capabilities and available tools.
- Execution and Review: Agents complete their tasks with the option for asynchronous execution and callback functions for streamlined workflows.
- Sequential Task Progression: Despite being a hierarchical process, tasks follow a logical order for smooth progression, facilitated by the manager’s oversight.
Conclusion
Section titled “Conclusion”Adopting the hierarchical process in CrewAI, with the correct configurations and understanding of the system’s capabilities, facilitates an organized and efficient approach to project management. Utilize the advanced features and customizations to tailor the workflow to your specific needs, ensuring optimal task execution and project success.