티스토리 뷰
나만의 AI 에이전트 설계하기 (역할 기반 AI 구현)
Manus와 같은 AI 시스템에서는 각 에이전트(Agent)가 특정한 역할을 수행하도록 설계됩니다.
이번 글에서는 CrewAI를 활용하여 AI 에이전트의 역할을 정의하고, 맞춤형 AI 시스템을 설계하는 방법을 배워봅니다.
🔹 1. 역할 기반 AI 에이전트란?
📌 AI 에이전트(Agent)란?
AI 에이전트는 특정 역할을 수행하는 AI 모델입니다.
Manus 스타일 AI 시스템에서는 여러 개의 AI 에이전트가 협력하여 작업을 수행합니다.
✅ 역할 기반 AI의 특징
- 특정 전문성을 가진 AI를 정의할 수 있음
- AI 간 협업이 가능 (예: 연구원 + 기술 작가 + 분석가)
- 맥락을 유지하며 맞춤형 답변 제공
✅ 일반적인 AI vs 역할 기반 AI 비교
비교 항목 일반적인 AI 역할 기반 AI (CrewAI)
답변 스타일 | 범용적 | 전문 분야에 맞춤 최적화 |
협업 가능 여부 | 불가능 | 다중 AI 협업 가능 |
맥락 유지 | 제한적 | 특정 도메인 맥락 유지 |
💡 목표: CrewAI를 활용하여 AI 역할을 정의하고 협업 가능한 AI 시스템을 구축
🔹 2. 역할 기반 AI 설계 과정
✅ Step 1: AI의 역할 정의
AI의 역할을 명확히 지정해야 AI가 더 정확한 답변을 제공합니다.
✅ 예제 - AI 역할 설정
역할 설명
연구원 (Researcher) | 최신 기술을 조사하고 분석 |
기술 작가 (Writer) | 연구원의 결과를 문서로 정리 |
데이터 분석가 (Analyst) | 데이터를 분석하고 결과 제공 |
소프트웨어 엔지니어 (Engineer) | 코드 작성 및 최적화 |
✅ 역할 정의 예제
from crewai import Agent
researcher = Agent(
name="연구원",
role="최신 AI 기술을 조사하는 전문가",
backstory="AI 기술 트렌드를 분석하는 연구원",
model="mistral"
)
writer = Agent(
name="기술 작가",
role="기술 블로그를 작성하는 AI",
backstory="기술 문서를 전문적으로 작성하는 AI",
model="mistral"
)
✅ Step 2: 역할 기반 AI 협업 구조 설계
각 AI가 역할을 분담하고 협력할 수 있도록 CrewAI를 활용합니다.
🔹 Python 코드 (역할 기반 AI 협업 구현)
from crewai import Agent, Task, Crew
# AI 에이전트 정의
researcher = Agent(
name="연구원",
role="최신 AI 기술을 조사하는 전문가",
backstory="10년 경력의 AI 연구원",
model="mistral"
)
writer = Agent(
name="기술 작가",
role="기술 블로그를 작성하는 AI",
backstory="기술 문서를 작성하는 전문가",
model="mistral"
)
# 연구원이 조사할 작업 정의
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 트렌드를 조사
2️⃣ 기술 작가가 조사 결과를 블로그 글로 정리
3️⃣ 최종 결과를 출력 및 저장
📌 실행 결과: 연구원이 AI 기술을 조사하고, 기술 작가가 이를 블로그 글로 정리
✅ 이 코드에서 확인할 점
- CrewAI를 활용하여 역할을 분담한 AI 협업 시스템을 구축
- Manus 스타일의 AI 역할 기반 에이전트 시스템을 구현
🔹 3. 역할 기반 AI의 확장 가능성
✅ 1. AI 역할 추가 (예: 데이터 분석가, 소프트웨어 엔지니어)
AI의 역할을 확장하여 다양한 도메인에 맞는 AI 시스템을 설계할 수 있습니다.
🔹 데이터 분석가 추가 예제
analyst = Agent(
name="데이터 분석가",
role="데이터를 분석하고 의미 있는 인사이트를 도출하는 AI",
backstory="대량의 데이터를 분석하여 통찰을 제공하는 전문가",
model="mistral"
)
analysis_task = Task(
description="최근 AI 연구 논문의 데이터를 분석하고 요약해줘.",
agent=analyst
)
crew = Crew(agents=[researcher, writer, analyst], tasks=[research_task, write_task, analysis_task])
result = crew.kickoff()
print("📌 AI 응답:")
print(result)
✅ 추가 기능
- AI가 논문 데이터를 분석하여 핵심 요약 제공
- 기술 작가가 이를 문서화하여 정리
✅ 2. AI 역할 기반 FastAPI 연동
역할을 기반으로 FastAPI를 활용하여 API 형태로 제공할 수도 있습니다.
🔹 FastAPI 기반 AI 역할 요청 API
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class AIRequest(BaseModel):
role: str
question: str
@app.post("/ai_role/")
async def ai_role(request: AIRequest):
agent = Agent(
name="사용자 정의 AI",
role=request.role,
backstory="사용자가 요청한 역할을 수행하는 AI",
model="mistral"
)
task = Task(description=request.question, agent=agent)
crew = Crew(agents=[agent], tasks=[task])
result = crew.kickoff()
return {"response": result}
✅ 테스트 요청 (cURL 예제)
curl -X 'POST' 'http://127.0.0.1:8000/ai_role/' \
-H 'Content-Type: application/json' \
-d '{"role": "소프트웨어 엔지니어", "question": "Python에서 비동기 프로그래밍의 개념을 설명해줘."}'
✅ 응답 예시
{
"response": "Python의 비동기 프로그래밍은 asyncio 라이브러리를 사용하여 동작하며..."
}
📌 FastAPI를 활용하여 역할 기반 AI를 API로 제공할 수 있음
🎯 4. 역할 기반 AI 설계 정리
✅ CrewAI를 활용하여 AI 역할을 나누고 협업 시스템을 구축할 수 있다.
✅ Manus 스타일 AI 시스템에서는 여러 AI가 협력하여 작업을 수행한다.
✅ FastAPI와 연동하면 역할 기반 AI를 API로 제공할 수 있다.
✅ AI의 역할을 추가하면 데이터 분석, 소프트웨어 엔지니어링 등 다양한 기능을 구현할 수 있다.
🚀 다음 글 미리보기:
👉 "AI 기억력 추가하기 - 세션 기반 대화 관리"
👉 AI가 사용자의 요청을 기억하고 맥락을 유지하는 방법을 배워봅니다.
'study > ai prompt' 카테고리의 다른 글
AI 자동화 시스템 구축 - 크롤링 및 데이터 분석 AI (0) | 2025.03.16 |
---|---|
AI 기억력 추가하기 - 세션 기반 대화 관리 (0) | 2025.03.16 |
FastAPI로 AI API 만들기 - Ollama와 CrewAI 연동 (0) | 2025.03.15 |
CrewAI란? 다중 AI 에이전트 시스템 이해하기 (0) | 2025.03.15 |
Ollama 설치 및 기본 사용법 (로컬 LLM 실행하기) (0) | 2025.03.14 |
- Total
- Today
- Yesterday
- kotlin
- gatsbyjs
- 프론트엔드면접
- 백엔드개발
- PostgreSQL
- App Router
- 관리자
- SEO최적화
- github
- llm
- NestJS
- 프론트엔드
- Python
- Next.js
- Ktor
- LangChain
- SEO 최적화
- seo 최적화 10개
- fastapi
- Docker
- AI챗봇
- nodejs
- Webpack
- 개발블로그
- nextJS
- rag
- Prisma
- CI/CD
- 웹개발
- REACT
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |