四维度深度调研(功能/技术/部署架构+亮点),4 sub-agent 并行整合。 - 功能:15数据域/32 provider(全欧美)/181标准模型/27指标,不做交易与回测 - 技术:pydantic v2+FastAPI+FastMCP monorepo(~56包/23万行),Fetcher TET三段式+一函数四出口 - 部署:官方Dockerfile 4行+openbb-api:6900+widgets.json连Workspace - 亮点:AI agent原生(MCP)+AGPL-3.0商业护城河+71.2k star开源 - 对本项目:借鉴Fetcher TET清白实现,MCP直暴露LocalUnifiedProvider
24 KiB
Executable File
OpenBB(ODP)平台深度调研报告
调研日期 2026-07-29。源码在 NAS
github-repos/OpenBB(develop 分支 tarball 解压,241M)。本报告由 4 个 sub-agent 并行深挖(源码 + 官网/博客/竞品 Web)整合而成。同步副本存于本地知识库wiki-vault/references/openbb-platform-research.md。
OpenBB(ODP)平台深度调研报告
调研日期 2026-07-29。源码在 NAS
github-repos/OpenBB(develop 分支 tarball 解压,无 .git,241M)。4 个 sub-agent 并行深挖(部署/功能/技术/亮点)+ 官网/blog/竞品 Web 调研。下载技巧见 。
〇、TL;DR
OpenBB = AI Agent 时代的开源金融数据基础设施层。2024 年起从"开源版 Bloomberg Terminal"叙事升级为 ODP(Open Data Platform)——「connect once, consume everywhere」:任何数据源接入一次,同时暴露给 Python SDK / REST API / MCP server(AI agent) / Workspace 前端 / Excel。
| 关键数字 | 值 |
|---|---|
| GitHub Star | 71.2k(同级 LangChain) |
| Contributors | 248+ |
| 开源用户 | ~50,000 |
| 数据源(provider) | 32 个官方(15 免费 + 17 付费)+ 近 100 含社区 |
| 数据域(domain) | 15 个 |
| 标准数据模型 | 181 个(统一契约) |
| 独立 PyPI 包 | ~56 个(monorepo 拆包) |
| 代码规模 | ~23 万行 Python |
| 许可证 | AGPL-3.0(2024-05-15 改) |
| 融资 | $8.5M Seed(OSS Capital 领投,非 YC) |
一句话功能边界:统一接口的金融数据聚合 + 分析平台(取数 / 技术指标 / 量化统计 / 图表 / 监管文件);不做交易执行、不做回测。
一、产品形态全景(⚠️ Terminal 已死)
关键认知刷新:顶层没有
openbb_terminal/目录(只在 images/ 留个 gif)。官方博客 Sunsetting OpenBB Terminal 已确认——老 Terminal sunset,转世为cli/(openbb-cli),主力产品更名 ODP。「开源 CLI 终端 vs 商业平台」的二分法已过时。
| 产品线 | 形态 | 开源/付费 | 定位 |
|---|---|---|---|
| ODP(Open Data Platform) | Python SDK obb + REST API + MCP server |
开源 AGPL-3.0 | 数据集成基础设施底座,所有上层产品的根基 |
OpenBB CLI(cli/) |
交互式 REPL,独立包 openbb-cli v1.4.2 |
开源 | 老 Terminal 转世,wrap ODP,Routine Scripts 自动化 |
OpenBB Desktop(desktop/) |
Tauri(Rust 1.90)+ React 18,~35MB | 源码开源,但依赖闭源 npm @openbb/ui-pro |
桌面壳,内置 Miniforge + REST API + MCP + Jupyter |
| OpenBB Workspace(pro.openbb.co) | Web 前端 SaaS | 付费(Community/Lite/Pro 三档) | 企业级分析师工作台,AI copilot / dashboard / 图表 |
| openbb-cookiecutter | 脚手架模板 | 开源 | 一次生成 router+provider+obbject 三合一扩展骨架 |
| OpenBB MCP Server | MCP server,内置 4 个 AI skill | 开源 openbb-mcp-server v1.4.1 |
AI agent 调用 ODP 的标准入口 |
开源 vs 付费边界(精确版)
完全开源 AGPL-3.0(无限制):
- ODP 全套:Python SDK / REST API / MCP server / CLI
- Desktop 源码(但 UI 组件 @openbb/ui-pro 是闭源 npm,不装跑不起来 GUI)
- 全部 32 provider + 17 extension + charting
付费(商业价值捕获点):
- Workspace 前端(Community 免费1人 / Lite / Pro)
- Desktop release binaries(macOS/Windows)
- @openbb/ui-pro 组件库
- 团队协作、RBAC、审计、白标
设计洞察:核心数据层完全开源做生态/标准/漏斗,商业边界精准划在 UI 组件 + 团队协作。任何人可用 ODP 自建等价 Workspace 后端(前端组件要付费或自研)。这是个聪明的 COSS(商业开源)设计。
二、功能架构:功能矩阵
2.1 数据域 × 能力(15 个 domain)
| 数据域 | 代表性子能力 |
|---|---|
| equity 股票 | price(历史/实时)、fundamental(财报/比率)、ownership(持股/内部人)、calendar(除权/财报日)、estimates(预期)、screener(筛选)、compare、darkpool(暗池)、shorts(做空) |
| crypto 加密 | price、search |
| economy 经济 | calendar(经济日历)、gdp、shipping(航运)、survey |
| etf | search、historical、info、holdings、sectors、countries、equity_exposure |
| fixedincome 固收 | rate、spreads、government(国债)、corporate、bond_indices |
| currency 外汇 | price、search |
| derivatives 衍生品 | options(期权链)、futures(曲线/历史) |
| index 指数 | price、constituents(成分股)、snapshots |
| news 新闻 | world、company |
| regulators 监管 | SEC filings(财报/insider/MD&A/诉讼) |
| technical 技术分析 | 27 个指标:sma/ema/hma/wma、macd、rsi、bollinger、atr、adx、cci、stoch、vwap、obv、fisher、aroon、donchian、ichimoku、fibonacci、keltner、clenow_momentum、cones、relative_rotation |
| quantitative 量化 | normality(正态检验)、capm、adf_test(单位根)、kps_test、summary、rolling、performance |
| econometrics 计量 | ols_regression(OLS 回归) |
| commodity 大宗 | price、petroleum_status_report(EIA 原油) |
| famafrench | 市场因子(SMB/HML 等) |
2.2 官方 Provider 清单(32 个)
免费 / 无需 key(15 个):yfinance(覆盖最广)、fred(美联储经济)、sec(SEC 文件)、cboe、finviz、ecb(欧央行)、eia(能源)、famafrench、federal_reserve、finra、government_us、imf、multpl、oecd、deribit(加密期权)
付费 / 需 API key(17 个):fmp(最全面付费源)、intrinio、polygon、benzinga、tiingo、nasdaq、tradier、tradingeconomics、wsj、seeking_alpha、stockgrid、alpha_vantage、biztoc、bls(劳工统计)、cftc、congress_gov(国会议员交易)、econdb
全部欧美源,无一个中国数据源(A股全靠社区第三方 openbb_akshare / openbb-tushare)。
2.3 分析能力
- 技术指标:27 个(趋势/动量/波动率/成交量/形态),
technical域 - 量化统计:CAPM、OLS 回归、正态性检验、单位根(ADF/KPSS)、滚动指标、业绩风险,
quantitative/econometrics域 - 图表:
obbject_extensions/charting,基于 Plotly v6.3 交互式,支持技术指标/财报/经济数据可视化,主题配置
2.4 功能边界
| 能干 | 不能干 |
|---|---|
| 多资产数据获取(股/加密/经济/ETF/外汇/期货/期权/债) | ❌ 实时交易执行 |
| 公司财务分析(财报/比率/估值/内部人/持股) | ❌ 组合管理 |
| 宏观经济(GDP/通胀/利率/调查) | ❌ 回测(仅数据分析,不含策略回测引擎) |
| 新闻聚合、技术指标、量化统计、监管文件 | ❌ 非金融领域数据 |
对量化人的启示:OpenBB 是「投研数据与分析」工具,不是「交易/回测」工具。回测引擎、组合管理需另配(本项目用 vnpy/BulletTrade 承接,正好互补)。
三、技术架构
3.1 三层架构
openbb_platform/
├── core/ # 框架:Platform 入口(obb)、Router、AbstractProvider/Fetcher、standard_models(181 基类)、Registry、QueryExecutor
├── extensions/ # 17 个 router 扩展:定义统一命令树形状(obb.equity.price.historical)+ 含 mcp_server/platform_api
├── providers/ # 32 个数据源实现(全是欧美源)
└── obbject_extensions/ # 返回对象(OBBject)后处理(charting 等)
关键分离:extensions 定义 API 形状,providers 各自实现该形状,core 调度。
3.2 技术栈
| 组件 | 版本 | 用途 |
|---|---|---|
| Python | >=3.10,<4(实测锁 3.10–3.12) |
语言 |
| pydantic | ^2.12.3(v2) |
数据校验 |
| FastAPI | 0.136.3(全仓硬锁精确版) |
Web 框架 |
| uvicorn | ^0.40.0 |
ASGI |
| websockets | >=15.0 |
WebSocket |
| pandas | >=1.5.3 |
数据处理 |
| FastMCP | >=3.2.0 |
MCP server |
| plotly | ^6.3.1 |
可视化 |
| poetry | poetry-core | 构建(monorepo) |
| ruff | ^0.15 |
lint(运行时依赖,import 时 lint 生成代码) |
| pytest + nox | — | 测试 |
关键约束:
openbb-core强依赖 FastAPI+uvicorn+pydantic v2。即使只想用 SDK 取数,也会拉进整个 web 框架——ODP 永远以「可启动 API 的应用」形态存在,不是纯库。对多面消费(REST/MCP)必需,对纯数据使用者是负担。
3.3 包架构与依赖图
core (openbb-core 1.6.13) ← 地基:抽象 + API 框架 + 181 standard_models
↓ 被依赖
providers/ (32 包) + extensions/ (17 包) + obbject_extensions/ (1)
↓ 被聚合
platform (openbb 4.7.3) ← 顶层主包,聚合全部
entry_points 4 类挂载点(全部由 import openbb 时扫描):
openbb_provider_extension→ provider 数据源openbb_core_extension→ router 路由openbb_obbject_extension→ 结果后处理(.charting/.to_df)openbb_charting_extension→ 可视化视图
发布:build/pypi/openbb_platform/{publish.py,nightly.py} 统一 CI 发版,~56 个独立 PyPI 包。
3.4 代码规模
| 层 | 文件数 | 行数 |
|---|---|---|
| core | 189 | ~154,000 |
| extensions | 351 | ~42,500 |
| providers | 635 | ~34,000 |
| 合计 | ~1,175 | ~230,000 |
core 最大(154k 行)印证「框架+标准模型库」是核心资产。
3.5 工程化
- CI:17 个 workflow(Python 3.10–3.14 测试矩阵、black/mypy/pylint/ruff/codespell lint、draft-release、release-desktop、Windows/macOS x64+ARM 桌面构建)
- 测试:pytest + nox,
.coveragerc覆盖率配置,conftest.py fixture 模式 - 代码生成:
package_builder.py的auto_build()扫 entry points 生成嵌套 Container 树(SDK)+ Router + REST + MCP - 扩展机制:
openbb-cookiecutter脚手架一次生成 router+provider+obbject 三合一骨架,填 4 个模板变量即可
四、Provider Framework(数据层核心机制)
上轮深挖,此处精炼。完整细节见本节。
发现链路:Python entry_points → ExtensionLoader ep.load() 拿 Provider 实例 → Registry.include_provider() 按 name 入册 → QueryExecutor.execute(provider, model, params) 找 Fetcher。
Provider = 非抽象入口类,只持 fetcher_dict: dict[标准模型名, Fetcher类],不取数。真正干活的是 Fetcher。
Fetcher TET 三段式(⭐最值得借鉴)
openbb_core/provider/abstract/fetcher.py 定义 Generic Fetcher[Q, R],fetch_data 串三钩子:
| 钩子 | 作用 | IO? |
|---|---|---|
transform_query(params)→Q |
参数校验、补默认、vendor 参数转换 | 否 |
extract_data(query, creds)→Any |
唯一调网络/IO 的地方,返回 raw | 是 |
transform_data(query, data)→R |
raw → 标准化 list[Data],字段映射 + pydantic 校验 |
否 |
extract_data 是 staticmethod 无状态;同步/异步二选一(aextract_data alias);Fetcher.test() 内置契约自检。
standardized model 多源统一
standard_models/(181 基类)定义全行业统一 XxxQueryParams+XxxData。Provider 子类继承标准模型 + __alias_dict__(vendor 字段名→标准名)+ __json_schema_extra__。Data 的 model_validator(mode="before") 在校验前重写 key → 不同源 raw 落进同一字段名。新增 model = 加一个三件套文件 + fetcher_dict 加一行,无中央注册表。
五、Router / SDK / MCP / REST(消费层:一函数四出口)
一句话:一份被 @router.command(model=...) 装饰的 Python 函数,同时变成 SDK 方法 + REST 端点 + MCP 工具(三出口代码生成)。
- Router = FastAPI
APIRouter薄包装 +include_router嵌套。SignatureInspector.complete用ProviderInterface反射把参数经 FastAPIDepends()注入 → 零样板。 - obb 入口:
PackageBuilder.auto_build()扫 entry points 代码生成嵌套 Container 树,create_app多重继承嫁接 →obb.x.y.z()=command_runner.run()。 - REST:
rest_api.py一个 FastAPI app,commands.py自动生成端点,GET /api/equity/price/historical?symbol=&provider=,OpenAPI swagger 同源。 - MCP(⭐关键洞察):不维护单独 MCP 工具定义,用
fastmcp的 OpenAPI provider 从 FastAPI app 反向派生 MCP 工具。一条 GET 端点 = 一个工具,命名equity_price_historical。工具爆炸(500+)时用list_categories/list_tools_in_category元工具发现兜底。
完整数据流
obb.equity.price.historical("AAPL", provider="yfinance") → 命令路径解析 → CommandRunner.run(校验+注入 CommandContext)→ historical() → OBBject.from_query(Query) → Query.execute → QueryExecutor.execute("yfinance","EquityHistorical",params) 取 YFEquityHistoricalFetcher → TET → OBBject[results, provider, warnings]。每步边界清晰、可单测、可换 provider、transform_query 可缓存。
六、部署架构(⭐ 用户最关心)
6.1 部署方式矩阵
| 方式 | 关键命令 | 适用场景 | 注意 |
|---|---|---|---|
| 最小 SDK | pip install openbb |
仅 Python 取数 | 默认只装 17 核心 provider |
| 全量 SDK | pip install "openbb[all]" |
全部 provider + charting + MCP | 含 20 个可选 extra |
| 单 extra | pip install "openbb[mcp_server]" / [charting] |
按需 | 19 个具名 extra |
| REST API | openbb-api(默认 127.0.0.1:6900,自动生成 widgets.json) |
连 Workspace 标准入口 | 需 pip install "openbb[all]" |
| Docker 轻量 ⭐ | build/docker/platformAPI.Dockerfile(4 行) |
官方推荐生产部署 | 见下,无需源码 |
| Docker 重型 | build/docker/platform.dockerfile(python:3.11 + Rust + libwebkit2gtk + 源码 install) |
CI / 需编译桌面 | 后端容器其实不需要 Rust,装它是为 Tauri |
| Desktop | npm run tauri dev |
单机桌面 | 需 Rust 1.90 + Node;自动装 Miniforge+REST+MCP+Jupyter |
| Workspace 接自托管 | 登 pro.openbb.co → Connect backend → 填 http://127.0.0.1:6900 |
个人/团队 | SaaS 前端 + 本机 backend,走 widgets.json |
6.2 官方推荐 Docker 部署(4 行)
FROM python:3.10-slim-bookworm
RUN pip install "openbb[all]" openbb-platform-api
EXPOSE 6900
ENTRYPOINT ["openbb-api","--host","0.0.0.0"]
6.3 Workspace ↔ Backend 协议(widgets.json,踩坑点)
- 协议是
widgets.json,由openbb-platform-api启动时自动 introspect FastAPI 路由生成 - 三种挂载:内存默认 /
--editable落盘可手改 /--widgets-json /path完全自定义 - Widget 类型由返回类型推断:
list[dict]→AgGrid 表、str→Markdown、dict + type="chart"→Plotly、Metric→指标卡、PDF→PDF - OmniWidget(
OmniWidgetResponseModel):POST + prompt 输入 + 多模态返回 —— AI agent 与 Workspace 集成的官方钩子 --agents-jsonCLI 参数加/agentsendpoint;workspace_apps.json导入导出 dashboard 模板 →「AI agent 反向给 Workspace 推 dashboard」闭环
6.4 开发者安装(dev_install.py,⚠️ 反模式)
openbb_platform/dev_install.py 的 editable install 是脚本 hack(非 uv workspace):
- 备份 pyproject.toml + poetry.lock
- 动态把 32 provider + 17 ext 改成
{path="./xxx", develop=true} poetry lock --regenerate+poetry install -E allfinally恢复原文件
坑:中间任何一步崩溃(含 Ctrl-C)会留半改状态;CLI 部分还会先删 openbb 依赖再装。二开团队 fork 后这是最易踩的坑。新增扩展用 openbb-cookiecutter 脚手架 + pip install -e . 更稳。
七、亮点介绍(系统化)
7.1 技术亮点
| # | 亮点 | 是什么 | 为什么重要 |
|---|---|---|---|
| 1 | 一函数四出口 | @router.command 一个函数 → SDK + REST + MCP + Workspace widget |
消费面零样板,改一处全出口同步 |
| 2 | MCP 是 REST 副产品 | fastmcp 从 FastAPI OpenAPI 反向派生 MCP 工具,无单独 MCP 定义 | AI agent 接入零额外成本,与 REST 同源同 schema |
| 3 | Fetcher TET 三段式 | transform_query / extract_data(唯一 IO) / transform_data | IO 与转换解耦,可单测、可缓存、多源归一 |
| 4 | 181 标准模型统一 | 标准化 schema + __alias_dict__ 字段映射 |
LLM 不用学每源方言,只学一套 schema,天然契合 function calling |
| 5 | MCP server 内置 4 个 AI skill | build_workspace_app SKILL.md 从 fetcher/router/widgets 全流程脚本化 |
"AI 帮你写 OpenBB 扩展"做成产品内功能,教科书级 MCP skill 范本 |
| 6 | Tauri 桌面 | Rust+React 35MB 非 Electron | 分发体积小,企业 IT 更易接受(代价:需 Rust 工具链) |
7.2 战略亮点
| # | 亮点 | 说明 |
|---|---|---|
| 1 | "Connect once, consume everywhere" | 一次接入,Python/REST/Workspace/Excel/MCP 并列一等公民消费 |
| 2 | AI-first 信任定位 | Workspace 把 MCP 输出转可交互 widget,参数透明、原始数据一键可查、LLM 转换可审计——"不是连接,是信任" |
| 3 | "Workflows that stay when analysts leave" | 工作流持久化可共享,沉淀机构知识,直击买方"明星分析师带走 know-how"痛点 |
| 4 | 数据主权 / 自托管优先 | Lite/Pro/Enterprise 全支持 VPC/本地,"No vendor access, No shared infra",SOC 2 Type II |
| 5 | 真开源(71.2k star) | vs Bloomberg $25k/座/年封闭;Core 全免费可自托管,把"终端"从特权变基础设施 |
八、商业模式与竞品
8.1 商业模式:开源核心 + 商业前端
本质:开源 ODP 做漏斗与标准制定 → Workspace 企业前端变现(product-led growth,非外呼销售)。
| 档位 | 价格 | 部署 | 目标 |
|---|---|---|---|
| Community | 免费 | OpenBB 云 | 个人/学生/PoC |
| Lite | $1,200/年(原 $2,400) | 自托管 | <10 人小团队 |
| Pro | 定制 | 自托管/多租户云 | 大型投研团队 |
| Snowflake | $500/座/年 | Snowflake Marketplace | 已在 Snowflake 的数据团队 |
| Enterprise | 定制 | 完全本地/白标/OEM | 资管/卖方/金融科技 |
8.2 AGPL-3.0 战略(2024-05-15 改)
| 干系人 | 含义 |
|---|---|
| 个人/研究 | 无影响,免费用 |
| 企业内部使用 | 无影响(不分发、不 SaaS) |
| 修改并分发 | 必须开源修改,或买商业许可 |
| 修改并提供 SaaS ⚠️ | 必须开源,或买商业许可(AGPL 网络条款,比 GPL 严) |
战略意图:① 保护社区投入防白嫖闭源 fork;② 双重许可变现 SaaS 厂商;③ 对手想做闭源金融 SaaS 必须付费 → 商业护城河。对标 GitLab/Mattermost/Grafana 的 COSS 路线。
对本项目(量化私募)含义:若交易系统通过网络对外服务(给 LP/客户看净值),挂 ODP 会触发开源义务。规避方式:独立进程+API 调用松耦合,不改 ODP 源码。这也是 ODP 设计成 REST/MCP 多面消费的隐性动机之一。
8.3 竞品定位
| 对手 | 定位差异 | OpenBB 优/劣 |
|---|---|---|
| Bloomberg/FactSet/Refinitiv | 闭路终端帝国 vs 开放基础设施你拥有 | 优:免费/自托管/无锁定/AI 原生;劣:数据深度(Bloomberg 独家无可替代) |
| yfinance/akshare/tushare | 单源爬虫库 vs 多源路由+统一 API+UI/agent | 优:多源聚合/统一字段/可视化;劣:轻量场景 yfinance 三行更简(且 OpenBB 反向集成了 akshare/tushare) |
| LangChain/LlamaIndex | 通用 agent 编排 vs 金融数据层 | 非竞争是互补:OpenBB 把它们列为生态伙伴,自己定位金融数据+终端 UI |
| 自建数据中台 | 24-36 月/$5-10M/20+ FTE vs 开箱即用 | 优:TTM 从 2 年→2 周;劣:极独特私有数据自建仍优 |
8.4 生态
- GitHub:71.2k star / 7.3k fork / 248+ contributors / 6,863 commits
- 团队:~15-18 FTE 管理 8 条产品线
- 创始人:Didier R Lopes(2021 因 meme stock 亏损建 "Gamestonk Terminal",2022 改名 OpenBB;"BB" 来自 Blackberry 代码非 Bloomberg)
- 融资:$8.5M Seed(2022-03,OSS Capital 领投)。⚠️ 非 YC 公司(网络有 LLM 摘要误传 W22,官方源查无)
九、A 股集成现状
OpenBB 官方无中国源,全靠社区第三方:
finanalyzer/openbb_akshare(★125,AGPL-3.0)— AKShare 扩展,聚合东财/同花顺/腾讯/新浪/雪球openbb-tushare(PyPI,需 token)、openbb-hka(A+H 股 Workspace app),贡献者 Roger Ye
backends-for-openbb(给 Workspace 前端接数据 FastAPI 模板)、openbb-ai(给 Workspace 构建 SSE agent SDK)都绑定 Workspace 前端,与本项相关度低。
十、对 sanguo_vnpy_v2 的建议(按 ROI 排序)
| 设计 | 借鉴价值 | 建议 |
|---|---|---|
| Fetcher TET 三段式 | ⭐⭐⭐⭐⭐ | 直接抄(清白实现,不引依赖)。把 baostock/akshare/miniQMT 取数重构成 Fetcher,治"数据层瑕疵在 provider 兜底会乱"旧伤 ;__alias_dict__ 归一 + transform_data pydantic 校验 = 数据质量内建 |
| MCP 直接暴露 provider 方法 | ⭐⭐⭐⭐ | OpenBB 把 MCP 当"REST 副产品"走 router→FastAPI→fastmcp;本项更直接——MCP 把 LocalUnifiedProvider.get_price/get_fundamentals/get_closes_panel 直接暴露给 Claude Code,跳过 router/FastAPI。参考 Vibe-Research 5 工具模式 |
| standard/extra 参数拆分 | ⭐⭐⭐⭐ | 可借鉴:标准字段(symbol/start/end/interval)vs vendor 特有(fq/adjustment)分家 |
| OBBject 信封(results+provider+warnings) | ⭐⭐⭐ | 统一返回壳带 warnings(治 bs_eod 15min dt 乱码没早发现那种 ) |
| 把 sanguo 封装成 openbb_sanguo_provider | ⭐⭐⭐ | entry_points 挂进 ODP,立刻获 REST+MCP+Workspace 全套消费面——但 AGPL 合规风险(网络对外服务触发开源),需法务确认 |
| entry_points / Container 代码生成 | ⭐⭐ | 不值得抄。单仓库单开发者过度工程,字典+直白 API 更符合 KISS |
直接复用 openbb_akshare?不推荐
致命限制:① AGPL-3.0 网络条款;② 数据语义错配(OpenBB EquityHistorical 美股模型无复权概念,A 股 qfq/hfq 只能落 extra_params,策略层无法跨 vendor 用);③ akshare DataFrame 被强拆 dict→pydantic 重建丢 dtype,本项已直接用 df 反向适配无收益;④ 凭证/限流不匹配(baostock 单进程单登录会拉黑 、akshare 东财瞬时限流、miniQMT 需 Win 常驻);⑤ 场景错配(本项机器内 provider+策略直调+Claude Code 偶查,用不到 REST/Workspace)。
推荐:借鉴架构,不引依赖。Fetcher 三段式清白实现(不复制 OpenBB 代码→不触发 AGPL),MCP 直接调 provider。真要尝鲜 OpenBB MCP,单独实验目录 pip install openbb[mcp],不混进生产仓库。
十一、关键文件(绝对路径根 github-repos/OpenBB/)
- 抽象:
openbb_platform/core/openbb_core/provider/abstract/{data,query_params,fetcher,provider}.py - 注册调度:
.../provider/{registry,registry_map,query_executor}.py、.../app/extension_loader.py - 标准模型库:
.../provider/standard_models/(181 个) - Router:
.../app/router.py、extensions/equity/openbb_equity/{equity_router,price/price_router}.py - obb 生成:
core/openbb/__init__.py、.../app/static/{package_builder,app_factory}.py、.../app/provider_interface.py - REST+MCP:
.../api/{rest_api.py,router/commands.py}、extensions/mcp_server/openbb_mcp_server/app/app.py - MCP skill 范本:
extensions/mcp_server/openbb_mcp_server/skills/build_workspace_app/SKILL.md - 官方推荐部署:
build/docker/platformAPI.Dockerfile(4 行) - widgets.json 协议全集:
extensions/platform_api/README.md - provider 样例:
providers/{yfinance,fmp}/openbb_*/models/equity_historical.py - 脚手架:
cookiecutter/openbb_cookiecutter/template/ - 技术栈/依赖:
openbb_platform/{pyproject.toml,core/pyproject.toml} - editable install 反模式:
openbb_platform/dev_install.py
十二、参考来源
- 官网:openbb.co / platform / pricing / docs
- 博客:Sunsetting Terminal / License Change AGPL / MCP for Finance / FinAI Stack
- GitHub: OpenBB-finance/OpenBB
- TechCrunch: OpenBB beyond Bloomberg
- OSS Capital Portfolio
- Extending OpenBB with AKShare/Tushare
相关: