RAG 기반 AI 주식 투자 Agent 1편 - 요구사항 정의와 전체 아키텍처 설계
추상적인 AI Agent가 아니라 실제로 개발 가능한 RAG 기반 AI 주식 투자 Agent를 설계합니다. 제품 목표, 사용자 시나리오, 시스템 경계, 핵심 컴포넌트, 데이터 흐름까지 구체적인 아키텍처 관점에서 정리합니다.
먼저 전제부터 분명히 하자
이 시리즈는 금융 자문이 아니라, RAG 기반 투자 분석 Agent를 어떻게 설계하고 개발할지를 다루는 엔지니어링 시리즈입니다.
실전 서비스로 가기 전에 기본 전제는 다음과 같습니다.
- 초기 단계는 paper trading 기준
- 자동 주문보다 분석 지원과 추천 근거 제공이 우선
- 모든 추천에는 근거 데이터와 출처가 함께 제공
- 실제 매매 전에는 사람 승인 단계를 둠
즉, 처음부터 “완전자율 매매 봇”을 목표로 하지 않습니다. 그건 기술적으로도, 운영적으로도, 규제 관점에서도 너무 위험합니다.
우리가 만들고 싶은 제품은 무엇인가
이 Agent의 목표는 단순히 “어떤 종목을 사라”가 아닙니다.
우리가 만들고 싶은 것은 아래와 같은 시스템입니다.
- 종목 관련 뉴스, 공시, 재무 데이터, 기술 지표를 수집
- 질문 또는 전략 기준에 따라 관련 정보를 검색
- RAG로 최신 맥락을 반영한 분석 생성
- 리스크 규칙을 통과한 경우만 후보 포트폴리오 제안
- 백테스트와 paper trading으로 전략 검증
즉, LLM + RAG + 시장 데이터 + 리스크 엔진 + 실행 제어가 결합된 형태입니다.
사용자 시나리오를 먼저 정의하자
좋은 아키텍처는 좋은 사용자 흐름에서 출발합니다.
이 시스템의 대표 사용자 시나리오는 아래와 같습니다.
시나리오 1. 특정 종목 분석
사용자 질문:
엔비디아를 이번 주에 신규 진입 후보로 봐도 될까?
Agent가 해야 할 일:
- 최근 뉴스/실적 발표/공시 수집
- 최근 가격 흐름과 변동성 확인
- 관련 섹터 분위기 확인
- 기존 포트폴리오 노출도 확인
- 근거 기반 분석과 리스크 요약 반환
시나리오 2. 전략 기반 스크리닝
사용자 질문:
최근 2주간 실적 서프라이즈 이후 상승 모멘텀이 유지되는 미국 대형주 후보를 찾아줘
Agent가 해야 할 일:
- 전략 조건을 구조화
- 종목 universe 스크리닝
- 관련 뉴스와 이벤트 검색
- 정량 필터와 정성 분석 결합
- 후보군과 선택 근거 제시
시나리오 3. 포트폴리오 점검
사용자 질문:
내 포트폴리오에서 AI 반도체 비중이 과도한지 점검해줘
Agent가 해야 할 일:
- 보유 종목 업종/테마 분류
- 섹터 집중도 계산
- 리스크 시나리오별 취약점 평가
- 리밸런싱 아이디어 제안
시스템 경계를 명확히 하자
주식 투자 Agent는 기능이 많아 보이지만, 초기에 범위를 잘라야 합니다.
초기 버전에서 포함할 것:
- 미국 주식 중심 universe
- 뉴스/공시/기본 재무 데이터 수집
- 질의형 분석
- 전략형 스크리닝
- 후보 포트폴리오 제안
- paper trading 기록
초기 버전에서 제외할 것:
- 실주문 자동 실행
- 옵션/선물/암호화폐 동시 지원
- 초단타 HFT 성격의 전략
- 규제 민감 개인 맞춤 투자자문 자동화
이 범위 제한이 있어야 시스템이 현실적인 크기로 유지됩니다.
전체 아키텍처는 어떻게 나눌까
이 프로젝트는 아래 7개 컴포넌트로 나누는 편이 좋습니다.
[1] Data Ingestion
- 시장 시세
- 뉴스
- 공시/실적
- 재무 데이터
[2] Storage Layer
- PostgreSQL
- pgvector
- Redis
- Object Storage
[3] Feature / Research Layer
- 지표 계산
- 이벤트 정규화
- 문서 청킹 / 임베딩
[4] RAG Retrieval Layer
- 뉴스/공시 검색
- 종목별 문맥 검색
- 전략 질의 검색
[5] Agent Orchestration
- Planner
- Screener
- Analyst
- Risk Evaluator
[6] Application Layer
- FastAPI
- 내부 관리자 UI
- 사용자 질의 API
[7] Execution / Simulation Layer
- Backtest
- Paper Trading
- Order Approval Queue
이 구조의 장점은 각 계층 책임이 분명하다는 점입니다.
왜 RAG가 필요한가
일반적인 퀀트 시스템은 정량 데이터만으로도 돌아갑니다. 그런데 주식 분석에는 정량 데이터만으로 설명되지 않는 이벤트가 많습니다.
예:
- 가이던스 상향
- CEO 발언 변화
- 규제 리스크
- 공급망 이슈
- 실적 발표 콜 톤 변화
이런 정보는 보통 뉴스, 실적 발표 transcript, 공시 텍스트 안에 있습니다. 그래서 RAG가 필요합니다.
RAG가 들어가면 가능한 것:
- 최신 뉴스 기반 분석
- 종목별 이벤트 문맥 반영
- 정량 지표와 정성 정보 결합
- 추천 근거와 출처 제공
추천하는 기술 스택
초기 구현 기준으로는 아래 조합이 현실적입니다.
- API 서버:
FastAPI - 메인 DB:
PostgreSQL - 벡터 검색:
pgvector또는 별도 vector DB - 캐시/세션:
Redis - 비동기 작업:
Celery또는Arq - 배치 스케줄링:
APScheduler또는 Airflow - LLM orchestration: 자체 서비스 레이어
- 프론트엔드/관리 UI: 필요 시 별도 분리
굳이 초기에 Kafka나 복잡한 스트리밍 스택부터 넣을 필요는 없습니다. 먼저는 일배치 + 이벤트 배치만으로도 충분합니다.
핵심 도메인 모델
데이터 모델도 초기에 잡아야 합니다.
대표 엔티티:
symbolprice_barcompany_profilenews_articlefiling_documentearnings_transcriptembedding_chunkanalysis_runportfoliopaper_orderrisk_rule_result
이 모델이 명확해야 이후 검색, 분석, 백테스트가 자연스럽게 연결됩니다.
요청 흐름 예시
사용자가 아래 질문을 보냈다고 해보겠습니다.
최근 30일 기준으로 테슬라 신규 진입 위험이 큰지 분석해줘
처리 흐름:
- Router가 질문 유형을
single-stock-analysis로 분류 - Screener가 최근 가격/변동성/거래량 요약
- Retrieval이 최근 뉴스, 실적, 공시 chunk 검색
- Analyst가 RAG 문맥과 정량 데이터 결합
- Risk Engine이 포지션 집중도, 변동성, 이벤트 리스크 평가
- Response Composer가 근거 포함 응답 생성
여기서 중요한 것은 LLM 하나가 모든 걸 처리하지 않는다는 점입니다.
이 시스템에서 가장 위험한 부분
주식 투자 Agent는 기술보다 운영 위험이 더 큽니다.
대표 리스크:
- 오래된 뉴스 기반 잘못된 판단
- 환각으로 없는 근거 생성
- 포트폴리오 집중 리스크 무시
- 비정상 데이터 입력
- 자동 주문으로 이어지는 실수
그래서 아키텍처 단계부터 아래를 반영해야 합니다.
- 출처 없는 답변 금지
- 리스크 룰 엔진 분리
- 사람 승인 단계
- 종목/전략별 한도
- paper trading 우선
시리즈 로드맵
이 시리즈는 아래 순서로 이어집니다.
- 요구사항과 전체 아키텍처
- 시장 데이터와 뉴스/공시 RAG 파이프라인
- Agent workflow와 tool 설계
- 포트폴리오, 리스크, 백테스트 설계
- FastAPI 기반 실제 구현 구조
- paper trading, 관측성, 운영 안전장치
마무리
RAG 기반 AI 주식 투자 Agent를 만들 때 가장 중요한 건, LLM을 어디에 붙일지보다 시스템 경계를 어디까지 허용할지를 먼저 정하는 것입니다.
초기 버전은 분석 보조와 paper trading에 집중하고, 최신 문서 기반 근거 제공과 리스크 제어를 핵심 가치로 삼는 편이 가장 현실적입니다.
다음 글에서는 이 시스템의 핵심인 시장 데이터 + 뉴스 + 공시 + 실적 발표 문서를 어떻게 수집하고 RAG 지식베이스로 만드는지 구체적으로 다루겠습니다.