티스토리 뷰

반응형

나만의 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가 사용자의 요청을 기억하고 맥락을 유지하는 방법을 배워봅니다.


 

 

※ 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
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
글 보관함
반응형