CrewAI는 역할·목표·배경을 가진 여러 에이전트를 팀처럼 묶어 함께 일하게 하는 파이썬 오픈소스 프레임워크다. 앞 에이전트가 낸 결과를 다음 에이전트가 이어받아 최종 결과물을 만드는 구조라, 조사→작성→검토처럼 단계가 분명한 일을 자동화할 때 쓴다.
| 구성 요소 | 뜻 | 예시 |
|---|---|---|
| Agent | 일을 맡는 팀원 | 시니어 리서처 |
| Task | 맡길 일과 기대하는 결과 | 최신 자료 5개 요약 |
| Crew | 에이전트와 태스크를 묶은 팀 | 블로그 작성 팀 |
| Process | 일을 진행하는 방식 | 순차 / 계층 |
에이전트를 만들 때는 role, goal, backstory 세 가지를 적는다. 이 문장이 그대로 모델에게 가는 지시가 된다. 그래서 "리서처"라고만 쓰기보다 "출처를 꼭 남기는 꼼꼼한 시니어 리서처"처럼 구체적으로 쓸수록 결과가 안정된다. 태스크에는 할 일(description)과 기대 결과(expected_output)를 적어서, 다음 단계로 무엇을 넘겨야 하는지 분명히 해 둔다.
pip install crewai로 설치한 뒤 crewai create crew 프로젝트명을 실행하면 프로젝트 뼈대가 생긴다. 에이전트는 agents.yaml에, 태스크는 tasks.yaml에 적고, 파이썬 코드에서 @agent, @task, @crew 데코레이터로 연결한다. 실행은 crewai run으로 한다.
웹 검색이나 파일 읽기 같은 도구는 에이전트마다 따로 붙인다. 검색 도구는 리서처에게만 주고 작가에게는 주지 않는 식으로 권한을 나누면 엉뚱한 행동이 줄어든다. 모델은 OpenAI, Anthropic, 로컬 모델 등 여러 LLM 가운데서 고를 수 있다.
| 방식 | 진행 | 이럴 때 쓴다 |
|---|---|---|
| sequential | 정한 순서대로 태스크 실행 | 조사→초안→검토처럼 흐름이 고정된 일 |
| hierarchical | 매니저 에이전트가 일을 나눠 주고 검토 | 순서를 미리 정하기 어려운 일 |
처음에는 순차 방식으로 시작해야 결과를 예측하기 쉽다. 계층 방식은 매니저 에이전트가 모델을 추가로 호출하므로 비용과 실행 시간이 늘어난다.
| 항목 | CrewAI | LangGraph |
|---|---|---|
| 설계 방식 | 역할과 태스크로 팀 구성 | 노드와 엣지로 그래프 설계 |
| 시작 난이도 | 쉬움 | 중간 |
| 흐름 제어 | 정해진 진행 방식 위주 | 분기·반복을 세밀하게 |
팀에 빗대어 빨리 만들고 싶으면 CrewAI가, 분기와 상태를 세밀하게 다뤄야 하면 LangGraph가 맞다. 에이전트끼리 주고받는 내용이 길어질수록 토큰 비용이 커지고 결과도 실행할 때마다 조금씩 달라진다. 한 번에 끝나는 단순한 작업이라면 에이전트 하나나 일반 프롬프트로 충분하다.
가장 흔한 건 조사하는 에이전트와 쓰는 에이전트를 나눈 작업 흐름이다. 검색 도구를 가진 리서처가 자료를 모으고, 작가가 초안을 쓰고, 검토자가 다듬는 순차 방식이 기본 형태다.
| 어디서 | 어떻게 쓰나 |
|---|---|
| 리서치 보고서 | 리서처가 웹 검색으로 자료를 모아 요약하고, 분석가가 정리해 보고서 초안을 만든다 |
| 블로그·콘텐츠 작성 | 주제 조사→초안 작성→교정을 에이전트 셋에 나눠 맡긴다 |
| 사내 문서 정리 | 파일 읽기 도구를 준 에이전트가 문서를 읽고, 다른 에이전트가 요약·답변을 만든다 |
| 프로토타입 실험 | 멀티 에이전트 구조가 맞는지 YAML 몇 줄로 빠르게 시험해 본다 |