WARNING
TradingAgents 프레임워크는 연구 목적으로만 사용됩니다. 트레이딩 성과는 선택한 언어 모델, 모델 온도(Temperature), 거래 주기, 데이터 품질 등 다양한 요인에 의해 영향을 받습니다. 본 프레임워크는 금융, 투자 또는 거래 조언을 구성하지 않습니다.
AI 팀이 당신의 투자 결정을 도와준다면 어떤 기분일지 상상해 보신 적이 있나요?
오늘 소개할 TradingAgents는 나만의 「AI 퀀트 트레이딩 팀」을 구축할 수 있게 해주는 오픈 소스 프레임워크입니다. 이 프레임워크는 실제 금융 기관의 업무 프로세스를 시뮬레이션합니다. 연구원이 조사하고, 분석가가 보고서를 작성하며, 리스크 관리 팀이 위험을 평가한 후, 마지막으로 트레이더가 주문을 내는 방식입니다.
흥미로우신가요? 바로 시작해 보겠습니다.
대상 독자
이 글은 1~5년 차 개발 경험이 있는 기술직군을 대상으로 하며, 다음 조건이 필요합니다:
- Python 기초 지식 및 코드 이해 능력
- AI Agent 및 멀티 에이전트 시스템(MAS)에 대한 호기심
- AI를 활용한 투자 결정 보조 시도(단, 실제 자산 투자 조언으로 간주하지 말 것)
핵심 의존성 및 환경
실행에 필요한 요소들은 다음과 같습니다:
- Python: 3.10 이상
- 환경 관리: Anaconda 또는 venv 권장
- LLM Provider: OpenAI (GPT), Google (Gemini), Anthropic (Claude), xAI (Grok), OpenRouter, Ollama (로컬 모델)
- 데이터 소스: Alpha Vantage (주식 데이터, 뉴스, 지표)
- 핵심 프레임워크: LangGraph (멀티 에이전트 오케스트레이션)
TIP
단순히 효과만 확인하고 싶다면 CLI 모드를 사용하세요. 코드를 작성할 필요가 없어 진입 장벽이 매우 낮습니다.
프로젝트 구조
TradingAgents/
├── cli/ # 명령줄 인터페이스
│ └── main.py # 실행 엔트리 포인트
├── tradingagents/
│ ├── agents/
│ │ ├── analysts/ # 분석가 팀
│ │ │ ├── fundamentals_analyst.py # 기본적 분석
│ │ │ ├── market_analyst.py # 시장 분석
│ │ │ ├── news_analyst.py # 뉴스 분석
│ │ │ └── social_media_analyst.py # 소셜 미디어 감성 분석
│ │ ├── researchers/ # 연구원 팀
│ │ │ ├── bull_researcher.py # 강세론 연구원
│ │ │ └── bear_researcher.py # 약세론 연구원
│ │ ├── trader/ # 트레이더
│ │ │ └── trader.py
│ │ ├── risk_mgmt/ # 리스크 관리 팀
│ │ │ ├── aggressive_debator.py
│ │ │ ├── conservative_debator.py
│ │ │ └── neutral_debator.py
│ │ └── managers/
│ │ ├── research_manager.py
│ │ └── risk_manager.py
│ ├── dataflows/ # 데이터 흐름
│ │ ├── alpha_vantage_*.py # Alpha Vantage 데이터
│ │ └── y_finance.py # Yahoo Finance 데이터
│ ├── graph/ # LangGraph 그래프 구조
│ │ └── trading_graph.py
│ └── llm_clients/ # LLM 클라이언트
│ ├── anthropic_client.py
│ ├── google_client.py
│ └── factory.py
├── main.py # Python 호출 엔트리 포인트
└── test.py # 테스트 케이스
구조가 매우 명확합니다. agents 디렉토리는 다양한 AI 역할을 저장하고, dataflows는 데이터 획득을 담당하며, graph는 이러한 역할들을 워크플로우로 연결합니다.
단계별 배포 절차
1. 프로젝트 클론 및 환경 생성
# 코드 클론
git clone https://github.com/TauricResearch/TradingAgents.git
cd TradingAgents
# Python 환경 생성 (conda 권장)
conda create -n tradingagents python=3.13
conda activate tradingagents
# 의존성 설치
pip install -r requirements.txt
TIP
Python 3.13이 공식 권장 버전이지만, 3.10 이상에서도 실행 가능합니다. 호환성 문제가 발생하면 3.11을 시도해 보세요.
2. API Key 설정
TradingAgents는 여러 LLM Provider를 지원하며, 최소 하나 이상 설정해야 합니다:
# 방법 1: 환경 변수
export OPENAI_API_KEY=sk-your-openai-key
export ANTHROPIC_API_KEY=sk-ant-your-anthropic-key
export GOOGLE_API_KEY=your-google-key
export ALPHA_VANTAGE_API_KEY=your-alpha-vantage-key
# 방법 2: 설정 파일 복사
cp .env.example .env
# 그 후 .env 파일을 편집하여 키를 입력합니다.
TIP
Alpha Vantage는 주식 데이터를 가져오는 데 필수적인 API입니다. 무료 버전은 호출 제한이 있지만 테스트용으로는 충분합니다.
3. CLI 빠른 체험
코드를 작성하고 싶지 않다면 바로 CLI를 실행하세요:
python -m cli.main
다음 항목을 선택할 수 있는 대화형 인터페이스가 나타납니다:
- 주식 티커 (예: NVDA, AAPL)
- 분석 날짜
- 사용할 LLM (GPT, Gemini, Claude 등 지원)
- 연구 깊이
- 토론 횟수
선택이 완료되면 프레임워크가 일련의 AI Agent 협업을 시작하며, 터미널에서 실시간으로 출력되는 분석 보고서를 볼 수 있습니다.

분석이 진행됨에 따라 서로 다른 Agent의 출력이 단계별로 나타납니다:

최종적으로 트레이더가 거래 제안을 내놓습니다:

4. Python 코드 호출
자신의 프로젝트에 통합하고 싶으신가요? 단 몇 줄의 코드로 가능합니다:
from tradingagents.graph.trading_graph import TradingAgentsGraph
from tradingagents.default_config import DEFAULT_CONFIG
# 초기화 (debug=True로 상세 로그 확인 가능)
ta = TradingAgentsGraph(debug=True, config=DEFAULT_CONFIG.copy())
# 주식 티커와 날짜 입력, 결정 반환
# 첫 번째 반환값은 중간 과정, 두 번째는 최종 결정입니다.
_, decision = ta.propagate("NVDA", "2026-01-15")
print(decision)
이 스크립트를 실행하면 다음과 같은 출력을 볼 수 있습니다:
{
"ticker": "NVDA",
"date": "2026-01-15",
"decision": "BUY",
"confidence": 0.75,
"reasoning": "강세 연구원은 ...라고 판단함",
"risk_assessment": "중간 위험"
}
5. 다른 LLM Provider로 전환
TradingAgents의 장점 중 하나는 다양한 LLM 지원입니다. 언제든지 전환할 수 있습니다:
from tradingagents.graph.trading_graph import TradingAgentsGraph
from tradingagents.default_config import DEFAULT_CONFIG
# 기본 설정 복사 및 수정
config = DEFAULT_CONFIG.copy()
config["llm_provider"] = "anthropic" # 선택 가능: openai, google, anthropic, xai, openrouter, ollama
config["deep_think_llm"] = "claude-sonnet-4.5" # 복잡한 추론용 강력한 모델
config["quick_think_llm"] = "claude-haiku-4.5" # 단순 작업용 경량 모델
config["max_debate_rounds"] = 2 # 강세/약세 토론 횟수
ta = TradingAgentsGraph(debug=True, config=config)
_, decision = ta.propagate("AAPL", "2026-01-20")
print(decision)
6. 사용자 정의 설정 항목
DEFAULT_CONFIG에는 조절 가능한 많은 파라미터가 있습니다:
config = DEFAULT_CONFIG.copy()
# 핵심 파라미터
config["llm_provider"] = "openai"
config["deep_think_llm"] = "gpt-5.2" # 심층 사고 모델
config["quick_think_llm"] = "gpt-5-mini" # 빠른 응답 모델
# 토론 설정
config["max_debate_rounds"] = 3 # 강세/약세 토론 횟수
config["enable_researchers"] = True # 연구원 팀 활성화
config["enable_risk_management"] = True # 리스크 관리 팀 활성화
# 데이터 설정
config["data_provider"] = "alpha_vantage" # 데이터 제공자
config["news_provider"] = "yfinance" # 뉴스 출처
Defapi 통합: 저비용 솔루션
AI Agent에 대해 이야기하는 김에 유용한 팁을 하나 드립니다:
Claude나 GPT로 TradingAgents를 실행하고 싶지만 공식 API 가격이 부담스럽다면, **Defapi**를 시도해 보세요. v1/chat/completions 프로토콜을 지원하며, 가격은 공식 API의 절반 수준입니다.
설정 방식은 공식 API와 완전히 호환되며, base_url을 Defapi 주소로 바꾸기만 하면 됩니다. TradingAgents와 같은 멀티 에이전트 시스템은 각 Agent가 LLM을 호출하기 때문에, Defapi를 사용하면 비용을 크게 절감할 수 있습니다.
구체적인 설정 방법은 LLM 클라이언트에서 base_url을 공식 주소에서 https://api.defapi.org로 변경하고, API Key는 Defapi에서 할당받은 것을 사용하는 것입니다. 현재 Defapi는 Claude, GPT, Gemini 등 주요 모델을 지원하여 TradingAgents의 요구 사항을 충분히 충족합니다.
자주 발생하는 문제 해결(Troubleshooting)
1. API Key가 적용되지 않나요?
환경 변수가 올바르게 설정되었는지 확인하세요. Linux/Mac은 echo $OPENAI_API_KEY, Windows는 echo %OPENAI_API_KEY%를 사용합니다. .env 파일을 사용한다면 cp .env.example .env를 실행하고 실제 키를 입력했는지 확인하세요.
2. 모델이 지원되지 않나요?
Provider마다 지원하는 모델 이름이 다릅니다. 예를 들어 OpenAI는 gpt-5.2, Anthropic은 claude-sonnet-4.5 식입니다. 모델 이름이 확실하지 않다면 공식 문서에 나열된 이름을 먼저 사용해 보세요.
3. Alpha Vantage 호출 실패?
무료 버전 API는 분당 호출 제한(보통 분당 5회)이 있습니다. 짧은 시간에 빈번하게 요청하면 429 오류가 반환됩니다. 해결 방법: 유료 버전으로 업그레이드하거나 코드에 지연 시간(delay)을 추가하세요.
4. 네트워크 타임아웃?
TradingAgents는 여러 LLM과 데이터 API를 호출하므로 네트워크 상태가 좋지 않으면 타임아웃이 발생하기 쉽습니다. 다음을 시도해 보세요:
- 접속 가능한 다른 모델로 교체
- 타임아웃 설정값 증가
- 로컬 모델 사용 (Ollama)
5. 결정 결과가 빈 값으로 나오나요?
때때로 모든 Agent가 「거래 안 함」을 권장할 수 있으며, 이는 정상입니다. 프레임워크의 결정은 강세, 약세, 리스크 관리 세 측면의 의견을 종합한 것입니다. 합의가 보수적이라면 HOLD를 출력합니다. max_debate_rounds를 조정하여 토론 횟수를 늘리면 더 공격적인(혹은 더 보수적인) 결정을 유도할 수 있습니다.
6. 결정 결과를 어떻게 해석하나요?
출력은 보통 다음과 같은 정보를 포함하는 JSON 형식입니다:
decision: BUY / SELL / HOLDconfidence: 신뢰도 (0-1)reasoning: 각 Agent의 분석 요약risk_assessment: 위험 등급
주의: 이것은 AI의 분석 및 제안일 뿐이며, 절대로 직접적인 거래 지시로 간주하지 마십시오.
확장 읽기 및 심화 방향
1. Trading-R1
같은 팀의 후속 프로젝트로, 강화 학습을 이용해 트레이딩 전략을 최적화하는 데 집중합니다. 논문은 이미 arXiv에 발표되었으며 코드도 곧 오픈 소스화될 예정이니 주목해 보세요.
2. 멀티 에이전트 시스템 최적화
TradingAgents의 아키텍처는 본질적으로 멀티 에이전트 협업입니다. 다음을 시도해 볼 수 있습니다:
- 새로운 Agent 역할 추가 (예: 거시 경제 분석가)
- Agent 간의 토론 로직 조정
- 실제 거래 인터페이스 연결 (모의 투자 단계)
3. 로컬 모델 솔루션
외부 API에 의존하고 싶지 않다면 Ollama 로컬 모델을 배포할 수 있습니다. 성능은 GPT/Claude보다 낮을 수 있지만 비용이 전혀 들지 않아 학습 및 테스트용으로 적합합니다.