TradingAgents/docs/en-US/architecture_guide.md

377 lines
13 KiB
Markdown

# TradingAgents System Architecture Guide
## 📖 Overview
This document provides a comprehensive overview of the TradingAgents system architecture, including the integration of Chinese market features, database systems, and multi-LLM support. The architecture is designed for scalability, reliability, and global market coverage.
## 🏗️ High-Level Architecture
```
┌─────────────────────────────────────────────────────────────────┐
│ TradingAgents System │
├─────────────────────────────────────────────────────────────────┤
│ CLI Interface (Market Selection + Configuration) │
├─────────────────────────────────────────────────────────────────┤
│ Multi-Agent Framework │
│ ├── Market Analyst ├── Fundamentals Analyst │
│ ├── News Analyst ├── Bull/Bear Researchers │
│ └── Trader Agent └── Risk Management │
├─────────────────────────────────────────────────────────────────┤
│ Multi-LLM Provider Layer │
│ ├── DashScope (Qwen) ├── OpenAI (GPT) │
│ ├── Google (Gemini) └── Anthropic (Claude) │
├─────────────────────────────────────────────────────────────────┤
│ Data Layer │
│ ├── US Market (Yahoo Finance) │
│ ├── China A-Share (TongDaXin API) │
│ └── Financial News & Social Media │
├─────────────────────────────────────────────────────────────────┤
│ Caching & Storage Layer │
│ ├── MongoDB (Persistent Storage) │
│ ├── Redis (High-Performance Cache) │
│ └── File Cache (Fallback) │
└─────────────────────────────────────────────────────────────────┘
```
## 🎯 Core Components
### 1. CLI Interface Layer
#### Market Selection System
- **Interactive Market Selection**: US Stock vs China A-Share
- **Format Validation**: Market-specific ticker validation
- **Data Source Routing**: Automatic routing based on market selection
- **English-Only Interface**: Internationalization-ready
**Key Files**:
```
cli/main.py - Main CLI application
cli/utils.py - Market selection and validation utilities
```
**Flow**:
```
User Input → Market Selection → Ticker Validation → Data Source Assignment
```
### 2. Multi-Agent Framework
#### Agent Hierarchy
```
TradingAgentsGraph
├── Analyst Team
│ ├── MarketAnalyst (Technical Analysis)
│ ├── FundamentalsAnalyst (Financial Analysis)
│ └── NewsAnalyst (Sentiment Analysis)
├── Research Team
│ ├── BullResearcher (Positive Sentiment)
│ └── BearResearcher (Risk Analysis)
├── Trading Team
│ ├── TraderAgent (Decision Making)
│ └── RiskManager (Risk Assessment)
└── Reflection System
└── ReflectionAgent (Quality Control)
```
**Key Files**:
```
tradingagents/graph/trading_graph.py - Main agent orchestration
tradingagents/agents/analysts/ - Analyst implementations
tradingagents/agents/researchers/ - Research team
tradingagents/agents/trader/ - Trading decisions
```
### 3. Multi-LLM Provider Layer
#### Provider Architecture
```
LLM Request → Provider Router → Specific Adapter → API Call → Response
```
#### Supported Providers
1. **DashScope (Alibaba Cloud)**
- Models: qwen-turbo, qwen-plus, qwen-max, qwen-max-longcontext
- Optimized for Chinese language
- Primary choice for Chinese users
2. **OpenAI**
- Models: GPT-4o, GPT-4o-mini, o1, o3, o4-mini
- Global standard for English content
3. **Google AI**
- Models: Gemini 2.0 Flash, Gemini 2.5 Flash
- Advanced reasoning capabilities
4. **Anthropic**
- Models: Claude 3.5 Haiku, Claude 3.5 Sonnet, Claude 4
- Strong analytical capabilities
**Key Files**:
```
tradingagents/graph/trading_graph.py - LLM initialization
tradingagents/agents/utils/memory.py - Embedding services
cli/utils.py - Provider selection
```
#### Intelligent Fallback System
```
Primary Provider (DashScope)
↓ (if unavailable)
Secondary Provider (OpenAI)
↓ (if unavailable)
Tertiary Provider (Google/Anthropic)
↓ (if all fail)
Error Handling & User Notification
```
### 4. Data Layer Architecture
#### Multi-Market Data Sources
**US Stock Market**:
```
Yahoo Finance API → Data Validation → Cache Storage → Agent Consumption
```
**China A-Share Market**:
```
TongDaXin API → Data Optimization → Cache Storage → Agent Consumption
```
#### Data Flow Architecture
```
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Data Request │ -> │ Source Router │ -> │ Data Provider │
└─────────────────┘ └──────────────────┘ └─────────────────┘
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Cache Manager │ <- │ Data Processor │ <- │ Raw Data │
└─────────────────┘ └──────────────────┘ └─────────────────┘
```
**Key Files**:
```
tradingagents/dataflows/interface.py - Data interface
tradingagents/dataflows/tdx_utils.py - TongDaXin integration
tradingagents/dataflows/optimized_china_data.py - China data optimization
tradingagents/dataflows/chinese_finance_utils.py - Chinese finance tools
tradingagents/dataflows/stock_data_service.py - Unified data service
```
#### Supported Chinese Exchanges
- **Shanghai Stock Exchange**: 60xxxx (e.g., 600036 - China Merchants Bank)
- **Shenzhen Stock Exchange**: 00xxxx (e.g., 000001 - Ping An Bank)
- **ChiNext Board**: 30xxxx (e.g., 300001 - Technology stocks)
- **STAR Market**: 68xxxx (e.g., 688001 - Innovation companies)
### 5. Caching & Storage Layer
#### Three-Tier Cache Architecture
**Tier 1: Redis (High-Performance Cache)**
```
Memory-based → Sub-millisecond access → Real-time data
```
**Tier 2: MongoDB (Persistent Storage)**
```
Document-based → Structured storage → Historical data & analytics
```
**Tier 3: File Cache (Fallback)**
```
File-based → Reliable fallback → Always available
```
#### Cache Management Flow
```
Data Request
Redis Check (Tier 1)
↓ (if miss)
MongoDB Check (Tier 2)
↓ (if miss)
File Cache Check (Tier 3)
↓ (if miss)
External API Call
Store in All Tiers
```
**Key Files**:
```
tradingagents/dataflows/cache_manager.py - Cache coordination
tradingagents/dataflows/db_cache_manager.py - Database cache
tradingagents/dataflows/integrated_cache.py - Integrated cache system
tradingagents/dataflows/adaptive_cache.py - Adaptive cache strategies
tradingagents/config/database_manager.py - Database connections
tradingagents/config/mongodb_storage.py - MongoDB operations
```
#### Database Schema Design
**MongoDB Collections**:
```
stock_data - Historical stock prices and volumes
analysis_results - Agent analysis outputs
token_usage - LLM API usage tracking
cache_metadata - Cache management information
user_sessions - User interaction history
```
**Redis Key Patterns**:
```
stock:{symbol}:{date} - Daily stock data
analysis:{symbol}:{timestamp} - Analysis results
news:{symbol}:{date} - News sentiment data
cache:meta:{key} - Cache metadata
```
## 🔄 Data Flow Patterns
### 1. Analysis Workflow
```
User Input (CLI)
Market Selection & Validation
Data Retrieval (Multi-source)
Agent Analysis (Multi-LLM)
Result Aggregation
Output Generation
Cache Storage
```
### 2. Cache Workflow
```
Data Request
Cache Key Generation
Tier 1 (Redis) Check
↓ (if miss)
Tier 2 (MongoDB) Check
↓ (if miss)
Tier 3 (File) Check
↓ (if miss)
External API Call
Multi-tier Storage
Response to User
```
### 3. Error Handling Workflow
```
Component Failure
Error Detection
Fallback Activation
Alternative Path
User Notification (if needed)
Graceful Degradation
```
## 🛡️ Reliability & Scalability Features
### High Availability Design
- **Multi-LLM Fallback**: Automatic provider switching
- **Multi-tier Caching**: Redundant data storage
- **Graceful Degradation**: System continues with reduced functionality
- **Error Recovery**: Automatic retry mechanisms
### Scalability Features
- **Database Clustering**: MongoDB replica sets
- **Cache Scaling**: Redis clustering support
- **Load Balancing**: Multiple API endpoints
- **Horizontal Scaling**: Stateless agent design
### Performance Optimization
- **Intelligent Caching**: Adaptive cache strategies
- **Connection Pooling**: Database connection management
- **Async Processing**: Non-blocking operations
- **Data Compression**: Efficient storage formats
## 🔧 Configuration Management
### Environment-Based Configuration
```
.env File → Environment Variables → Runtime Configuration
```
### Configuration Hierarchy
```
1. Environment Variables (.env)
2. Default Configuration (default_config.py)
3. Runtime Overrides (main.py)
4. Dynamic Configuration (config.py)
```
### Configuration Categories
- **API Keys**: LLM providers and data sources
- **Database Settings**: MongoDB and Redis configuration
- **Cache Settings**: Cache TTL and strategies
- **Market Settings**: Supported markets and exchanges
- **Agent Settings**: Model selection and parameters
## 📊 Monitoring & Analytics
### System Metrics
- **API Usage**: Token consumption and costs
- **Cache Performance**: Hit rates and response times
- **Database Performance**: Query times and storage usage
- **Error Rates**: Failure rates by component
### Business Metrics
- **Analysis Quality**: Agent performance metrics
- **User Engagement**: Usage patterns and preferences
- **Market Coverage**: Supported symbols and exchanges
- **Response Times**: End-to-end analysis duration
## 🚀 Deployment Architecture
### Development Environment
```
Local Machine → File Cache → Single LLM Provider → Basic Features
```
### Production Environment
```
Application Server → Redis Cluster → MongoDB Replica Set → Multi-LLM → Full Features
```
### Cloud Deployment Options
- **Database**: MongoDB Atlas, Redis Cloud
- **Application**: Docker containers, Kubernetes
- **Load Balancing**: Application load balancers
- **Monitoring**: Application performance monitoring
## 🔮 Future Architecture Enhancements
### Planned Improvements
- **Microservices Architecture**: Service decomposition
- **Event-Driven Architecture**: Async message processing
- **Machine Learning Pipeline**: Automated model training
- **Real-time Streaming**: Live market data processing
- **Global CDN**: Distributed cache network
### Extensibility Points
- **New Market Support**: Additional exchanges and regions
- **New LLM Providers**: Additional AI services
- **Custom Agents**: User-defined analysis agents
- **Plugin System**: Third-party integrations
- **API Gateway**: External service access
---
This architecture provides a robust, scalable foundation for global financial market analysis while maintaining flexibility for future enhancements and integrations.