FinRobot 版本地图 / AI4Finance-Foundation

FinRobot 版本选择:V0 / V1 / V2 / V3 该用哪一个

官方 README 说得很直接:这三套代码不是同一个东西的三个版本在互相竞争,而是给不同用途的。V0 是可读的教学代码,V1 是自托管研报 Web 应用,V2 才是官方认定的生产系统,V3 还在开发中、没有公开代码目录。本页把四代的技术栈、入口命令、有无确定性计算与审计、以及在 Windows 上到底能不能跑摆成一张表,并顺带回答一个中文圈最常踩的坑:pip install finrobot 装到的是什么。

V2 = 生产系统V1 = Web 应用V0 = 教学代码
V0AutoGen · 教学
V1Agents SDK · Web
V2PydanticAI · 生产
V3DeepSeek-Harness · 开发中
按官方 README「Architecture Evolution」表整理的版本线示意;V3 目前没有公开代码目录。
四代并存不是同一个东西的三个版本
官方推荐V2 = Production
PyPI 实测finrobot 0.1.5(2024-06-17)
核验基准commit 2717499(2026-09-28)
四代主表

FinRobot 的 V0 / V1 / V2 / V3 分别是什么?

下表按官方 README 的「Where to start」与「Architecture Evolution」两张表整理,并补上「本机能不能跑」这一列——那一列是官方表里没有、但你决定要不要投入时间时最需要的信息。

版本目录技术栈官方定位适合谁本机(Windows)能否跑
V2finrobot_desktop/PydanticAI + FastAPI + React 19 + Tauri/RustProduction(官方当前推荐)要真正做研究、要数字可溯源的人桌面安装包不支持;浏览器模式与 CLI 需要先装 uv(本机实测缺 uv)
V1finrobot_equity/OpenAI Agents SDK + FastAPIWeb app(自托管的研报生成服务)要一个「输入 ticker 出 HTML/PDF 报告」的内部服务可以,但要 FMP + OpenAI 两个 key;Docker 路径需另装 Docker
V0finrobot_autogen/Microsoft AutoGenEducational(教学与论文复现)想读懂「金融智能体怎么接起来」的人可以(conda + Python 3.10/3.11);官方明确说它不适合生产
V3无公开目录DeepSeek-HarnessIn development(开发中)—无法运行:仓库里没有对应代码
官方对 V0 的自我说明值得逐字读:「这里没有确定性计算层,没有溯源跟踪,也不保证输出里的某个数字是被算出来的而不是被生成的。」换句话说,V0 可以拿来学结构,但不能拿它的输出去做判断。要能落地的输出,官方指向 V2。
同一件事

同一件「出一份研报」,四代分别怎么做?

把四代放在同一件事上对照,差异比读定义更清楚。尤其注意「确定性计算」与「审计」两列——这正是官方把 V2 称为生产系统的原因。

环节V0(AutoGen)V1(Web 应用)V2(生产)
怎么装conda 建 Python 3.10 → 在仓库根 pip install -e .(在子目录里装会失败)填 config.ini(FMP + OpenAI)→ ./deploy.sh startuv sync(CLI 与浏览器模式)或下载桌面安装包
入口notebook(13 个,分 beginner / advanced)浏览器表单 127.0.0.1:8001,或两步 CLI 管线桌面 App、浏览器 UI(dev.sh → :5173)、CLI(research / dcf / comps / ic-memo / ask)
数字谁算没有确定性计算层,智能体调工具、LLM 写结果报表、比率、预测、同业倍数由代码先算好,LLM 只写叙述32 个纯 Python 算子(26 估值 + 6 审计),模型不参与计算
有没有审计无溯源跟踪叙述以已算好的数字为上下文,可 --enable-text-regeneration 重跑6 个审计算子在上线前拿叙述跟数字对账,对不上就报警
输出形态notebook 内的中间结果与 PDF可分享的 HTML 报告(示例 NVDA/MSFT/TSLA/META/COP 已入库)13 章研报制品 + 目标价区间与置信度
平台限制官方给的是 macOS/Linux 的 conda 流程Docker 路径要求在仓库根构建(镜像以 finrobot_equity.web_app.main 导入)桌面安装包仅 macOS Apple Silicon;Windows/Linux 走浏览器模式或 CLI
什么时候选它学习、教学、复现论文要一个能被同事访问的研报服务要产出能拿去用的研究结果
一个容易忽略的点:V1 与 V2 都做了「代码算、模型写」的分工,但深度不同。V1 是「先算好再写」;V2 在写完之后还有一层审计,会把叙述里的说法与算出来的数字再对一遍。如果你的用途是「结果要能追溯」,这个差别就是决定性的。
PyPI 实测

pip install finrobot 装到的到底是什么?

这是中文教程里最集中的错配点:很多文章让你 pip install finrobot 然后跑多智能体流程。本机在隔离 venv(Python 3.11.9)里真跑了一遍,结果如下。

实测项结果含义
装到哪个版本FinRobot 0.1.5,上传时间 2024-06-17(该包共 7 个版本,0.1.0–0.1.5,最新仍是它)PyPI 上是两年前的 V0 代码,不是 V2
Python 版本约束Requires-Python: >=3.10, <3.12Python 3.12 及以上直接装不上,必须单独建 3.10/3.11 环境
许可元数据PyPI 写 License: MIT与仓库的 Apache-2.0 不一致,以仓库 LICENSE 为准
装完后带了哪些依赖一条都没带:site-packages 里只有 finrobot 本体,METADATA 里没有任何 Requires-Dist「装成功」≠「能用」,见下一行
import 之后会怎样import finrobot 成功;from finrobot.agents.workflow import SingleAssistant 报 ModuleNotFoundError: No module named 'finnhub';finrobot.toolkits 报 No module named 'autogen'一用就断,而且报的不是 finrobot 自己的名字
为什么零依赖根 setup.py 用 open("finrobot_autogen/requirements.txt") 读依赖;0.1.5 的 sdist 里根本没有这个文件(只有 finrobot 旧布局包 + setup.py + LICENSE + README + egg-info),读取失败走了 except 分支,依赖列表被置空属于打包遗漏,不是网络问题;改环境重装也不会变
正确做法要 V0:克隆仓库后在仓库根 pip install -e .(此时 requirements.txt 存在,依赖才装上)或直接按 V2 走 uv sync,不要用 PyPI 那条路
怎么看这条结论:这不是说项目坏了,而是说 PyPI 包与仓库当前状态已经脱节两年。官方 README 让你用 pip install -U finrobot 时,讲的是 V0 那条路径;你如果照它去跑 V2 的 CLI 或多智能体研报,方向从一开始就错了。判断该走哪条路的简单办法:先看你要的命令在哪个目录的文档里出现——finrobot research 属于 finrobot_desktop/,notebook 属于 finrobot_autogen/。
错配清单

照着老中文教程做,会失败在哪一步?

下表把「旧教程里写的」与「现在仓库里的实际情况」逐条对照。这些不是猜的,都能在固定 commit 的仓库里核对到。

旧教程/常见说法现在的实际情况你会看到的症状
pip install finrobot 然后直接跑智能体PyPI 只有 2024 年的 V0 且零依赖ModuleNotFoundError: No module named 'finnhub' 之类,看着像环境坏了
在 finrobot/ 目录里 pip install -e .该目录已移到 finrobot_autogen/,只有仓库根有 setup.py安装命令报找不到 setup.py / 装出来 import 不到
notebook 放在仓库根下的 tutorials/现在是 finrobot_autogen/tutorials_beginner/ 与 tutorials_advanced/路径 404;notebook 里的 ../OAI_CONFIG_LIST 也读不到
配置文件随手放在任意位置两个配置文件要放 finrobot_autogen/(notebook 按相对路径去找)跑起来报读不到配置或调用模型失败
以为有 Smart Scheduler 可以调README 仍保留论文期的介绍,但当前仓库没有这套调度器的实现;V2 用类型化流水线 + 注册表选流程在代码里搜不到对应模块
「装好就能一键出专业研报」那是 V2 的流水线能力(7 条流水线,13 章制品),V0 只有 notebook 级示例跟着 notebook 跑,拿到的不是研报而是一段分析输出
Windows 上找 FinRobot 桌面安装包官方 desktop-v0.1.0 发布物只有 macOS Apple Silicon(M1/M2/M3 及以上)发布页没有 Windows 资产可下
把 pyautogen 当成当前技术栈AutoGen 只对应 V0;V1 是 OpenAI Agents SDK,V2 是 PydanticAI在读 V2 代码时找不到期望的 AutoGen 结构,越读越乱
一个实用判据:旧文章里如果出现 OAI_CONFIG_LIST、conda create python=3.10、tutorials_beginner 这些词,它讲的是 V0;如果出现 uv sync、finrobot research、dev.sh,才是 V2。两套命令不要混在一个环境里用。
选型决策

按你的目标,该选哪一版?

先明确目标再选版本,比先选版本再找用途省事。下表的「先做哪一步」都是可以在一小时内完成的验证动作。

你的目标选哪一版前置条件先做哪一步验证常见坑
要一份能追溯数字来源的研报V2uv + 一个 LLM keyuv sync 后跑 finrobot dcf 看它是否输出 WACC 与算子结果用 PyPI 那条路装 V0,然后抱怨没有算子
要浏览器界面给同事用V1FMP + OpenAI 两个 key./deploy.sh start 后打开 127.0.0.1:8001忘记 config.ini 是从 example 复制来的,直接改 example 文件
要读懂金融智能体怎么接起来V0conda + Python 3.10/3.11在仓库根 pip install -e .,跑一个 beginner notebook用 pip install finrobot 代替源码安装,结果依赖全空
想在 Windows 上跑 V2 图形界面V2 浏览器模式uv + Node 20+装 uv 后跑 ./dev.sh,看 :5173 是否起来不知道 dev.sh 会先杀掉 :8321/:5173 上的进程;本机实测卡在 uv 缺失
想用命令行批处理多只股票V2 CLIuv sync + LLM keyfinrobot research <ticker> 或 finrobot comps把 CLI 当成可以离线跑的工具:取数与推理都要联网
要读论文与复现它的实验V0(配合论文)同上对照 arXiv 2405.14767 读 finrobot_autogen/finrobot/agents/把论文里的 Smart Scheduler 当成仓库里现成可调的模块
要 A 股研究结论都不直接支持—先确认你有可用的 A 股数据源,再考虑接入看到代码层接受 600519.SS 就以为能取到 A 股数据
边界披露:FinRobot 与 EasyClaw 无已证实集成。上面这类判断只针对 FinRobot 自身的版本差异;如果你要的是「不要自己搭环境也有研究结论」,那是另一条独立路线,见对比页。
共存与迁移

V0 与 V2 能装在同一个环境里吗?

这个问题在官方文档里没有正面回答,但答案是明确的「不建议」,原因写在两边的包定义里。

项V0(教学版)V2(桌面与 CLI)放一起会怎样
包名发布名 FinRobot,Python 导入名 finrobotpyproject.toml 里 name = "finrobot",导入名同样是 finrobot两个不同代码库抢同一个导入名,谁后装谁生效
Python 版本官方 conda 流程用 3.10(PyPI 包约束 >=3.10,<3.12)requires-python = ">=3.11",CI 跑 3.11/3.12交集只有 3.11,3.10 装不了 V2、3.12 装不了 PyPI 上的 V0
依赖栈AutoGen 系(pyautogen 等)PydanticAI / FastAPI / yfinance / edgartools 等两套框架与不同版本约束混在一个环境里,冲突难查
配置文件OAI_CONFIG_LIST + config_api_keys(放 finrobot_autogen/)Settings 页写入系统钥匙串(不落 .env)密钥管理方式不同,容易把 V0 的明文 key 文件带进不该带的地方
建议做法一个版本一个环境:V0 用 conda 环境,V2 用 finrobot_desktop/ 下的 uv 环境身份清晰,出问题也容易定位是哪一代的锅
为什么值得单列这一节:「装了一个 finrobot,却跑不出教程里的结果」这类问题,十有八九是两个版本在同一个环境里互相覆盖。环境隔离是这套项目的基本使用纪律,不是可选优化。具体的环境准备与实测记录见安装页。
FAQ

FinRobot 版本选择常见问题

只想快速试一下,应该装哪一版?

先想清楚你要的是「看懂结构」还是「拿到结果」。看懂结构装 V0(源码安装),拿到结果走 V2。两条路都不要用 pip install finrobot 起步——那条路装到的是 2024 年的 V0 且不带依赖。具体到 V2,本机实测要先装 uv,详见安装页。

V2 是「最新版」吗,还是另一个产品?

是同一个项目里的生产分支,不是独立产品。官方 README 的原话是:三个都是开源项目,V2 是生产系统——确定性计算引擎、溯源保证与智能体编排都在它里面。V0 留着是因为它足够小、可以读,而不是因为它仍是被推荐的运行方式。版本线的正式定义以官方 README 为准。

V3 现在能用吗?

不能。官方把它标为 In development(开发中,DeepSeek-Harness),当前仓库里没有对应的公开代码目录,也没有可运行的入口。任何关于 V3 功能的具体说法都无法在代码里核对,本站不写这类推测。

桌面版到底支持哪些系统?

官方 desktop-v0.1.0 发布物针对 macOS Apple Silicon(M1/M2/M3 及以上);Intel Mac、Windows、Linux 不在该发行版覆盖范围内,这些平台要走浏览器模式或 CLI。桌面版尚未做 Apple notarize,首次打开可能需要按官方给的命令清一次隔离标记。具体资产与系统要求以官方发布页为准。

为什么 PyPI 包会有零依赖这种问题?

因为打包时漏了依赖清单文件:根 setup.py 去读 finrobot_autogen/requirements.txt,而 0.1.5 的 sdist 里没有这个文件,读取失败后代码把依赖列表置成空。结果是包能装、能 import,但一调用就报缺 finnhub、autogen 这类第三方包。这不是本机环境问题,换机器重装也一样。

我用的是老教程,需要全部推翻重学吗?

不用。老教程讲的多半是 V0 的概念,而 V0 至今仍在维护、仍能跑——它的智能体角色、工作流拓扑、工具注册方式都还有参考价值。你要做的是两件事:确认教程讲的是哪一代(看它有没有 OAI_CONFIG_LIST 这类 V0 特征),以及别把 V0 的命令和 V2 的命令混在同一个环境里。

两代共存会不会互相覆盖?

会。发布名与导入名在两代之间都落在 finrobot 上,同一个环境里装两次,后装的会盖掉先装的。稳妥做法是一个版本一个隔离环境:V0 用 conda 环境,V2 用 finrobot_desktop/ 下的 uv 环境。这样出问题时也容易判断是哪一代引起的。

版本选好之后怎么在 Windows 上跑起来?

安装页记录了四条路线在本机的真实结果,包括桌面版对 Windows 不存在、浏览器模式卡在 uv 缺失、以及 PyPI 只装到零依赖的 V0 这三条失败点。