跳到正文

目录

Data Formulator 解读:微软把 AI 数据探索做成了「可视化工作台 + 数据线程」

用 AI 做数据分析的人大多遇到过同一类挫败:要么是聊天式 BI——问一句答一句,追问三轮后上下文糊掉,再也说不清自己探索到了哪一步;要么是传统 BI——图表精细但每次改维度都要重新拖拽配置。微软研究院的 Data Formulator(Python,17k+ stars,MIT)试图在这两者之间落一个平衡点:一个可视化工作台,AI 代理在背后干活,探索过程本身可分叉、可回溯。当前稳定版 0.7;0.8 beta 1(2026-08-15)已把交互收拢为单一流,尚在预览阶段。

核心判断

Data Formulator 的独特点不在「AI 能画图」——这已是红海——而在两个结构性设计:数据连接器带数据记忆(data memory,记住多数据源之间的关系,避免代理在关系未明时就抢答)和 Data Thread(数据线程,把每次分析做成可分支的节点,从长聊天记录变成可见的探索树)。它赌的是:数据分析的瓶颈不是生成图表的速度,而是探索过程的空间感。边界也来自这里——它是探索工具,不是报表平台,固化定时报表、企业级权限治理不是它的主场。

系统地图

理解这个项目只需四个构件:

构件职责关键事实
数据连接器接入文件 / 本地文件夹 / 数据库 / Databricks 等平台维护 data memory,记录数据源间关系
DataAgent + Data Thread统一问答入口;探索分支化每个答案可分叉出新问题,比较不同路径
Flint 图表引擎语义化图表规范 → 成品图开源独立项目 microsoft/flint-chart,30+ 图型
报告与分享探索结果导出可编辑报告

Flint 值得单独一提:图表不是由 LLM 直接吐 SVG 或 matplotlib 代码,而是编译紧凑的图表规范(chart spec)为成品可视化——把「生成自由度」限制在受控的规范层,出图的稳定性比让模型自由发挥高一截。规范本身是人类可读可编辑的文本,AI 生成后不满意,直接改规范微调即可,不必重新描述需求碰运气。这个引擎独立开源(TypeScript,4k+ stars),你也可以只用 Flint、不用 Data Formulator。

交互设计上,它刻意混合 UI 操作与自然语言:用户可以用点选表达确定的意图(改个颜色、换个图型),用语言表达模糊的意图(「这两个指标有关系吗」)。这比纯聊天界面少了打字负担,比纯 UI 少了配置成本。

演进脉络:从「图像转数据」到「统一探索流」

版本史能看出项目重心的迁移:

  • 早期(0.1.x–0.2):多表自动连接(0.1.6)、DuckDB 支撑大数据量(0.2)、外部数据加载器(0.2.1.3/4:MySQL / PostgreSQL / MSSQL / Azure Data Explorer / S3 / Azure Blob),加上从截图和文本里抽取数据——这几项铺的是数据侧的地基。
  • 中期(0.2.2–0.5.1):目标驱动的探索推荐(0.2.2)、代理模式与数据抽取(0.5)、可编辑报告(0.5.1)。
  • 0.6(2026-01):接入 URL 与数据库的实时数据,自动刷新——从分析静态文件迈向分析活数据。
  • 0.7(2026-05):现在的形态——治理化的数据源连接、统一 DataAgent + Data Thread、Flint 语义图表引擎(30+ 图型)+ 风格精修代理、持久化会话与工作区、中英双语 UI。
  • 0.8 beta 1(2026-08-15):统一「加载 → 提问 → 审视结果 → 分叉」的单一流;数据加载改成对话式——代理先发现可用的源、提出加载计划,你预览确认后才进工作区;扩充数据源(含 Databricks Unity Catalog 与更多企业认证),桌面版支持持久化附件与本地文件夹访问。

模型侧通过 LiteLLM 接 OpenAI / Azure / Anthropic / Ollama 等,本地 Ollama 也能驱动——对不想把数据送出内网的用户是硬需求。

上手:最快一条命令

uv 直接跑(推荐,零配置):

uvx data_formulator

pip 安装(建议虚拟环境):

pip install data_formulator
python -m data_formulator   # 自动打开 http://localhost:5567

Docker:

docker compose up --build   # 同样访问 localhost:5567

想改它本身,就克隆仓库按 DEVELOPMENT.md 本地构建。

0.8 预览版:uvx [email protected],或 pip install --pre data_formulator==0.8.0b1。另有桌面版(Windows / macOS)从 CI 构建产物下载——注意官方警告:预览构建未签名未公证,绕过系统警告前务必确认来源是本仓库的 artifacts 或 releases。uvx data_formulator --help 可看自定义端口、沙箱模式、数据存储位置等选项。

一个探索任务怎么走

以「分析一份销售 CSV」为例的典型流:

  1. 接入:拖入 CSV / Excel / JSON(或连接数据库、粘贴截图让它抽数据)。0.8 起也可以直接让代理找数据:它先摸清有哪些源、给出加载计划,你预览确认后才进工作区。
  2. 首问:「按区域看季度趋势」——DataAgent 生成图表,落在 Data Thread 的第一个节点。
  3. 分叉:看到华东异常,从该节点分出「华东只看线上渠道」的新分支;同时另一支去比「区域 × 品类」。
  4. 精修:点选换堆叠柱状图为百分比条形图,或直接改图表规范,或让风格代理统一配色。
  5. 沉淀:把有价值的分支整理成报告导出。

与聊天式 BI 的差别在第 3 步:分叉是显式结构,不是淹没在滚动记录里;回到任何节点都能看清「我当时问了什么、看到了什么」。

边界与适用人群

  • 适合:分析师的个人/小团队探索场景;需要频繁从异构源(截图、文本、CSV / Excel / JSON、库表)快速拼数据的临时分析;希望探索过程可回溯、可对比的工作流。
  • 不适合:企业级报表平台替代品(定时报表、行级权限、审计不在当前能力中心);重度 Excel 自动化场景——那是另一类工具的领地。
  • 注意:0.7 → 0.8 正在交互重构期,beta 版适合尝鲜不适合依赖;桌面构建未签名;核心交互假设「探索为主」,如果你的日常是「每月跑同一套固定图表」,它带来的增益有限。

Data Formulator 对「AI + 数据分析」的贡献是一个清醒的判断:聊天不是数据分析的好界面,可分支的探索树才是。把 AI 的生成能力和可视化工作台的空间感结合起来,这条路比「更聪明的聊天机器人」更接近分析师的真实工作方式。

来源与进一步阅读

参与讨论

使用 GitHub 登录。欢迎补充事实、异议与实践。