CrewAI — 역할 기반 멀티에이전트
CrewAI는 “사람 팀처럼 동작하는 AI 에이전트 팀”이라는 직관적인 메타포를 기반으로 설계된 프레임워크입니다. 비개발자도 이해할 수 있는 선언적 API가 특징입니다.설계 철학: 팀 메타포
성공 비유: 회사 프로젝트를 수행할 때 팀장이 각 팀원에게 역할(리서처, 분석가, 작성자)을 부여하고 업무를 배분하듯이, CrewAI는 Agent에게 역할(role)을 부여하고 Task를 할당합니다.
| CrewAI 개념 | 팀 비유 | 설명 |
|---|---|---|
| Agent | 팀원 | 역할, 목표, 배경 스토리를 가진 AI 작업자 |
| Task | 업무 | 구체적인 작업 지시 + 기대 결과물 |
| Crew | 팀 | Agent들을 모아 프로세스에 따라 실행 |
| Process | 업무 방식 | Sequential(순차) 또는 Hierarchical(계층) |
코드 예제: 리서치 + 보고서 작성 팀
Process 타입
| Process | 동작 방식 | 적합한 시나리오 |
|---|---|---|
| Sequential | Task를 순서대로 실행. 이전 Task 결과가 다음 Task의 입력 | 파이프라인형 작업 (조사 -> 분석 -> 보고서) |
| Hierarchical | Manager Agent가 하위 Agent에게 작업 위임 및 조율 | 복잡한 프로젝트 관리, 여러 전문가 협업 |
CrewAI의 장점과 한계
장점:- 직관적: 역할/팀 메타포가 명확하여 비개발자도 구조를 이해 가능
- 빠른 프로토타이핑: 10분 내에 멀티에이전트 시스템 구축 가능
- 선언적 API: 코드보다는 “설정”에 가까운 구성 방식
- 세밀한 제어 어려움: 에이전트 간 통신의 세부 흐름을 커스텀하기 어려움
- 조건 분기 제한: LangGraph 대비 복잡한 분기/루프 표현 능력 부족
- 프로덕션 미성숙: 에러 처리, 모니터링, 거버넌스 기능이 약함
- 비결정적 동작: Agent의 “대화”가 매번 다르게 전개될 수 있음
OpenAI Agents SDK — Handoff 패턴의 정석
2025년 1월 출시된 OpenAI Agents SDK는 OpenAI가 직접 제공하는 공식 Agent 프레임워크입니다. Handoff(대화 인계), Guardrail(안전장치), Tracing(추적) 을 핵심 기능으로 내세웁니다.핵심 개념
| 개념 | 설명 | 비유 |
|---|---|---|
| Agent | 시스템 프롬프트 + 도구 + 모델로 구성된 실행 단위 | 전문 상담원 |
| Handoff | Agent A가 대화 전체를 Agent B에게 넘기기 | 콜센터 상담 전환 |
| Guardrail | 입력/출력을 프레임워크 레벨에서 검증 | 보안 검색대 |
| Tracing | 전체 실행 과정을 자동으로 기록 | CCTV 녹화 |
Handoff 패턴
Handoff는 OpenAI Agents SDK의 가장 독특한 기능입니다. Agent A가 자신의 전문 영역이 아닌 질문을 받으면, 대화 히스토리 전체를 포함하여 Agent B에게 인계합니다.참고 Handoff vs Tool Call: Tool Call은 “특정 함수를 호출하고 결과를 받아오는 것”이고, Handoff는 “대화의 주도권 자체를 다른 Agent에게 넘기는 것”입니다. 콜센터에서 “잠시만요, 기술팀으로 연결해드리겠습니다”라고 하는 것이 Handoff입니다.
코드 예제: 고객 서비스 Agent (Handoff 포함)
Guardrail (입력/출력 검증)
OpenAI Agents SDK의 장점과 한계
장점:- 간결한 API: 최소한의 코드로 Agent 구축 가능
- Handoff 패턴 내장: 멀티에이전트 라우팅이 매우 깔끔
- Guardrail 내장: 별도 라이브러리 없이 입출력 검증
- 자동 Tracing: OpenAI 대시보드에서 실행 과정 시각화
- 프로덕션 지향: OpenAI 인프라와 긴밀하게 통합
- OpenAI 종속: 기본적으로 OpenAI 모델만 지원 (커스텀 확장 필요)
- 복잡한 그래프 표현 제한: LangGraph 수준의 복잡한 워크플로는 어려움
- 상태 관리 제한: LangGraph Checkpoint 같은 장기 상태 관리 기능 부족
- 자체 호스팅 어려움: OpenAI API 의존도가 높음
AutoGen (Microsoft) — 멀티에이전트 대화
AutoGen은 Microsoft Research에서 개발한 프레임워크로, Agent들이 자유롭게 “대화”하며 문제를 해결하는 패러다임을 제안합니다.설계 철학
성공 비유: 다른 프레임워크가 “조직도에 따른 업무 배분”이라면, AutoGen은 “회의실에서 자유 토론”에 가깝습니다. 참가자들이 돌아가며 발언하고, 서로의 의견에 반응하며, 합의에 도달합니다.
핵심 컴포넌트
| 컴포넌트 | 역할 |
|---|---|
| ConversableAgent | 대화 가능한 Agent의 기본 클래스 |
| AssistantAgent | LLM 기반 Agent (추론 담당) |
| UserProxyAgent | 사용자를 대리하는 Agent (코드 실행, 승인 등) |
| GroupChat | 여러 Agent가 참여하는 그룹 대화 |
| GroupChatManager | 그룹 대화의 발언 순서와 종료 조건 관리 |
코드 예제: 코드 생성 + 리뷰 Agent
AutoGen의 장점과 한계
장점:- 코드 실행 내장: Agent가 직접 Python/Shell 코드를 실행하고 결과 확인 가능
- 자유도 높은 대화: 정해진 워크플로 없이 Agent들이 자율적으로 협업
- 연구/실험에 최적: 다양한 에이전트 구성을 빠르게 실험 가능
- GroupChat: 3개 이상의 Agent가 동시에 참여하는 토론 가능
- 비결정적 흐름: 매번 다른 대화 흐름이 전개될 수 있어 프로덕션에서 예측 가능성 낮음
- 프로덕션 배포 복잡: 모니터링, 에러 처리, 스케일링이 쉽지 않음
- 대화 비용: 불필요한 왕복 대화로 토큰 비용 증가 가능
- 종료 조건 설정 어려움: “언제 대화를 끝낼 것인가”의 판단이 까다로움
주의 AutoGen v0.4 주의사항: AutoGen은 v0.2에서 v0.4로 대규모 리팩토링을 거쳤습니다. 이전 버전의 블로그/튜토리얼 코드는 v0.4에서 동작하지 않을 수 있습니다. 반드시 최신 공식 문서를 참고하세요.
README로 돌아가기 | 다음: Databricks Agent Framework