한국어
Week 3: 멀티 에이전트
01. CrewAI

05. CrewAI로 멀티 에이전트 구축하기

개요

이번 세션에서는 수동 멀티 에이전트 오케스트레이션을 CrewAI로 대체합니다. CrewAI는 역할 수행, 작업 위임, 워크플로우 관리를 기본으로 제공하는 고수준 프레임워크입니다.

CrewAI란?

CrewAI는 역할 기반 자율 AI 에이전트를 오케스트레이션하는 프레임워크입니다. 각 에이전트가 특정 역할, 목표, 배경 스토리를 가진 가상 팀을 구성한다고 생각하면 됩니다.

왜 CrewAI인가?

수동 오케스트레이션CrewAI
에이전트 간 문자열 수동 전달자동 메시지 전달
직접 슈퍼바이저 로직 구축내장된 Sequential/Hierarchical 프로세스
페르소나 관리 없음풍부한 role, goal, backstory 시스템
DIY 도구 공유원활한 도구 위임

핵심 개념

1. Agents (에이전트)

에이전트는 크루의 작업자입니다. 각각 고유한 성격과 목적을 가집니다.

from crewai import Agent
 
researcher = Agent(
    role='시니어 연구원',
    goal='AI 분야의 혁신적인 기술 발굴',
    backstory="""당신은 최고의 기술 연구원입니다.
    최신 뉴스와 논문을 찾는 데 전문가입니다.""",
    verbose=True,
    allow_delegation=False  # 다른 에이전트에게 위임 가능?
)
 
writer = Agent(
    role='기술 콘텐츠 전략가',
    goal='기술 발전에 대한 매력적인 콘텐츠 작성',
    backstory="""당신은 유명한 콘텐츠 전략가로,
    복잡한 주제를 쉽게 풀어내는 것으로 유명합니다.""",
    verbose=True,
    allow_delegation=False
)

Pro Tip: backstory 필드가 매우 중요합니다! 에이전트가 어떻게 "생각"하고 응답할지를 결정합니다. 잘 작성된 배경 스토리는 더 일관된 캐릭터 출력으로 이어집니다.

2. Tasks (태스크)

태스크는 에이전트에게 주어지는 구체적인 작업입니다.

from crewai import Task
 
task1 = Task(
    description="""2024년 'AI 에이전트'의 최신 트렌드를 분석하세요.
    주요 장단점을 파악하세요.""",
    expected_output="상위 3개 트렌드의 불릿 포인트 요약.",
    agent=researcher  # 특정 에이전트에 할당
)
 
task2 = Task(
    description="""제공된 인사이트를 활용하여 짧은 LinkedIn 게시물을 작성하세요.
    임팩트 있고 전문적으로.""",
    expected_output="해시태그가 포함된 LinkedIn 게시물.",
    agent=writer
)

3. Crew (크루)

Crew는 모든 것을 오케스트레이션합니다—워크플로우와 커뮤니케이션을 관리합니다.

from crewai import Crew, Process
 
crew = Crew(
    agents=[researcher, writer],
    tasks=[task1, task2],
    verbose=True,
    process=Process.sequential  # 또는 Process.hierarchical
)
 
# 한 줄로 전체 팀 실행!
result = crew.kickoff()

프로세스 유형

Sequential Process: 태스크가 하나씩 순서대로 실행됩니다. Task 1의 출력이 Task 2의 입력이 됩니다.

적합한 경우: 각 단계가 이전 단계에 의존하는 선형 워크플로우

에이전트에 도구 추가하기

CrewAI 에이전트도 ReAct 에이전트처럼 도구를 사용할 수 있습니다:

from crewai_tools import SerperDevTool, WebsiteSearchTool
 
search_tool = SerperDevTool()
web_tool = WebsiteSearchTool()
 
researcher = Agent(
    role='리서치 분석가',
    goal='정확한 정보 찾기',
    backstory='웹 접근 권한이 있는 전문 연구원',
    tools=[search_tool, web_tool],  # 여기에 도구 연결
    verbose=True
)

실습 내용

노트북에서 다음을 수행합니다:

CrewAI 설치

pip install crewai crewai-tools

에이전트 정의

고유한 역할과 배경 스토리를 가진 전문 에이전트 생성

태스크 생성

각 에이전트에 구체적인 목표 할당

Crew 구성

에이전트와 태스크를 프로세스 유형과 결합

Kickoff!

크루를 실행하고 협업 관찰

실제 활용 사례

사용 사례Crew 구성
콘텐츠 파이프라인연구원 → 작가 → 편집자 → 퍼블리셔
코드 리뷰개발자 → 리뷰어 → 보안 분석가
고객 지원분류기 → 전문가 → QA 에이전트
시장 조사데이터 수집가 → 분석가 → 보고서 작성자

CrewAI vs LangGraph

측면CrewAILangGraph
추상화 수준높음 (역할 기반)낮음 (그래프 기반)
학습 곡선완만함가파름
유연성제한적매우 유연함
적합한 용도팀 시뮬레이션커스텀 워크플로우
상태 관리자동수동 제어
⚠️

언제 무엇을 사용할까?

  • CrewAI: 역할 기반의 빠른 멀티 에이전트 설정이 필요할 때
  • LangGraph: 상태와 전환에 대한 세밀한 제어가 필요할 때

참고 자료 & 추가 학습

학술 논문

다음 단계

주말 프로젝트에서 CEO, CTO, CMO가 협력하여 비즈니스 피치를 만드는 가상 스타트업 팀을 구축합니다!