TradingAgents/docs/zh-CN/architecture_guide.md

12 KiB
Raw Blame History

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网关: 外部服务访问

该架构为全球金融市场分析提供了强大、可扩展的基础,同时保持了未来增强和集成的灵活性。