基于 AKShare 金融数据做了一个轻量级的金融研究 Agent

最近 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
复制代码
相关推荐
mCell4 小时前
如何零成本搭建个人站点
前端·程序员·github
青云计划6 小时前
知光项目知文发布模块
java·后端·spring·mybatis
Victor3566 小时前
MongoDB(9)什么是MongoDB的副本集(Replica Set)?
后端
Victor3566 小时前
MongoDB(8)什么是聚合(Aggregation)?
后端
yeyeye1117 小时前
Spring Cloud Data Flow 简介
后端·spring·spring cloud
Tony Bai8 小时前
告别 Flaky Tests:Go 官方拟引入 testing/nettest,重塑内存网络测试标准
开发语言·网络·后端·golang·php
+VX:Fegn08958 小时前
计算机毕业设计|基于springboot + vue鲜花商城系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
程序猿阿伟8 小时前
《GraphQL批处理与全局缓存共享的底层逻辑》
后端·缓存·graphql
小小张说故事9 小时前
SQLAlchemy 技术入门指南
后端·python
识君啊9 小时前
SpringBoot 事务管理解析 - @Transactional 的正确用法与常见坑
java·数据库·spring boot·后端