crewai - 다중 AI 에이전트 협업 프레임워크
crewai
CrewAI는 역할 기반의 다중 AI 에이전트가 협업하여 복잡한 작업을 수행할 수 있도록 설계된 프레임워크입니다. 각 에이전트가 고유한 역할을 가지고 있으며, 이를 통해 전체 시스템의 효율성과 유연성을 높일 수 있습니다. CrewAI는 특히 생산 환경에서의 활용을 염두에 두고 설계되었습니다.
개요
CrewAI는 AI 에이전트를 이용하여 복잡한 작업을 효과적으로 수행하는 프레임워크입니다. 각 에이전트는 특정 역할을 맡아 작업을 수행하며, 팀 전체가 협력하여 목표를 달성합니다. 이는 모든 작업이 잘 조율된 팀처럼 기능하게 만들어 줍니다.
주요 기능
역할 기반 에이전트 설계
CrewAI를 사용하면 특정 역할, 목표, 도구를 가진 AI 에이전트를 사용자 지정할 수 있습니다. 이러한 에이전트들은 각자의 역할에 맞춰 독립적으로 결정을 내리고 협력하며, 정보를 공유하고 작업을 할당합니다.
자율적인 에이전트 간 위임
에이전트들은 작업을 자율적으로 위임하고 서로에게 문의할 수 있어 문제 해결 효율성을 극대화할 수 있습니다.
유연한 작업 관리
사용자는 사용자 정의 도구로 작업을 정의하고, 이를 동적으로 에이전트에 할당할 수 있습니다. CrewAI는 순차적인 작업 실행 뿐만 아니라 계층적 프로세스와 같은 더 복잡한 작업 흐름도 지원합니다.
넓은 도구 통합
OpenAI, Google, Azure, HuggingFace 등 다양한 모델 제공자를 사용할 수 있으며, 로컬 모델 통합을 통해 데이터 프라이버시를 고려한 작업 수행이 가능합니다.
메모리 시스템
CrewAI의 메모리 시스템은 단기 메모리, 장기 메모리, 엔티티 메모리, 컨텍스트 메모리 등으로 구성되어 있으며, 에이전트가 과거의 상호 작용을 기억하고 학습할 수 있도록 지원합니다.
템플릿 사용
사전 빌드된 템플릿을 사용하여 쉽게 새로운 에이전트를 만들고 배포할 수 있습니다.
사용 예제
주식 분석
CrewAI는 주식 분석과 같은 복잡한 작업에 활용될 수 있습니다. 예를 들어, 특정 기업을 조사하고 주식을 매수, 보유, 매도할지 간결한 보고서로 정리할 수 있습니다.
여행 계획 수립
CrewAI를 통해 사용자가 입력한 출발지, 목적지, 여행 시기, 선호 활동 등을 바탕으로 여행 계획을 세울 수 있습니다. 여러 에이전트가 협력하여 도시를 선정하고, 활동을 계획하며, 예산을 세우고 일정을 구성합니다.
게임 개발
유저가 원하는 게임의 기본 설명과 메커니즘을 입력하면, 여러 에이전트가 협력하여 게임을 코딩하고, 지속적으로 소스 코드를 검토 및 개선할 수 있습니다.
생성 및 설정
초기 설정
CrewAI를 설치하고 초기 설정을 진행합니다. 다음 명령어를 통해 패키지를 설치할 수 있습니다:
pip install crewai[tools]
에이전트 정의
에이전트의 역할, 목표, 사용 도구 등을 정의합니다. 예를 들어, 여행 계획 수립을 위한 에이전트를 다음과 같이 정의할 수 있습니다:
from crewai import Agent
expert_travel_agent = Agent(
role="Expert Travel Agent",
backstory="Expert in travel planning and logistics.",
goal="Create a 7-day travel itinerary with budget and safety tips.",
verbose=True,
llm=ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0.7)
)
작업 정의
에이전트에게 할당할 작업을 정의합니다. 예를 들어, 여행 계획 수립 작업을 다음과 같이 정의할 수 있습니다:
from crewai import Task
from textwrap import dedent
plan_itinerary_task = Task(
description=dedent("""
Develop a 7-Day Travel Itinerary
Include budget, packing suggestions, and safety tips.
"""),
agent=expert_travel_agent
)
크루 생성
정의된 에이전트와 작업을 기반으로 크루를 생성하고 작업을 시작합니다:
from crewai import Crew, Process
travel_crew = Crew(
agents=[expert_travel_agent],
tasks=[plan_itinerary_task],
process=Process.sequential,
verbose=True
)
result = travel_crew.kickoff()
print(result)
결론
CrewAI는 다양한 역할을 가진 에이전트들이 협력하여 복잡한 작업을 수행할 수 있도록 지원하는 강력한 프레임워크입니다. 생산 환경에 적용하기 쉬운 구조와 다양한 통합 옵션을 통해, 다중 에이전트 시스템의 잠재력을 최대한 활용할 수 있습니다. CrewAI를 이용해 더 효율적이고 창의적인 프로젝트를 수행할 수 있기를 기대합니다.