基于 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
复制代码
相关推荐
JaguarJack34 分钟前
PHP 的异步编程 该怎么选择
后端·php·服务端
风象南35 分钟前
AI 写代码效果差?大多数人第一步就错了
人工智能·后端
BingoGo37 分钟前
PHP 的异步编程 该怎么选择
后端·php
焗猪扒饭10 小时前
redis stream用作消息队列极速入门
redis·后端·go
树獭非懒11 小时前
AI大模型小白手册|Embedding 与向量数据库
后端·python·llm
IT_陈寒13 小时前
SpringBoot实战:5个让你的API性能翻倍的隐藏技巧
前端·人工智能·后端
有道AI情报局14 小时前
网易有道龙虾 NAS 服务器部署与实战指南
github
梦想很大很大14 小时前
拒绝“盲猜式”调优:在 Go Gin 项目中落地 OpenTelemetry 链路追踪
运维·后端·go
唐叔在学习14 小时前
就算没有服务器,我照样能够同步数据
后端·python·程序员