PART 12 · 강의 3/5

협업 프레임워크

AutoGen과 CrewAI로 멀티에이전트 구축하기

01

멀티에이전트 프레임워크

주요 프레임워크 소개

AutoGen
Microsoft

대화 기반 멀티에이전트 프레임워크. Agent 간 자연스러운 대화를 통해 협업하며, 코드 실행 및 인간 개입을 쉽게 통합할 수 있습니다.

대화 기반 코드 실행 Human-in-the-loop 유연한 패턴
35K+
GitHub Stars
Python
언어
CrewAI
CrewAI Inc.

역할 기반 AI 에이전트 협업 프레임워크. 직관적인 "팀" 메타포로 Agent를 구성하며, 빠른 프로토타이핑에 최적화되어 있습니다.

역할 기반 직관적 API Task 중심 빠른 시작
20K+
GitHub Stars
Python
언어
02

구현 예시 비교

동일 작업의 프레임워크별 구현

동일한 작업(리서치 + 글쓰기)을 두 프레임워크에서 어떻게 구현하는지 비교합니다.

from autogen import AssistantAgent, UserProxyAgent, GroupChat, GroupChatManager

# LLM 설정
config_list = [{"model": "gpt-4", "api_key": "..."}]
llm_config = {"config_list": config_list}

# Agent 정의
researcher = AssistantAgent(
    name="Researcher",
    system_message="당신은 정보 수집 전문가입니다. 주어진 주제에 대해 조사하세요.",
    llm_config=llm_config
)

writer = AssistantAgent(
    name="Writer",
    system_message="당신은 글쓰기 전문가입니다. 조사 결과를 바탕으로 글을 작성하세요.",
    llm_config=llm_config
)

# User Proxy (작업 시작 및 코드 실행)
user_proxy = UserProxyAgent(
    name="User",
    human_input_mode="NEVER",
    code_execution_config={"work_dir": "workspace"}
)

# 그룹 채팅 설정
groupchat = GroupChat(
    agents=[user_proxy, researcher, writer],
    messages=[],
    max_round=10
)

manager = GroupChatManager(groupchat=groupchat, llm_config=llm_config)

# 대화 시작
user_proxy.initiate_chat(
    manager,
    message="AI 에이전트의 최신 트렌드를 조사하고 블로그 포스트를 작성해주세요."
)
from crewai import Agent, Task, Crew, Process
from crewai_tools import SerperDevTool

# Tool 설정
search_tool = SerperDevTool()

# Agent 정의 (역할 기반)
researcher = Agent(
    role="Research Analyst",
    goal="AI 에이전트의 최신 트렌드를 심층 조사",
    backstory="당신은 10년 경력의 기술 리서처입니다.",
    tools=[search_tool],
    verbose=True
)

writer = Agent(
    role="Content Writer",
    goal="조사 결과를 매력적인 블로그 포스트로 작성",
    backstory="당신은 기술 블로그 전문 작가입니다.",
    verbose=True
)

# Task 정의
research_task = Task(
    description="AI 에이전트의 2024년 트렌드를 조사하세요.",
    expected_output="주요 트렌드 5가지와 상세 설명",
    agent=researcher
)

writing_task = Task(
    description="조사 결과를 바탕으로 블로그 포스트를 작성하세요.",
    expected_output="1500자 이상의 블로그 포스트",
    agent=writer,
    context=[research_task]  # 이전 Task 결과 참조
)

# Crew 구성 및 실행
crew = Crew(
    agents=[researcher, writer],
    tasks=[research_task, writing_task],
    process=Process.sequential,  # 순차 실행
    verbose=2
)

result = crew.kickoff()
03

AutoGen vs CrewAI 비교

프레임워크별 특성 분석

특성 AutoGen CrewAI
설계 철학 대화 중심 (Conversational) 역할/태스크 중심 (Role-based)
협업 방식 자유로운 대화 구조화된 워크플로우
코드 실행 내장 (Docker 지원) Tool로 통합
Human 개입 손쉬운 통합 가능하지만 덜 직관적
학습 곡선 중간 낮음
유연성 매우 높음 중간 (구조화된)
적합한 경우 복잡한 대화, 동적 협업 명확한 워크플로우, 빠른 프로토타입
💡 선택 가이드

AutoGen: 복잡한 대화 흐름, 코드 실행이 핵심인 경우, Human-in-the-loop이 중요한 경우
CrewAI: 명확한 역할 분담, 빠른 프로토타이핑, 직관적인 API를 원하는 경우

04

고급 협업 패턴

프레임워크별 고급 기능

📌 AutoGen: Nested Chat

Agent 그룹 내에서 또 다른 Agent 그룹을 호출하는 중첩 대화 패턴입니다.

📌 CrewAI: Hierarchical Process

Manager Agent가 Worker Agent들에게 작업을 위임하는 계층적 프로세스입니다.

📌 LangGraph: 상태 기반 오케스트레이션

그래프 기반 상태 머신으로 정밀한 Agent 흐름 제어가 가능합니다.

REF

참고 자료

SUMMARY

핵심 요약

  • AutoGen: Microsoft의 대화 기반 멀티에이전트 프레임워크 (35K+ GitHub Stars)
  • CrewAI: 역할 기반 AI 협업 프레임워크 (20K+ GitHub Stars)
  • AutoGen 특징: 대화 중심, 코드 실행 내장, Human-in-the-loop 용이
  • CrewAI 특징: 역할/태스크 중심, 직관적 API, 빠른 프로토타이핑
  • 고급 패턴: Nested Chat, Hierarchical Process, 상태 기반 오케스트레이션