콘텐츠로 이동

프로세스 (Processes)

혼자 일하는 에이전트는 단순해요. 그런데 에이전트가 여럿이 되면 이야기가 달라지죠. 누가 어떤 일을 하고, 그 결과를 누가 이어받을지, 중간에 검증은 누가 할지 — 작업을 아무렇게나 이어 붙이면 팀이 아니라 그냥 난장판이 돼요. CrewAI의 프로세스 (Process) 는 바로 이 '여러 에이전트가 어떻게 함께 일할지'를 정해 주는 실행 전략이에요. 개별 에이전트들이 한 덩어리로 움직여서 공통 목표를 효율적으로 달성하게 해 주는 역할이죠.

프로세스의 종류

CrewAI는 기본적으로 두 가지 프로세스를 제공해요.

  • 순차 (Sequential): 작업을 순서대로 실행해요. 한 작업이 끝나야 다음 작업으로 넘어가는, 질서 있는 진행 방식이에요.
  • 계층 (Hierarchical): 업무를 관리자 구조로 조직해요. 작업이 위계적인 명령 체계에 따라 위임되고 실행되는 방식이에요. 이 계층 프로세스를 쓰려면 크루에 관리자 언어 모델(manager_llm)이나 커스텀 관리자 에이전트(manager_agent)를 반드시 지정해야 해요. 그래야 관리자가 작업을 만들고 관리할 수 있거든요.

크루에 프로세스 지정하기

프로세스는 크루를 만들 때 지정해요. 크루를 생성하면서 프로세스 타입을 정해 주면 그 실행 전략이 정해지는 거예요. 계층 프로세스를 쓸 땐 관리자 에이전트를 위해 manager_llm이나 manager_agent를 꼭 정의해야 한다는 점만 기억해 두세요.

from crewai import Crew, Process

# 순차 프로세스로 크루 만들기
crew = Crew(
    agents=my_agents,
    tasks=my_tasks,
    process=Process.sequential
)

# 계층 프로세스로 크루 만들기
# manager_llm 또는 manager_agent를 제공해야 해요
crew = Crew(
    agents=my_agents,
    tasks=my_tasks,
    process=Process.hierarchical,
    manager_llm="gpt-4o"  # 또는 manager_agent=my_manager_agent
)

주의할 점이 하나 있어요. my_agentsmy_tasksCrew 객체를 만들기 전에 정의되어 있어야 해요. 그리고 계층 프로세스에서는 manager_llm이나 manager_agent 중 하나가 추가로 필요해요.

순차 프로세스 (Sequential Process)

순차 프로세스는 유동적인 팀 작업 방식과 비슷해요. 작업을 순서대로, 신중하게 진행하는 방식이죠. 작업 실행은 작업 목록에 미리 정의된 순서를 그대로 따르고, 한 작업의 출력이 다음 작업의 컨텍스트(맥락)로 들어가요. 작업 간의 컨텍스트를 직접 조절하고 싶다면 Task 클래스의 context 파라미터를 써서, 다음 작업의 컨텍스트로 사용할 출력을 지정할 수 있어요.

한마디로 정리하면, 앞 작업 결과가 뒤 작업의 입력으로 이어지는 '이어달리기' 방식이라고 볼 수 있어요.

계층 프로세스 (Hierarchical Process)

계층 프로세스는 회사의 조직 구조를 흉내 내요. CrewAI가 커스텀 관리자 에이전트를 지정하게 해 주거나, 자동으로 하나 만들어 주죠. 다만 관리자 언어 모델(manager_llm)은 직접 지정해 줘야 해요.

이 관리자 에이전트가 작업 실행 전반을 관리해요. 계획을 세우고(planning), 작업을 위임하고(delegation), 결과를 검증하는(validation) 역할이죠. 순차 프로세스와 달리 작업이 미리 배정되어 있지 않아요. 관리자가 각 에이전트의 역량을 보고 적절한 에이전트에게 작업을 나눠 주고, 출력을 검토하고, 작업이 완료됐는지 판단해요.

Process 클래스 자세히 보기

Process 클래스는 열거형(Enum) 으로 구현되어 있어요. 덕분에 타입 안전성이 확보되고, 프로세스 값이 정해진 타입(sequential, hierarchical)으로 제한돼요. 잘못된 값을 넣어도 파이썬이 거부하니까, 실수를 코드 단계에서 미리 막아 주는 셈이에요.

실무 관점

처음 CrewAI를 시작할 땐 대부분 순차 프로세스로 시작하는 게 마음이 편해요. 작업 순서가 명확하니까 실행 흐름을 읽기 쉽고, 어디서 무슨 일이 일어나는지 추적하기도 좋아요. 반대로 팀이 커지고 에이전트가 많아지거나, '누가 어떤 작업을 맡을지'를 실행 시점에 유연하게 정하고 싶다면 계층 프로세스가 어울려요. 다만 계층 프로세스는 관리자 에이전트가 추가되는 만큼 비용과 복잡도가 늘어난다는 점은 감수해야 해요.

기억해야 할 핵심은 이거예요 — 프로세스는 '크루가 작업을 어떻게 이어서 처리할지'를 정해 주는 뼈대고, 크루를 만들 때 타입으로 딱 정해져요. 그리고 계층 프로세스에는 manager_llm이나 manager_agent가 반드시 필요하다는 걸 잊지 마세요.

더 알아보기