Data Formulator

用 AI 智能体在可视化工作区里连接数据、追问问题并生成可编辑的图表。

Star 数
★ 18k
最近更新
今天
License
MIT
主语言
Python

30 秒速览

运行形态
命令行工具网页应用桌面应用
可在哪里用
通用 · 跨平台OpenAI API · Claude API
费用
软件免费,模型调用费用自付
上手难度
低 · 几分钟可跑通
开始前需要
Python(uv 或 pip)或 DockerLLM API 访问(通过 LiteLLM 使用 OpenAI、Azure、Anthropic,或本地 Ollama)Shell / 命令行网络访问本地文件系统
典型场景
数据分析师拿到一批 CSV/Excel 销售数据,想边看边追问区域与时间趋势,而不是先写 SQL 再画图。
不适合
  • 只需要静态 BI 报表、不需要对话式探索的用户
  • 不愿自行配置模型密钥与数据源连接的团队

这个 Agent 能做什么,适合哪些场景?

Data Formulator 是微软研究院开源的数据探索工具,把自然语言对话与可视化界面结合起来,让分析人员从 CSV、Excel、JSON、截图、文本或数据库中出发,逐步构建图表与报告。它以后端 Python 服务和浏览器前端的形式运行,可用 uvx 或 pip 一条命令启动,也可通过 Docker Compose 或 CI 构建的 Windows/macOS 桌面包运行。系统通过 LiteLLM 接入 OpenAI、Azure、Anthropic 或 Ollama 等模型,用 DuckDB 支持大数据量,图表则由开源的 Flint 图表语言编译生成。核心交互是 Data Thread:问题、解释、表格和可编辑图表按历史排列,可从任意步骤分支探索,也可把结果整理成报告分享。数据源方面内置文件、本地目录、数据库以及 Databricks 等平台的连接器,并支持 MySQL、PostgreSQL、MSSQL、Azure Data Explorer、S3、Azure Blob 等外部加载器。

用户上传 CSV/TSV/Excel/JSON、截图或文本,或通过数据加载器连接数据库与云存储;负责分析的智能体会发现数据源、澄清需求、提出加载计划,并在用户确认后把数据加入工作区。随后在 Data Thread 中输入自然语言问题,智能体调用所选模型(经 LiteLLM 转发到 OpenAI、Azure、Anthropic 或 Ollama),生成解释、表格和基于 Flint 图表语言的图表规格,前端渲染为可编辑图表。多表场景下支持自动连接,大表由 DuckDB 处理,结果可直接修改、从历史步骤分支或组合成报告。整个应用以本地 Web 服务监听 5567 端口。

  1. 数据分析师拿到一批 CSV/Excel 销售数据,想边看边追问区域与时间趋势,而不是先写 SQL 再画图。
  2. 业务人员只有一张报表截图或一段文本表格,需要先抽取成结构化数据再做可视化。
  3. 团队已有多套数据库(MySQL、PostgreSQL、MSSQL、Databricks、S3),希望在同一工作区里探索并自动处理表间连接。
  4. 需要把探索过程沉淀成可分享报告的汇报者,希望保留每一步的图表与推理历史。
  5. 希望在本地或内网运行、用自有模型密钥(OpenAI、Azure、Anthropic 或本地 Ollama)控制成本的团队。
  6. 数据量较大、需要 DuckDB 承载聚合查询而不是把全部数据导入浏览器内存的场景。

如何安装或部署这个 Agent?

推荐使用 uv,无需额外安装步骤即可运行:

uvx data_formulator

也可以使用 pip(建议在虚拟环境中):

pip install data_formulator
python -m data_formulator

或用 Docker Compose 构建并启动:

docker compose up --build

若想试用 0.8 beta,可显式指定预发布版本:

pip install --pre data_formulator==0.8.0b1
uvx [email protected]

Windows/macOS 桌面版需从 desktop-build 工作流的 Artifacts 或对应的 GitHub Release 下载,解压后运行 Data Formulator.exe 或把 Data Formulator.app 移入「应用程序」。这些预览构建未签名、未公证,仅在确认来源后再绕过系统警告。

如何使用这个 Agent?

启动后在浏览器打开 http://localhost:5567 。先配置模型提供方(OpenAI、Azure、Anthropic 或本地 Ollama,通过 LiteLLM 统一接入),然后导入数据:上传 CSV/TSV/Excel/JSON、截图或文本,或选择数据库/平台连接器并让分析智能体代你查找与加载。

uvx data_formulator --help

上面的命令可查看自定义端口、沙箱模式与数据存储位置等选项。随后在 Data Thread 中用自然语言提问,查看解释、表格与可编辑图表;从任意历史步骤分支探索,最后把结果整理成报告分享。

这个 Agent 有哪些优点和局限?

优点
  • 把自然语言提问与可编辑图表放在同一历史中,可从任意步骤分支,避免长对话里丢失上下文。
  • 图表由开源 Flint 图表语言编译生成,覆盖 30+ 图表类型并支持主题与样式细化。
  • 通过 LiteLLM 接入 OpenAI、Azure、Anthropic 与本地 Ollama,模型选择不锁定单一厂商。
  • 内置 DuckDB,应对较大数据集时不需先把全部数据搬进浏览器。
  • 数据连接面广:文件、本地目录、数据库、Databricks,以及 MySQL、PostgreSQL、MSSQL、Azure Data Explorer、S3、Azure Blob 等外部加载器。
  • 部署方式多:uvx/pip 一条命令、Docker Compose、自托管 Web 服务,以及 CI 构建的桌面包。
局限
  • 自身不含模型,必须自行提供 OpenAI、Azure、Anthropic 或 Ollama 等模型服务与密钥,使用成本随调用量变化。
  • 桌面版为 CI 自动构建的预览包,未代码签名或未公证,首次运行需手动绕过系统安全警告。
  • 0.8 目前仍是 beta(0.8.0b1),接口与流程可能继续变动,正式使用需锁定 0.7 等稳定版本。
  • 外部数据源连接器的凭据与网络配置需使用者自行维护,连接失败时依赖模型解释而非显式诊断。
  • 桌面安装包只覆盖 Windows 与 macOS,且构建产物在 Actions Artifacts 中仅保留 30 天。

这个 Agent 与同类方案有什么区别?

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
Data Formulator 当前 58 · 缺口较多 命令行工具免费 + 模型费 ★ 18k 今天 Python OpenAI API · Claude API
Flint 图表语言 60 · 存在缺口 代码库 / SDK免费 ★ 4.4k 27 天前 TypeScript Claude.ai
智析 Agent 60 · 存在缺口 桌面应用免费 + 模型费 ★ 2.6k 11 天前 JavaScript OpenAI API
WhoDB 51 · 缺口较多 自托管服务免费版 + 付费版 ★ 5k 今天 Go —

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
缺口较多
58/ 100 五分制 2.9 / 5
信任安全 17/29
可靠稳定 8/14
适用触发 10/18
规范维护 13/18
有效结果 7/13
证据核验 3/8
查看各维度的扣分理由
信任安全17 / 29 · 2.9/5

沙箱文档显示有进程隔离、审计钩子禁止 worker 写文件、namespace 按 turn 清理、用户 workspace 隔离,体现一定最小权限;但 SSO 配置指南示例中多处 verify=False、TALISMAN_ENABLED=False、换票端点未设共享密钥时默认放行,属于可指出的安全弱点,故 least_privilege 与 sensitive_data_handling 仅给 2。用户确认方面,数据加载有“审阅后再加入工作区”的描述,但缺少对破坏性操作或外部写入的显式确认机制,给 2。数据流透明有 Data Thread 与诊断结构支撑,给 2。依赖安全有 litellm CVE 修复的 pin 与 resolutions 覆盖,但依赖面极广(大量数据库/云 SDK),未见 SBOM 或审计记录,给 2。外部效应方面存在联网抓取、数据库写入与桌面未签名构建,缺少统一的外部副作用清单,给 1。回滚仅有 namespace 保存/恢复与 scratch 清理,缺少对数据源写入或配置变更的回滚说明,给 1。来源归属有 MIT 版权、Microsoft 商标与 CLA 说明,给 2。

可靠稳定8 / 14 · 2.9/5

文档与代码结构(sandbox session、agent 诊断、语言注入)内部一致,测试文件与文档描述对应,给 2。依赖可用性有 uv/pip/docker/桌面多路径与 litellm 平台兼容性注释,给 2。失败信息方面文档提到 save/restore 失败仅打 warning 并降级,缺少面向用户的错误分类与提示规范,给 1。

适用触发10 / 18 · 2.8/5

README 明确面向数据分析师、开发者、桌面用户,场景覆盖文件/数据库/平台,给 2。能力边界有 sandbox 限制、类型覆盖限制、Gamma 角色权限限制等说明,给 2。触发精度方面 Agent 由自然语言驱动,未见对工具调用边界的精确约束说明,给 1。环境适配有 Python>=3.11、Node 20、Windows/macOS 构建与 HTTPS 要求,给 2。

规范维护13 / 18 · 3.6/5

信息架构有 README、docs/dev-guides、docs-cn、CHANGELOG 引用,给 2。安装说明详尽(uvx/pip/docker/桌面/开发),给 3。命名稳定性方面 package.json 版本 0.1.0 与 pyproject 0.8.0b1 不一致,且处于 beta,给 1。示例与 FAQ 有演示视频、更新日志与使用说明,但无专门 FAQ,给 2。已知限制在 sandbox 文档与 README 警告中有体现,给 2。许可证为完整 MIT 文本,给 3。版本与变更日志有 CHANGELOG 引用与 News 段落,给 2。维护责任有 Microsoft 作者、SECURITY.md 与行为准则,给 2。

有效结果7 / 13 · 2.7/5

输出可用性有图表、报告、可编辑结果与诊断查看器,给 2。边际价值在于统一数据连接与分支式分析工作流,但同类 BI/AI 分析工具众多,差异化证据有限,给 2。成本效益方面依赖极重(大量云 SDK、LLM 调用、桌面打包),对轻量用户成本偏高,给 1。

证据核验3 / 8 · 1.9/5

claim_traceability:README 声明多与文档/测试对应,但缺少逐条声明的证据链接,给 1。cross_source_corroboration:README、dev-guides、测试文件相互印证部分能力,但覆盖不完整,给 1。fact_inference_separation:文档混有设计意图与实现描述,未明确区分已验证与推断,给 1。

风险与缓解建议
  • SSO 配置示例包含 verify=False 与关闭 Talisman,生产部署前必须修正。
  • 换票端点在未设置共享密钥时默认放行,存在未授权换票风险。
  • 桌面构建未签名/未公证,README 要求用户绕过系统警告,需谨慎。
  • package.json 与 pyproject 版本号不一致,发布与依赖解析可能混淆。
  • 依赖面极广(大量数据库与云 SDK),供应链风险与安装成本较高。
证据充分度:低 评估于 2026年10月20日 审查版本 5477f0e23642
查看完整评分方法 →

常见问题

使用它需要付费吗?
软件本身以 MIT 许可证开源,可免费安装运行;但需要一个模型提供方,若使用 OpenAI、Azure 或 Anthropic 的 API 则按调用量付费,改用本地 Ollama 可避免这部分费用。
我的数据会离开本机吗?
应用本身作为本地 Web 服务运行(默认端口 5567),数据通过你配置的数据加载器读取;但推理请求会发送到你选择的模型提供方,因此数据外发范围取决于所选模型服务是否自托管。
应该装稳定版还是 0.8 beta?
0.8.0b1 引入了统一的 Data Thread 流程、更多数据源和 Flint 图表增强;若用于正式分析,README 建议使用稳定版 0.7(pip install data_formulator 或 uvx data_formulator)。
可以连接哪些数据源?
支持文件上传(CSV、TSV、Excel、JSON)、本地目录、数据库与 Databricks 等平台,并通过外部数据加载器连接 MySQL、PostgreSQL、MSSQL、Azure Data Explorer、S3 和 Azure Blob。
桌面版安装为什么会被系统拦截?
Windows 与 macOS 的桌面包由 CI 自动构建,当前未代码签名或公证,因此需在确认下载来源为官方工作流产物或 Release 后,按 README 指引选择「仍要运行」或「仍要打开」。
在 GitHub 查看 ↗ 安装 ↓

相关 Agents