多智能体TradingAgents 项目
TradingAgents是一个基于大型语言模型(LLM)的多智能体金融交易分析框架,模拟专业投资团队决策流程。项目采用LangChain和LangGraph构建多智能体协作系统,包含研究员、分析师、风险管理器和交易员等角色,集成Yahoo Finance、Finnhub、Reddit等数据源。提供两种交互方式:命令行界面(CLI)和Web应用程序,支持自动化交易分析和可视化决策过程。技术栈包括F

## 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` 查看更多选项。
更多推荐


所有评论(0)