Data Formulator
用 AI 智能体在可视化工作区里连接数据、追问问题并生成可编辑的图表。
- Star 数
- ★ 18k
- 最近更新
- 今天
- License
- MIT
- 主语言
- Python
- FA 评分
- 58/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台OpenAI API · Claude API
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 数据分析师拿到一批 CSV/Excel 销售数据,想边看边追问区域与时间趋势,而不是先写 SQL 再画图。
- 不适合
- 只需要静态 BI 报表、不需要对话式探索的用户
- 不愿自行配置模型密钥与数据源连接的团队
- 源码审查
- 58/100 · 缺口较多
这个 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 端口。
- 数据分析师拿到一批 CSV/Excel 销售数据,想边看边追问区域与时间趋势,而不是先写 SQL 再画图。
- 业务人员只有一张报表截图或一段文本表格,需要先抽取成结构化数据再做可视化。
- 团队已有多套数据库(MySQL、PostgreSQL、MSSQL、Databricks、S3),希望在同一工作区里探索并自动处理表间连接。
- 需要把探索过程沉淀成可分享报告的汇报者,希望保留每一步的图表与推理历史。
- 希望在本地或内网运行、用自有模型密钥(OpenAI、Azure、Anthropic 或本地 Ollama)控制成本的团队。
- 数据量较大、需要 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?
查看各维度的扣分理由
沙箱文档显示有进程隔离、审计钩子禁止 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。
文档与代码结构(sandbox session、agent 诊断、语言注入)内部一致,测试文件与文档描述对应,给 2。依赖可用性有 uv/pip/docker/桌面多路径与 litellm 平台兼容性注释,给 2。失败信息方面文档提到 save/restore 失败仅打 warning 并降级,缺少面向用户的错误分类与提示规范,给 1。
README 明确面向数据分析师、开发者、桌面用户,场景覆盖文件/数据库/平台,给 2。能力边界有 sandbox 限制、类型覆盖限制、Gamma 角色权限限制等说明,给 2。触发精度方面 Agent 由自然语言驱动,未见对工具调用边界的精确约束说明,给 1。环境适配有 Python>=3.11、Node 20、Windows/macOS 构建与 HTTPS 要求,给 2。
信息架构有 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。
输出可用性有图表、报告、可编辑结果与诊断查看器,给 2。边际价值在于统一数据连接与分支式分析工作流,但同类 BI/AI 分析工具众多,差异化证据有限,给 2。成本效益方面依赖极重(大量云 SDK、LLM 调用、桌面打包),对轻量用户成本偏高,给 1。
claim_traceability:README 声明多与文档/测试对应,但缺少逐条声明的证据链接,给 1。cross_source_corroboration:README、dev-guides、测试文件相互印证部分能力,但覆盖不完整,给 1。fact_inference_separation:文档混有设计意图与实现描述,未明确区分已验证与推断,给 1。
- SSO 配置示例包含 verify=False 与关闭 Talisman,生产部署前必须修正。
- 换票端点在未设置共享密钥时默认放行,存在未授权换票风险。
- 桌面构建未签名/未公证,README 要求用户绕过系统警告,需谨慎。
- package.json 与 pyproject 版本号不一致,发布与依赖解析可能混淆。
- 依赖面极广(大量数据库与云 SDK),供应链风险与安装成本较高。