Skip to content
@ai-game-agent

ai-game-agent

AI Agent 기반 개인 맞춤형 게임 추천 및 분석 시스템

한성대학교 클라우드 컴퓨팅 산학협력 프로젝트

Team 토깽스터 | 김혜진, 임혜정, 김서희

프로젝트 개요

Steam의 약 70,000개에 달하는 방대한 게임 라이브러리에서 사용자에게 최적화된 게임을 추천하는 AI Agent 기반 시스템입니다. 자연어 질의를 통해 사용자의 취향, 예산, 상황을 종합적으로 분석하여 정확도 높은 게임 추천을 제공합니다.

배포 URL: https://game-picker.netlify.app

GitHub Repository: https://github.com/AI-GAME-AGENT

문제 정의

기존 게임 추천 시스템의 한계

  1. 게임 선택의 어려움

    • Steam의 약 70,000개 방대한 게임 라이브러리
    • 너무 많은 선택지로 인한 의사결정 피로
    • 늘 비슷한 인기 게임만 추천되는 문제
  2. 커뮤니티 후기의 한계

    • 개인화된 추천 불가능
    • 일반적인 리뷰만 제공
  3. 정보 신뢰성 문제

    • 광고성 리뷰 구분의 어려움
    • 오래된 정보 혼재

솔루션

자연어로 질문하면 AI Agent가 여러 도구를 조합해 가장 적절한 게임을 추천하는 시스템을 개발했습니다. 직관적인 인터페이스와 다중 Agent 협업을 통해 사용자에게 정확도 높은 맞춤 게임을 제공합니다.

시스템 아키텍처

AI Agent 설계

AI Agent의 정의: 사용자의 목표를 달성하기 위해 자율적으로 추론하고, 계획하며, 행동하는 지능형 소프트웨어 시스템

핵심 구성 요소

  1. LLM

    • AWS Bedrock의 Claude 3 Haiku
    • Strands Agent SDK 활용
  2. Retrieval

    • Bedrock Knowledge Base
    • 벡터 기반 의미 검색 구축
  3. Tools

    • DynamoDB 조건 필터
    • 상세 게임 정보 조회
    • 웹 검색 (최신 리뷰 및 업데이트 정보)
  4. Memory

    • DynamoDB 기반
    • 세션별 대화 히스토리 유지

AI Agent 패턴

1. ReAct Pattern (추론·행동 패턴)

단순한 챗봇이 아닌 복수의 도구를 활용해 스스로 계획하고 행동하도록 설계했습니다.

  • Thought (사고): 모델이 현재 상황을 분석하고 다음 단계를 계획
  • Action (행동): 계획에 따라 구체적인 행동 수행 (정보 검색, 계산, 도구 사용 등)
  • Observation (관찰): 행동의 결과를 관찰하고 평가하여 결론 도달

출처: Yao et al., 2023 - ReAct: Synergizing Reasoning and Acting in Language Models

2. Hybrid Retrieval Pattern (혼합 검색 패턴)

의미 기반 검색과 조건 기반 검색을 결합하여 검색 정확도를 극대화했습니다.

Vector Only vs Filter Only

Vector Only Filter Only Hybrid (본 시스템)
의미 기반 검색만 사용 조건 필터만 사용 두 방식 결합
자연어 이해 우수, 취향/분위기 반영 정확한 조건 필터, 가격/장르 반영 의미 이해 + 정확한 조건 반영
정확한 조건 반영 실패 의미 이해 불가, 취향/상황 반영 실패 양쪽 장점 활용
  • Bedrock Knowledge Base: 벡터 검색용
  • DynamoDB: 메타데이터 필터링용

출처: AWS - Hybrid search with Amazon OpenSearch

데이터셋

데이터 소스

Steam API를 통해 110,000개의 게임 데이터 수집

1. Knowledge Base (Vector DB)

목적: Semantic Search (의미 기반 검색)용 게임 문서 벡터 저장소

저장 데이터:

  • 게임명 (name)
  • 게임 설명 요약 텍스트 (short_description)
  • 게임 카테고리 (categories)
  • 게임 장르 (genres)

선정 이유: 자연어 질의에 대한 의미 기반 검색으로 취향 및 상황 기반 유사 게임을 고정확도로 찾을 수 있음

2. Game Metadata 저장소 (DynamoDB)

저장 데이터:

  • app_id (Primary Key)
  • name
  • genres
  • price (USD)
  • is_multiplayer
  • positive/negative_review
  • tags
  • description
  • 외 Kaggle Steam 데이터 전체 필드

선정 이유: 대용량 JSON을 스키마 없이 빠르게 조회 및 확장 가능

데이터 전처리 과정

Steam 원본 데이터는 수십 개의 필드와 긴 텍스트로 구성되어 Bedrock Knowledge Base 업로드 시 오류가 발생하는 문제가 있었습니다.

전처리 작업:

  1. 핵심 정보(게임명, 요약 설명, 장르, 카테고리, 태그)를 선별하여 단일 문서 형태로 재구성
  2. 과도하게 긴 필드(detailed_description, screenshots 등) 제거로 문서 크기 최적화
  3. 카테고리 정보 기반 멀티플레이 여부 추가 생성으로 검색·추천 품질 향상
  4. 모든 게임 데이터를 자연어 기반 JSONL 문서로 변환하여 Bedrock이 안정적으로 임베딩할 수 있도록 정제

시스템 플로우차트

1. User Query 입력

사용자가 자연어로 게임 추천 요청

  • 예시: "2만원 이하 커플 퍼즐 게임 추천해줘"

2. LLM Agent가 질의 분석

  • 키워드, 조건, 상황 요소 추출
    • 장르 (Puzzle)
    • 가격 (≤2만원)
    • 상황 (커플)
    • 모드 (협동)
  • 어떤 도구를 사용할지 "계획(Plan)" 수립
  • 의미 기반 검색 + 조건 기반 필터링 필요 여부 판단

3. Tools 실행

3-1. Semantic Search

  • AWS Bedrock Knowledge Base (Vector DB)에 쿼리 전달
  • 자연어 의미 기반으로 유사 게임 후보군 검색
  • Top-N 후보 결과를 Agent로 반환

3-2. 메타데이터 필터링

  • DynamoDB 메타데이터 기반 정밀 조건 필터링
  • max_price, genres, 멀티플레이 여부 등

3-3. 웹 검색

  • 최신 리뷰, 패치, 업데이트 정보가 필요한 경우
  • Strands에서 제공하는 기본 웹 검색 툴 사용하여 최신 데이터 보강

3-4. 세부 정보 조회

  • 특정 후보의 상세 정보가 필요할 때 ID 기반 조회
  • Steam 리뷰 수, 평점 등 데이터 확보

4. LLM Reasoning (최종 판단 및 랭킹)

  • Tools를 사용한 결과를 종합 평가 및 정렬
  • 3~5개의 Top 추천 게임 선정
  • 각 추천에 설명(reasoning) 생성

5. Final Answer 출력

  • 추천 게임 목록
  • 가격, 장르, 플레이 방식 등 핵심 정보
  • 사용자의 요구와 어떻게 맞는지 이유 설명 및 분석
  • 필요시 추가 정보 요청 (예산, 분위기, 난이도 등)

기술 스택

AI Agent 로직

로컬 Python 실행 환경

  • Agent Framework: Strands Agent SDK
  • LLM: AWS Bedrock Claude 3 Haiku
  • Vector DB: Bedrock Knowledge Base
  • Metadata DB: AWS DynamoDB
  • Web Search: Strands 제공 웹 검색 툴

Backend

개발

  • Server: FastAPI

배포

  • Render 클라우드에 배포하여 REST API 형태로 제공

Frontend

개발

  • Main Library: React, react-router-dom
  • Styling: SCSS, Keyframe
  • Data Fetching: Axios
  • Build/Bundler: Vite

배포

  • API 연동 후 Netlify에 배포

아키텍처 구조

로컬 Python 기반 Agent를 웹에서 호출 가능한 서비스 구조 (API + Web UI)로 확장

프로젝트 실행 결과

상황 1: 연인과 즐길만한 무료 게임 추천

로컬 CLI 기반 실행으로 자연어 질의에 대한 정확한 게임 추천 제공

상황 2: 무료 감성 게임 추천

사용자의 감성적 요구사항을 분석하여 적합한 게임 추천

웹 서비스

직관적인 웹 인터페이스를 통해 누구나 쉽게 접근 가능

팀 구성 및 역할

김혜진 (2271340) - 모바일소프트웨어트랙/웹공학트랙

  • AI Agent 파이프라인 구축
  • 메타데이터 DB (DynamoDB) 구축
  • 백엔드 API 개발

김서희 (2171186) - 웹공학트랙/모바일소프트웨어트랙

  • 데이터 수집 및 전처리
  • Vector DB (Bedrock Knowledge Base) 구축
  • AWS 환경 구성 및 관리

임혜정 (2191233) - 웹공학트랙/모바일소프트웨어트랙

  • UI 디자인 및 프론트엔드 개발
  • API 연동 및 데이터 처리
  • 프론트 서버 배포

연락처

참고 자료

  • AWS - What is AI Agents
  • Yao et al., 2023 - ReAct: Synergizing Reasoning and Acting in Language Models
  • AWS - Hybrid search with Amazon OpenSearch

한성대학교 클라우드 컴퓨팅 수업 | 7반
지도교수: 김성동 교수님 | 멘토: 임지훈 멘토님

Popular repositories Loading

  1. ai-agent ai-agent Public

    Python 1

  2. ai-agent-fe ai-agent-fe Public

    JavaScript

  3. .github .github Public

Repositories

Showing 3 of 3 repositories

Top languages

Loading…

Most used topics

Loading…