PART 12 · 강의 3/5
협업 프레임워크
AutoGen과 CrewAI로 멀티에이전트 구축하기
01
멀티에이전트 프레임워크
주요 프레임워크 소개
AG
AutoGen
Microsoft
대화 기반 멀티에이전트 프레임워크. Agent 간 자연스러운 대화를 통해 협업하며, 코드 실행 및 인간 개입을 쉽게 통합할 수 있습니다.
대화 기반
코드 실행
Human-in-the-loop
유연한 패턴
35K+
GitHub Stars
Python
언어
CA
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, 상태 기반 오케스트레이션