1. 项目概述与背景
这个金融交易代理系统项目源于我对量化交易和AI技术的长期兴趣。在尝试过几个开源框架后,我发现大多数方案要么过于复杂难以定制,要么功能单一无法满足实际需求。经过对TauricResearch/TradingAgents项目的深入研究,我决定基于其架构设计理念,构建一个更适合个人研究使用的轻量级多代理金融交易框架。
这个框架的核心价值在于:
- 模块化设计:各功能组件高度解耦,便于单独开发和测试
- 多代理协同:不同类型的AI代理(新闻分析、技术指标、情感分析等)可以协同工作
- 端到端流程:从数据获取到分析决策再到报告生成的全流程支持
- 研究友好:内置Jupyter Notebook支持,方便进行策略研究和回测
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 项目目录结构详解
2.1 整体架构设计
项目采用典型的三层架构设计,目录结构清晰地反映了这一设计理念:
code复制FinAgent/
├─ backend/ # 核心业务逻辑
├─ frontend/ # 用户界面
├─ data/ # 数据存储
├─ docs/ # 文档
├─ notebooks/ # 研究分析
└─ scripts/ # 实用脚本
这种结构的主要优势在于:
- 功能隔离明确,各司其职
- 开发团队可以并行工作
- 部署时可以灵活组合
2.2 后端核心目录解析
后端是系统的核心,采用Python构建,主要包含以下关键模块:
code复制backend/
└─ app/
├─ agents/ # 各类AI代理实现
├─ api/ # RESTful接口
├─ core/ # 核心业务逻辑
├─ data/ # 数据处理
├─ models/ # 数据模型
├─ services/ # 公共服务
└─ workflows/ # 工作流程
特别说明几个关键目录的设计考虑:
-
agents/目录采用插件式设计,每个代理独立实现,通过统一接口与系统交互。这种设计使得:- 可以灵活增减代理类型
- 各代理可以独立开发和测试
- 便于进行A/B测试不同代理的效果
-
data/目录采用分层设计:code复制data/ ├─ cache/ # 临时缓存 ├─ preprocessing/ # 数据预处理 ├─ providers/ # 数据源接口 └─ schemas/ # 数据验证这种结构确保了数据处理流程的清晰性和可维护性。
2.3 前端架构说明
前端采用现代React技术栈构建,主要特点包括:
- 基于Vite的快速开发环境
- TypeScript类型安全
- 模块化组件设计
- 响应式布局
关键目录结构设计考虑:
code复制frontend/
└─ src/
├─ api/ # 前端API封装
├─ components/ # 可复用UI组件
├─ hooks/ # 自定义React Hooks
├─ pages/ # 页面级组件
├─ styles/ # 样式管理
└─ utils/ # 工具函数
这种结构使得前端代码:
- 易于维护和扩展
- 组件复用率高
- 样式管理集中
- 业务逻辑与UI分离
3. 数据源选择与集成
3.1 数据源选型分析
经过对多个金融数据源的评估比较,最终选型如下:
| 数据类别 | 选型 | 优势
