最近 vibe 了一个轻量级的金融研究 Agent ,专门用来做 A 股/港股相关的研究和数据查询,基于 AKShare + LLM ,项目叫 OpenFR ,欢迎各位大佬 Star:github.com/openmozi/op...
免责声明:本项目仅供学习,不构成投资建议。股市有风险,投资需谨慎。

图 1:LLM 规划研究步骤( Plan-Execute 规划阶段)
图 2:按步骤调用金融数据工具并展示中间结果
图 3:综合所有步骤给出最终结论和投资建议
📊 项目简介
OpenFR (Open Financial Research) 是一个极简、轻量的智能金融研究 Agent,基于大语言模型并集成 AKShare 数据接口,提供股票、基金、期货、指数、宏观经济等金融数据的自动化查询和分析能力。
✨ 核心特性
- 🌱 极简 & 轻量 - 纯 Python 包 + Typer CLI,仅依赖AKShare数据,一条命令即可开始研究
- 🤖 规划驱动的 Agent - Plan-Execute:先拆解任务,再按步骤调用工具并综合回答
- ⚡ 高性能优化 - 只读工具并行调用、多数据源重试与智能降级、结果截断与上下文压缩
- 🎯 智能工具选择 - 根据问题类型选择最相关的行情 / 板块 / 宏观工具
- 📈 丰富的数据源 - 35+ 金融数据工具,覆盖 A 股、港股、基金、期货、指数、宏观及行业板块
- 🔄 多 LLM 支持 - 支持 15+ 主流 LLM 提供商(国产 + 海外 + 本地)
- 🎨 美观的 CLI - Rich 终端界面,实时显示规划、工具调用与最终分析结果
- 🔌 智能备用切换 - 东方财富 + 新浪 + 同花顺,多数据源自动切换与重试
- 💾 缓存与限流友好 - 股票列表缓存 6 小时,部分行情接口缓存 1 分钟,减少重复请求
- 📝 对话记忆与 Scratchpad - 维护最近对话与工具调用历史,支持多轮追问
- 🛡️ 错误恢复 - 失败重试、降级替代及"基于已有信息收尾"的保护逻辑
🏗️ 架构设计
系统架构图
flowchart TD
User[用户] --> CLI[CLI 终端]
CLI --> Agent[FinancialResearchAgent]
Agent -->|规划与推理| LLM[LLM 层]
Agent -->|调用| Tools[金融数据工具]
Agent -->|记录| Scratchpad[Scratchpad]
Tools --> AKShare[AKShare 接口]
AKShare --> Sources[东财 / 新浪 / 同花顺]
Agent --> CLI
架构特点
统一的 Plan-Execute 流程
- 接到问题后先用 LLM 规划 2~5 个研究步骤,再按步骤逐个执行工具调用
- 每步结束后把关键信息写入 Scratchpad,最终基于所有步骤结果进行综合回答
性能优化
- 缓存:股票代码列表等长周期数据缓存 6 小时,部分行情数据做短期缓存
- 并行工具调用 :对行情/指数/宏观等只读工具支持并行执行,可配置
OPENFR_ENABLE_PARALLEL_TOOLS - 多数据源降级:指数、行业板块、A 股行情等都集成了东财/新浪/同花顺等多源与自动重试
- 上下文压缩:对过长的工具结果做截断,只把关键信息反馈给 LLM
数据层
- 多数据源:东方财富(主)+ 新浪财经(备)
- 智能重试:网络错误自动重试,指数退避
- 降级策略:主接口失败自动切换备用源
🚀 快速开始
安装
bash
# 克隆仓库
git clone https://github.com/openmozi/openfr.git
cd openfr
# 创建虚拟环境
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# 安装依赖
pip install -e .
配置
创建 .env 文件并配置 API 密钥:
bash
# 默认推荐:智谱 AI(默认提供商已改为 zhipu)
ZHIPU_API_KEY=your_zhipu_api_key_here
OPENFR_PROVIDER=zhipu
# 默认模型:glm-4.7(也可省略 OPENFR_MODEL,程序会使用提供商默认模型)
OPENFR_MODEL=glm-4.7