TradingAgents/docs/zh-CN/architecture_guide.md

377 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# TradingAgents 系统架构指南
## 📖 概述
本文档提供TradingAgents系统架构的全面概览包括中国市场功能集成、数据库系统和多LLM支持。该架构设计注重可扩展性、可靠性和全球市场覆盖。
## 🏗️ 高层架构
```
┌─────────────────────────────────────────────────────────────────┐
│ TradingAgents 系统 │
├─────────────────────────────────────────────────────────────────┤
│ CLI界面 (市场选择 + 配置) │
├─────────────────────────────────────────────────────────────────┤
│ 多智能体框架 │
│ ├── 市场分析师 ├── 基本面分析师 │
│ ├── 新闻分析师 ├── 多空研究员 │
│ └── 交易员智能体 └── 风险管理 │
├─────────────────────────────────────────────────────────────────┤
│ 多LLM提供商层 │
│ ├── 百炼(通义千问) ├── OpenAI(GPT) │
│ ├── Google(Gemini) └── Anthropic(Claude) │
├─────────────────────────────────────────────────────────────────┤
│ 数据层 │
│ ├── 美股市场 (Yahoo Finance) │
│ ├── 中国A股 (Tushare API) │
│ └── 财经新闻 & 社交媒体 │
├─────────────────────────────────────────────────────────────────┤
│ 缓存与存储层 │
│ ├── MongoDB (持久化存储) │
│ ├── Redis (高性能缓存) │
│ └── 文件缓存 (回退方案) │
└─────────────────────────────────────────────────────────────────┘
```
## 🎯 核心组件
### 1. CLI界面层
#### 市场选择系统
- **交互式市场选择**: 美股 vs 中国A股
- **格式验证**: 市场特定的股票代码验证
- **数据源路由**: 基于市场选择的自动路由
- **英文界面**: 国际化就绪
**关键文件**:
```
cli/main.py - 主CLI应用程序
cli/utils.py - 市场选择和验证工具
```
**流程**:
```
用户输入 → 市场选择 → 股票代码验证 → 数据源分配
```
### 2. 多智能体框架
#### 智能体层次结构
```
TradingAgentsGraph
├── 分析师团队
│ ├── 市场分析师 (技术分析)
│ ├── 基本面分析师 (财务分析)
│ └── 新闻分析师 (情绪分析)
├── 研究团队
│ ├── 多头研究员 (积极情绪)
│ └── 空头研究员 (风险分析)
├── 交易团队
│ ├── 交易员智能体 (决策制定)
│ └── 风险管理员 (风险评估)
└── 反思系统
└── 反思智能体 (质量控制)
```
**关键文件**:
```
tradingagents/graph/trading_graph.py - 主智能体编排
tradingagents/agents/analysts/ - 分析师实现
tradingagents/agents/researchers/ - 研究团队
tradingagents/agents/trader/ - 交易决策
```
### 3. 多LLM提供商层
#### 提供商架构
```
LLM请求 → 提供商路由器 → 特定适配器 → API调用 → 响应
```
#### 支持的提供商
1. **百炼(DashScope)**
- 模型: qwen-turbo, qwen-plus, qwen-max, qwen-max-longcontext
- 中文语言优化
- 中国用户首选
2. **OpenAI**
- 模型: GPT-4o, GPT-4o-mini, o1, o3, o4-mini
- 英文内容全球标准
3. **Google AI**
- 模型: Gemini 2.0 Flash, Gemini 2.5 Flash
- 高级推理能力
4. **Anthropic**
- 模型: Claude 3.5 Haiku, Claude 3.5 Sonnet, Claude 4
- 强大的分析能力
**关键文件**:
```
tradingagents/graph/trading_graph.py - LLM初始化
tradingagents/agents/utils/memory.py - Embedding服务
cli/utils.py - 提供商选择
```
#### 智能回退系统
```
主要提供商 (百炼)
↓ (如果不可用)
次要提供商 (OpenAI)
↓ (如果不可用)
第三提供商 (Google/Anthropic)
↓ (如果全部失败)
错误处理 & 用户通知
```
### 4. 数据层架构
#### 多市场数据源
**美股市场**:
```
Yahoo Finance API → 数据验证 → 缓存存储 → 智能体消费
```
**中国A股市场**:
```
Tushare API → 数据优化 → 缓存存储 → 智能体消费
```
#### 数据流架构
```
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ 数据请求 │ -> │ 源路由器 │ -> │ 数据提供商 │
└─────────────────┘ └──────────────────┘ └─────────────────┘
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ 缓存管理器 │ <- │ 数据处理器 │ <- │ 原始数据 │
└─────────────────┘ └──────────────────┘ └─────────────────┘
```
**关键文件**:
```
tradingagents/dataflows/interface.py - 数据接口
tradingagents/dataflows/tushare_utils.py - Tushare集成
tradingagents/dataflows/optimized_china_data.py - 中国数据优化
tradingagents/dataflows/chinese_finance_utils.py - 中国财经工具
tradingagents/dataflows/stock_data_service.py - 统一数据服务
```
#### 支持的中国交易所
- **上海证券交易所**: 60xxxx (如 600036 - 招商银行)
- **深圳证券交易所**: 00xxxx (如 000001 - 平安银行)
- **创业板**: 30xxxx (如 300001 - 科技股)
- **科创板**: 68xxxx (如 688001 - 创新公司)
### 5. 缓存与存储层
#### 三层缓存架构
**第一层: Redis (高性能缓存)**
```
内存基础 → 亚毫秒访问 → 实时数据
```
**第二层: MongoDB (持久化存储)**
```
文档基础 → 结构化存储 → 历史数据 & 分析
```
**第三层: 文件缓存 (回退方案)**
```
文件基础 → 可靠回退 → 始终可用
```
#### 缓存管理流程
```
数据请求
Redis检查 (第一层)
↓ (如果未命中)
MongoDB检查 (第二层)
↓ (如果未命中)
文件缓存检查 (第三层)
↓ (如果未命中)
外部API调用
存储到所有层
```
**关键文件**:
```
tradingagents/dataflows/cache_manager.py - 缓存协调
tradingagents/dataflows/db_cache_manager.py - 数据库缓存
tradingagents/dataflows/integrated_cache.py - 集成缓存系统
tradingagents/dataflows/adaptive_cache.py - 自适应缓存策略
tradingagents/config/database_manager.py - 数据库连接
tradingagents/config/mongodb_storage.py - MongoDB操作
```
#### 数据库模式设计
**MongoDB集合**:
```
stock_data - 历史股价和成交量
analysis_results - 智能体分析输出
token_usage - LLM API使用跟踪
cache_metadata - 缓存管理信息
user_sessions - 用户交互历史
```
**Redis键模式**:
```
stock:{symbol}:{date} - 日股票数据
analysis:{symbol}:{timestamp} - 分析结果
news:{symbol}:{date} - 新闻情绪数据
cache:meta:{key} - 缓存元数据
```
## 🔄 数据流模式
### 1. 分析工作流
```
用户输入 (CLI)
市场选择 & 验证
数据获取 (多源)
智能体分析 (多LLM)
结果聚合
输出生成
缓存存储
```
### 2. 缓存工作流
```
数据请求
缓存键生成
第一层 (Redis) 检查
↓ (如果未命中)
第二层 (MongoDB) 检查
↓ (如果未命中)
第三层 (文件) 检查
↓ (如果未命中)
外部API调用
多层存储
响应用户
```
### 3. 错误处理工作流
```
组件故障
错误检测
回退激活
替代路径
用户通知 (如需要)
优雅降级
```
## 🛡️ 可靠性与可扩展性特性
### 高可用性设计
- **多LLM回退**: 自动提供商切换
- **多层缓存**: 冗余数据存储
- **优雅降级**: 系统在功能减少的情况下继续运行
- **错误恢复**: 自动重试机制
### 可扩展性特性
- **数据库集群**: MongoDB副本集
- **缓存扩展**: Redis集群支持
- **负载均衡**: 多个API端点
- **水平扩展**: 无状态智能体设计
### 性能优化
- **智能缓存**: 自适应缓存策略
- **连接池**: 数据库连接管理
- **异步处理**: 非阻塞操作
- **数据压缩**: 高效存储格式
## 🔧 配置管理
### 基于环境的配置
```
.env文件 → 环境变量 → 运行时配置
```
### 配置层次结构
```
1. 环境变量 (.env)
2. 默认配置 (default_config.py)
3. 运行时覆盖 (main.py)
4. 动态配置 (config.py)
```
### 配置类别
- **API密钥**: LLM提供商和数据源
- **数据库设置**: MongoDB和Redis配置
- **缓存设置**: 缓存TTL和策略
- **市场设置**: 支持的市场和交易所
- **智能体设置**: 模型选择和参数
## 📊 监控与分析
### 系统指标
- **API使用**: Token消费和成本
- **缓存性能**: 命中率和响应时间
- **数据库性能**: 查询时间和存储使用
- **错误率**: 按组件的故障率
### 业务指标
- **分析质量**: 智能体性能指标
- **用户参与**: 使用模式和偏好
- **市场覆盖**: 支持的股票代码和交易所
- **响应时间**: 端到端分析持续时间
## 🚀 部署架构
### 开发环境
```
本地机器 → 文件缓存 → 单一LLM提供商 → 基础功能
```
### 生产环境
```
应用服务器 → Redis集群 → MongoDB副本集 → 多LLM → 完整功能
```
### 云部署选项
- **数据库**: MongoDB Atlas, Redis Cloud
- **应用程序**: Docker容器, Kubernetes
- **负载均衡**: 应用程序负载均衡器
- **监控**: 应用程序性能监控
## 🔮 未来架构增强
### 计划改进
- **微服务架构**: 服务分解
- **事件驱动架构**: 异步消息处理
- **机器学习管道**: 自动模型训练
- **实时流处理**: 实时市场数据处理
- **全球CDN**: 分布式缓存网络
### 扩展点
- **新市场支持**: 额外的交易所和地区
- **新LLM提供商**: 额外的AI服务
- **自定义智能体**: 用户定义的分析智能体
- **插件系统**: 第三方集成
- **API网关**: 外部服务访问
---
该架构为全球金融市场分析提供了强大、可扩展的基础,同时保持了未来增强和集成的灵活性。