티스토리 뷰
CrewAI란? 다중 AI 에이전트 시스템 이해하기
Manus와 같은 AI 시스템을 개발하려면 다중 에이전트(AI Agents) 기반의 구조를 이해해야 합니다.
CrewAI는 여러 개의 AI 에이전트가 협업하여 작업을 수행할 수 있도록 설계된 프레임워크입니다.
이 글에서는 CrewAI의 개념과 구조를 설명하고, Ollama와 연동하여 AI 에이전트를 실행하는 방법을 실습합니다.
🔹 1. CrewAI란?
📌 CrewAI 개요
CrewAI는 여러 개의 AI 에이전트가 역할을 분담하고 협력하여 작업을 수행하는 시스템을 구현할 수 있도록 도와주는 Python 라이브러리입니다.
✅ CrewAI의 주요 특징
- 다중 에이전트 시스템: 여러 AI 에이전트가 역할을 분담하여 협력 가능
- 자동화된 워크플로우: 각 AI 에이전트가 특정 작업(Task)을 수행
- LLM 연동 지원: Ollama, OpenAI, Hugging Face 등 다양한 LLM 지원
- FastAPI, LangChain과 쉽게 연동 가능
✅ CrewAI vs 일반적인 AI 시스템
비교 항목 일반적인 AI 시스템 CrewAI 기반 AI 시스템
에이전트 수 | 단일 AI | 다중 AI 협업 |
역할 분배 | 없음 | 명확한 역할 부여 |
워크플로우 | 사용자가 직접 제어 | AI가 자동으로 조율 |
예제 | ChatGPT API | Manus 스타일 AI |
💡 목표: CrewAI를 활용하여 다중 AI 에이전트 시스템을 구축하는 방법을 실습합니다.
🔹 2. CrewAI 설치 및 환경 설정
CrewAI를 사용하려면 Python 환경에서 라이브러리를 설치해야 합니다.
✅ CrewAI 설치
pip install crewai
✅ Ollama 및 기타 종속 라이브러리 설치
pip install ollama fastapi uvicorn
✅ 설치 확인 (Python 환경에서 실행)
import crewai
print("CrewAI 설치 완료:", crewai.__version__)
🔹 3. CrewAI의 핵심 개념
CrewAI의 기본 개념은 Agent(에이전트), Task(작업), Crew(팀)으로 구성됩니다.
📌 1. Agent (AI 에이전트)
AI가 수행할 역할을 정의합니다.
from crewai import Agent
ai_agent = Agent(
name="기술 분석가",
role="최신 AI 기술을 분석하는 전문가",
backstory="10년 경력의 AI 연구원",
model="mistral"
)
📌 2. Task (작업)
각 AI 에이전트가 수행해야 할 작업을 설정합니다.
from crewai import Task
task = Task(
description="최신 AI 기술 트렌드를 조사하고 요약해줘.",
agent=ai_agent
)
📌 3. Crew (팀)
여러 개의 AI 에이전트를 조합하여 하나의 팀으로 설정합니다.
from crewai import Crew
crew = Crew(
agents=[ai_agent], # AI 에이전트 추가
tasks=[task] # 작업 추가
)
✅ CrewAI의 전체 구조
Crew(agents=[Agent1, Agent2, Agent3], tasks=[Task1, Task2, Task3])
✅ Manus와 같은 시스템 구현을 위해 CrewAI 활용 가능
- 여러 AI가 역할을 나누어 문서 분석, 코딩, 보고서 생성 등의 작업 수행
- 사용자의 요청을 자동 분석하여 최적의 답변 제공
🔹 4. CrewAI + Ollama 실습: AI 에이전트 실행하기
이제 CrewAI와 Ollama를 활용하여 기본적인 AI 에이전트 시스템을 실행해 보겠습니다.
🔹 Python 코드 (CrewAI + Ollama 연동 테스트)
from crewai import Agent, Task, Crew
import ollama
# Ollama 기반 AI 실행 함수
def query_ollama(prompt):
response = ollama.chat(model="mistral", messages=[{"role": "user", "content": prompt}])
return response["message"]["content"]
# CrewAI 기반 AI 에이전트 정의
researcher = Agent(
name="기술 분석가",
role="최신 AI 기술을 조사하는 AI",
backstory="AI 연구소에서 10년간 기술을 연구한 전문가",
model="mistral"
)
writer = Agent(
name="기술 작가",
role="기술 블로그를 작성하는 AI",
backstory="기술 문서를 전문적으로 작성하는 AI",
model="mistral"
)
# 연구원에게 AI 기술 조사 요청
research_task = Task(
description="2024년 AI 기술 트렌드를 조사하고 요약해줘.",
agent=researcher
)
# 작가에게 블로그 글 작성 요청
write_task = Task(
description="조사한 내용을 바탕으로 블로그 글을 작성해줘.",
agent=writer
)
# Crew 설정 (AI 에이전트 협업)
crew = Crew(agents=[researcher, writer], tasks=[research_task, write_task])
# AI 에이전트 실행
result = crew.kickoff()
print("📌 AI 응답:")
print(result)
📌 실행 결과:
1️⃣ AI 연구원이 최신 AI 트렌드를 조사
2️⃣ AI 기술 작가가 조사 내용을 바탕으로 블로그 글 작성
✅ 이 코드에서 확인할 점
- CrewAI를 사용하여 여러 AI가 역할을 나누어 협업
- Ollama 기반의 AI 모델(mistral)을 활용하여 맞춤형 AI 생성
- Manus 스타일의 AI 시스템을 직접 구현하는 기초 코드 제공
🔹 5. CrewAI로 AI 자동화 시스템 확장하기
이제 CrewAI를 활용하여 더 강력한 AI 시스템을 개발할 수 있습니다.
다음 단계에서는 FastAPI를 활용하여 CrewAI 기반 AI 서비스를 API로 제공하는 방법을 배워볼 것입니다.
📌 AI Agent 확장 로드맵
✅ CrewAI + FastAPI 연동하여 API 형태로 AI 제공
✅ LangChain과 결합하여 AI의 기억력(장기 메모리) 추가
✅ Docker 컨테이너로 AI Agent 배포 및 운영
🎯 6. CrewAI 개념 및 실습 정리
✅ CrewAI는 여러 AI가 협력하여 작업하는 다중 AI 시스템을 구축하는 도구이다.
✅ Agent, Task, Crew 개념을 활용하여 AI 역할을 분리할 수 있다.
✅ CrewAI와 Ollama를 연동하면 AI 협업 시스템을 만들 수 있다.
✅ Manus 스타일의 AI 시스템을 직접 개발할 수 있다.
🚀 다음 글 미리보기:
👉 "FastAPI로 AI API 만들기 - Ollama와 CrewAI 연동"
👉 FastAPI를 활용하여 CrewAI 기반 AI 에이전트를 API 서비스로 배포하는 방법을 배워봅니다.
'study > ai prompt' 카테고리의 다른 글
나만의 AI 에이전트 설계하기 (역할 기반 AI 구현) (0) | 2025.03.15 |
---|---|
FastAPI로 AI API 만들기 - Ollama와 CrewAI 연동 (0) | 2025.03.15 |
Ollama 설치 및 기본 사용법 (로컬 LLM 실행하기) (0) | 2025.03.14 |
Manus 스타일 AI Agent란? Ollama + CrewAI로 맞춤형 AI 만들기 (0) | 2025.03.14 |
고급 프롬프트 작성법: AI의 한계를 극복하는 방법 (0) | 2025.03.14 |
- Total
- Today
- Yesterday
- github
- NestJS
- 백엔드개발
- llm
- nodejs
- Ktor
- Webpack
- nextJS
- Next.js
- 스마트 컨트랙트
- kotlin
- REACT
- AI챗봇
- PostgreSQL
- Docker
- 프론트엔드
- 웹개발
- 관리자
- fastapi
- 개발블로그
- AI 자동화
- App Router
- SEO최적화
- 백엔드
- rag
- CI/CD
- Prisma
- gatsbyjs
- LangChain
- seo 최적화 10개
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |