CrewAI Processes

CrewAI Processes (프로세스)

여러 에이전트가 태스크를 어떤 전략으로 실행할지 정하려면 프로세스가 필요해요. CrewAI의 Process는 사람 팀의 프로젝트 관리처럼 태스크 분배와 실행 순서를 규정하는 역할을 합니다. 실행 전략을 크루에 지정해 두면, 태스크가 순서대로 처리되거나 관리자 에이전트의 위임을 거쳐 효율적으로 진행돼요.

출처: 공식문서

본문

프로세스 구현

  • Sequential (순차): 태스크를 순서대로 실행해 질서 있는 진행을 보장합니다.
  • Hierarchical (계층): 관리 계층으로 태스크를 조직합니다. 태스크는 구조화된 명령 체계에 따라 위임·실행되어요. 계층 프로세스를 사용하려면 크루에 관리자 언어모델(manager_llm) 또는 커스텀 관리자 에이전트(manager_agent)를 지정해야 합니다. 그러면 관리자가 태스크를 만들고 관리합니다.

프로세스가 팀워크에서 하는 역할

프로세스는 개별 에이전트들이 하나의 응집된 유닛으로 동작하게 해 주고, 공통 목표를 위해 노력을 효율적으로 정렬합니다.

크루에 프로세스 지정하기

크루에 프로세스를 지정하려면, 크루 생성 시 프로세스 타입을 명시해 실행 전략을 설정합니다. 계층 프로세스라면 관리자 에이전트를 위해 manager_llm 또는 manager_agent를 정의해야 합니다.

from crewai import Crew, Process

# Example: Creating a crew with a sequential process
crew = Crew(
    agents=my_agents,
    tasks=my_tasks,
    process=Process.sequential
)

# Example: Creating a crew with a hierarchical process
# Ensure to provide a manager_llm or manager_agent
crew = Crew(
    agents=my_agents,
    tasks=my_tasks,
    process=Process.hierarchical,
    manager_llm="gpt-4o"
    # or
    # manager_agent=my_manager_agent
)

참고: my_agentsmy_tasksCrew 객체를 만들기 전에 정의되어 있어야 하며, 계층 프로세스에는 manager_llm 또는 manager_agent 중 하나가 필요합니다.

Sequential Process (순차 프로세스)

이 방식은 동적 팀 워크플로를 닮았습니다. 태스크를 사려 깊고 체계적으로 진행하는데, 실행 순서는 태스크 리스트의 미리 정해진 순서를 따르고 이전 태스크의 출력이 다음 태스크의 컨텍스트가 됩니다.

태스크 컨텍스트를 커스터마이징하려면 Task 클래스의 context 파라미터로 이후 태스크의 컨텍스트로 사용할 출력을 지정하면 됩니다.

Hierarchical Process (계층 프로세스)

기업의 계층 구조를 모방합니다. CrewAI는 커스텀 관리자 에이전트를 지정하거나 자동으로 하나를 만들 수 있으며, 이를 위해 관리자 언어모델(manager_llm) 지정이 필요해요. 이 에이전트는 태스크 실행을 감독하며 계획, 위임, 검증을 담당합니다. 태스크는 미리 배정되지 않고, 관리자가 에이전트의 능력에 따라 태스크를 배정하고 출력을 검토하며 완료를 평가합니다.

Process 클래스 상세

Process 클래스는 열거형(Enum)으로 구현되어 타입 안전성을 보장하고, 프로세스 값을 정의된 타입(sequential, hierarchical)으로 제한합니다.

요약

프로세스가 제공하는 구조화된 협업은 CrewAI 안에서 에이전트 간 체계적인 팀워크를 가능하게 하는 핵심입니다.

더 알아보기