## 1. 项目概述

项目源码:多智能体金融交易分析框架

TradingAgents 是一个基于大型语言模型(LLM)的多智能体金融交易框架。该项目旨在利用多个专门的 AI 智能体(Agent)协同工作,模拟专业投资研究团队的决策流程,从数据收集、基本面分析、技术分析、市场情绪分析到风险管理和最终交易决策,实现自动化的端到端金融投资分析和决策。

项目提供了两种交互方式:
- **命令行界面 (CLI)**: 用于执行自动化的交易分析流程。
- **Web 应用程序**: 提供一个可视化的界面,用于查看分析过程、结果和历史记录。

## 2. 技术架构

项目的核心是一个多智能体协作系统,基于 `langgraph` 构建的图(Graph)来协调不同智能体之间的信息流动和决策过程。

### 2.1. 核心组件

- **Web 框架**: 使用 **Flask** 搭建后端服务,并通过 **Flask-SocketIO** 实现与前端的实时通信。
- **多智能体框架**: 使用 **LangChain** 和 **LangGraph** 构建和协调各个 AI 智能体。智能体之间的协作关系被定义为一个有向图,确保信息流的有序和高效。
- **大语言模型 (LLM)**: 系统设计上支持多种 LLM,如 **OpenAI GPT 系列**、**Google Gemini**、**Anthropic Claude** 等,通过配置文件进行切换。
- **数据源**: 集成了多个金融数据 API 和信息源,包括:
    - **Yahoo Finance (`yfinance`)**: 获取股票价格数据。
    - **Finnhub (`finnhub-python`)**: 获取公司基本面数据和市场新闻。
    - **Reddit (`praw`)**: 分析社交媒体情绪。
    - **Google News (`googlenews`)**: 获取更广泛的新闻资讯。
    - **其他**: `akshare`, `tushare` 等,用于获取 A 股市场数据。
- **数据库/缓存**: 使用 **Redis** 作为缓存,提升数据访问速度。

### 2.2. 项目结构

```
TradingAgents/
├── agents/                 # 核心智能体定义
│   ├── analysts/           # 分析师智能体(基本面、新闻、技术等)
│   ├── managers/           # 管理者智能体(研究、风险管理)
│   ├── researchers/        # 研究员智能体(多空信息搜集)
│   └── trader/             # 交易员智能体
├── cli/                    # 命令行界面实现
├── dataflows/              # 数据流和数据源接口
├── graph/                  # Agent 协作图(核心逻辑)
│   └── trading_graph.py    # 定义了智能体协作流程
├── static/                 # Web 前端静态文件 (CSS, JS)
├── templates/              # Web 前端模板 (HTML)
├── web_app.py              # Flask Web 应用主程序
├── run_web.py              # 启动 Web 应用的脚本
├── main.py                 # 启动 CLI 应用的脚本
└── ...
```

## 3. 核心功能

### 3.1. 多智能体协作

系统包含多种角色,各司其职:
- **研究管理员 (Research Manager)**: 协调研究员,分派看多/看空的研究任务。
- **研究员 (Bull/Bear Researcher)**: 从不同角度搜集和整理关于特定股票的利好和利空信息。
- **分析师 (Analyst)**:
    - **新闻分析师**: 分析最新新闻,提取关键信息。
    - **基本面分析师**: 分析公司财报、估值等基本面数据。
    - **技术分析师**: 分析股价走势、交易量等技术指标。
- **风险管理器 (Risk Manager)**: 评估潜在风险,并组织正反方辩论,形成更全面的风险视图。
- **交易员 (Trader)**: 汇总所有分析结果和风险评估,做出最终的买入/卖出/持有的决策建议。

### 3.2. 可视化界面

Web 界面提供了以下功能:
- **配置页面**: 设置 API 密钥、选择股票代码等。
- **分析页面**: 实时展示多智能体分析决策的全过程。
- **历史页面**: 查看历史分析记录。

## 4. 部署与运行

### 4.1. 打包项目

在项目根目录(`trading/`)下,执行以下命令将 `TradingAgents` 文件夹打包成 `TradingAgents.zip`。

**Windows (PowerShell):**
```powershell
Compress-Archive -Path TradingAgents -DestinationPath TradingAgents.zip
```

**Linux / macOS:**
```bash
zip -r TradingAgents.zip TradingAgents
```
> **注意**: 打包的文件中不包含 `install_requirements.txt`。请将该文件与 `TradingAgents.zip` 一同分发。

### 4.2. 部署步骤

1.  **环境准备**:
    -   安装 Python 3.10 或更高版本。
    -   将 `TradingAgents.zip` 和 `install_requirements.txt` 拷贝到服务器。

2.  **解压项目**:
    解压 `TradingAgents.zip` 文件。

3.  **创建虚拟环境 (推荐)**:
    ```bash
    python -m venv venv
    source venv/bin/activate  # Linux/macOS
    .\venv\Scripts\activate   # Windows
    ```

4.  **安装依赖**:
    将 `install_requirements.txt` 放在解压后的 `TradingAgents` 目录旁,然后安装依赖。
    ```bash
    pip install -r install_requirements.txt
    ```

5.  **配置环境变量**:
    在 `TradingAgents` 目录下,创建一个 `.env` 文件,并填入所需的 API 密钥,例如:
    ```
    OPENAI_API_KEY="sk-..."
    FINNHUB_API_KEY="..."
    # 其他需要的 API key
    ```
    可以参考 `env_example_deepseek.txt` 文件来了解需要哪些配置。

### 4.3. 运行程序

#### 运行 Web 应用

在 `TradingAgents` 目录下执行:
```bash
python run_web.py
```
应用默认运行在 `http://127.0.0.1:5000`。

#### 运行命令行工具

在 `TradingAgents` 目录下执行:
```bash
python main.py --ticker "AAPL"
```
将 "AAPL" 替换为您想分析的股票代码。可以通过 `python main.py --help` 查看更多选项。

Logo

更多推荐