CrewAI — 브라질 개발자의 개인 프로젝트가 AI 팀 빌딩의 표준이 된 이야기
RoundPrep 제15화. 역할 카드를 나눠 간호·약제·영상 팀을 가짜로 만들어 본다. 역할 극단화가 설계에 어떤 그림을 주는지 보려는 시도다.
한줄 요약
AI에게 “당신은 전문가입니다, 이것이 당신의 목표입니다”라고 역할을 주면, 같은 모델도 다르게 행동한다. CrewAI는 이 원리로 AI 팀을 꾸린다.
테제
역할(Role)을 코드로 박아 두면, 회의에서 “누가 뭐 하는지” 설명이 쉬워진다.
스테이크
교수님은 책임 주체를 한 명씩 듣고 싶어 한다. 익명의 ‘AI 팀’은 싫다.
전환점 — RoundPrep 메모
역할만 예쁘게 써 놓고 실제 데이터 권한은 안 맞춰 전부 403.
본문
한 사람의 불만에서 시작됐다
2023년 말, 브라질 출신 개발자 João Moura는 LangChain 기반으로 멀티 에이전트 시스템을 만들다가 계속 같은 문제에 부딪혔다.
“에이전트들이 서로 대화하긴 하는데, 각자 뭘 잘하는지 모르고, 책임이 어디에 있는지 불분명하다.”
실제 팀에서는 모든 사람이 같은 일을 하지 않는다. 의사는 진단하고, 약사는 약물을 검토하고, 간호사는 환자 상태를 모니터링한다. 역할이 명확하기 때문에 협업이 가능하다. Moura는 이 원리를 AI에 그대로 옮기고 싶었다.
그가 개인 프로젝트로 만든 것이 CrewAI다.
공개된 지 6개월 만에 GitHub 스타 20,000개를 넘겼다. 같은 시기에 비슷한 문제를 겪던 수많은 개발자들이 “이게 내가 원하던 것”이라고 반응했다.
역할이 왜 중요한가
같은 Claude나 GPT라도 어떤 역할을 부여받았는지에 따라 답변의 성격이 달라진다.
“이 환자의 치료 계획을 세워줘”라고만 하면 일반적인 답변이 나온다.
하지만 “당신은 20년 경력의 내과 전문의입니다. 약물 상호작용에 특히 주의하는 스타일이며, 근거 중심 의학을 따릅니다. 이 환자의 치료 계획을 세워줘”라고 하면 훨씬 전문적이고 구체적인 답변이 나온다.
역할은 LLM이 어떤 관점에서 생각할지를 설정하는 장치다. CrewAI는 이 역할 설정을 구조적으로 관리한다.
CrewAI의 4가지 구성 요소
에이전트 (Agent) — 역할을 가진 AI
각 에이전트는 세 가지를 가진다:
role: 직함 (내과 전문의, 약사, 연구원)goal: 이 에이전트가 달성해야 할 목표backstory: 이 에이전트의 배경과 성격
배경 이야기가 있으면 역할 몰입도가 높아진다. “약사 AI”보다 “병원 약국 10년 경력, 노인 환자 다제복용 문제에 민감한 약사 AI”가 더 적절한 관점에서 반응한다.
태스크 (Task) — 에이전트에게 주어지는 구체적 업무
태스크는 명확해야 한다. “환자를 분석해줘”가 아니라 “주어진 환자 데이터에서 신기능 관련 주의 약물을 모두 식별하고, 각 약물에 대해 용량 조정 필요 여부를 판단해라”처럼 구체적인 것이 좋다.
크루 (Crew) — 에이전트들의 팀
에이전트들을 하나의 팀으로 묶는다. 팀이 목표를 향해 어떤 순서로 일할지 정의한다.
프로세스 (Process) — 팀의 작업 방식
CrewAI는 두 가지 방식을 지원한다:
- 순차 (Sequential): 에이전트 A가 끝나면 B가 시작. 이전 결과가 다음 에이전트에게 전달된다.
- 계층 (Hierarchical): 관리자 AI가 전체를 지휘하고 각 에이전트에게 태스크를 배정한다.
의료 다학제 팀으로 비유하면: 순차는 레지던트 → 전공의 → 교수 순으로 차례로 검토하는 것, 계층은 교수가 팀 전체를 지휘하는 것이다.
실제 의료 팀 시뮬레이션
응급실에서 복잡한 환자가 왔다. 다학제 검토가 필요하다. CrewAI로 AI 팀을 꾸리면:
에이전트 1 — 응급의학과 AI
역할: 초기 평가 담당자
목표: 생명을 위협하는 상태를 먼저 식별하고 우선순위를 정한다
에이전트 2 — 내과 AI
역할: 기저질환 분석 담당자
목표: 만성 질환이 현재 상태에 미치는 영향을 분석한다
에이전트 3 — 약사 AI
역할: 약물 안전성 담당자
목표: 현재 복용 약물과 제안된 치료의 상호작용을 확인한다
에이전트 4 — 요약 AI
역할: 종합 정리 담당자
목표: 세 전문가의 의견을 통합해서 주치의용 1페이지 요약을 만든다
각 에이전트는 이전 에이전트의 출력을 받아서 자신의 전문성으로 검토한다. 마지막에 요약 에이전트가 전체를 통합한다.
CrewAI vs LangGraph — 무엇이 다른가
두 도구는 다른 문제를 푼다.
| 항목 | CrewAI | LangGraph |
|---|---|---|
| 핵심 개념 | 역할 기반 팀 협업 | 그래프 기반 흐름 제어 |
| 강점 | 전문성 분리, 역할 몰입 | 복잡한 분기·루프·재개 |
| 약점 | 복잡한 흐름 제어 어려움 | 역할 구조 설정 번거로움 |
| 잘 맞는 케이스 | 다학제 검토, 리서치 팀 | 단계적 의사결정, 승인 흐름 |
어떤 것이 더 좋은지가 아니라 어떤 구조가 문제에 더 잘 맞는지의 문제다. 역할과 전문성이 핵심이면 CrewAI, 흐름 제어와 재개가 핵심이면 LangGraph.
역할 부여의 한계
CrewAI가 만능은 아니다. 실제로 자주 발생하는 문제:
역할 흐릿해짐: 작업이 길어지면 에이전트가 자신의 역할을 벗어나는 경우가 있다. 약사 AI가 갑자기 치료 방향까지 제안하기 시작한다.
에이전트 간 충돌: 두 에이전트가 서로 다른 결론을 내놓을 때 어떻게 중재할지 설계가 필요하다.
긴 컨텍스트 문제: 에이전트가 많아지고 이전 결과들이 쌓이면 컨텍스트 윈도우가 빠르게 소진된다.
에이전트들 사이에서 의견이 충돌할 때 누가 중재하는가 → 슈퍼바이저 패턴
LangGraph와 CrewAI를 함께 쓰는 방법도 있다 → 오케스트레이션 패턴 5가지
다음 회의 한 줄
서진: “크루는 임상 역할 이름과 맞춥니다. 수집/요약/검토.”
다음 화
이제 흩어진 그림을 한 장으로 접자 — 의료 오케스트레이션 케이스 스터디
편집 초안(cu2604021138). 프레임워크·API·임상 규정은 발행일 이후 바뀔 수 있으니 공식 문서와 병원 정책을 기준으로 확인한다.
더 알고 싶다면
🔗 관련 글
- LangGraph 입문 — 그래프 기반의 다른 오케스트레이션 방식
- AutoGen 입문 — 역할 대신 자유 대화로 협력하는 세 번째 방식
- 오케스트레이션 vs 에이전트 — 멀티 에이전트가 필요한 시점 판단
- 의료 오케스트레이션 케이스 스터디 — 역할 기반 팀이 실제로 작동하는 사례