Data Formulator 解读:微软把 AI 数据探索做成了「可视化工作台 + 数据线程」
posts posts 2026-09-15T03:23:00+08:00微软研究院的 Data Formulator 用 AI 代理驱动数据可视化探索:数据连接器维护数据记忆,Data Thread 让问题分叉可回溯,Flint 图表引擎渲染 30+ 图型。本文拆解其设计逻辑、上手路径与适用边界。技术笔记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_formulatorpip 安装(建议虚拟环境):
pip install data_formulator
python -m data_formulator # 自动打开 http://localhost:5567Docker:
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」为例的典型流:
- 接入:拖入 CSV / Excel / JSON(或连接数据库、粘贴截图让它抽数据)。0.8 起也可以直接让代理找数据:它先摸清有哪些源、给出加载计划,你预览确认后才进工作区。
- 首问:「按区域看季度趋势」——DataAgent 生成图表,落在 Data Thread 的第一个节点。
- 分叉:看到华东异常,从该节点分出「华东只看线上渠道」的新分支;同时另一支去比「区域 × 品类」。
- 精修:点选换堆叠柱状图为百分比条形图,或直接改图表规范,或让风格代理统一配色。
- 沉淀:把有价值的分支整理成报告导出。
与聊天式 BI 的差别在第 3 步:分叉是显式结构,不是淹没在滚动记录里;回到任何节点都能看清「我当时问了什么、看到了什么」。
边界与适用人群
- 适合:分析师的个人/小团队探索场景;需要频繁从异构源(截图、文本、CSV / Excel / JSON、库表)快速拼数据的临时分析;希望探索过程可回溯、可对比的工作流。
- 不适合:企业级报表平台替代品(定时报表、行级权限、审计不在当前能力中心);重度 Excel 自动化场景——那是另一类工具的领地。
- 注意:0.7 → 0.8 正在交互重构期,beta 版适合尝鲜不适合依赖;桌面构建未签名;核心交互假设「探索为主」,如果你的日常是「每月跑同一套固定图表」,它带来的增益有限。
Data Formulator 对「AI + 数据分析」的贡献是一个清醒的判断:聊天不是数据分析的好界面,可分支的探索树才是。把 AI 的生成能力和可视化工作台的空间感结合起来,这条路比「更聪明的聊天机器人」更接近分析师的真实工作方式。
来源与进一步阅读
- 项目仓库:microsoft/data-formulator,版本与 News 以 README 和 CHANGELOG 为准。
- 图表引擎:microsoft/flint-chart —— 独立的开源可视化语言,可单独使用。
- 初版说明:微软研究院博客。
- 在线体验:data-formulator.ai。
参与讨论
使用 GitHub 登录。欢迎补充事实、异议与实践。
讨论暂时无法加载。