Flint:AI 时代的图表规范语言(开源)
微软推出的可视化语言,用紧凑、人工可编辑的规范让 AI agent 自动生成专业图表。
微软推出的可视化语言,用紧凑、人工可编辑的规范让 AI agent 自动生成专业图表。
精美图表,简单规格即可生成。Flint 让 AI Agent 能够根据简单、可由人直接编辑的规格,稳定生成表现力丰富、视觉效果精美的图表。
语义类型指导设计。Flint 利用语义数据类型来表达数据的含义,帮助编译器选择合适的比例尺、基线、格式和配色方案。
布局随数据自适应。Flint 会自动管理尺寸、间距、标签和布局,因此即使数据的基数和密度发生变化,图表仍能保持清晰易读,无需用户显式配置。
一份规格可适配多个后端。同一份 Flint 规格可以编译为 Vega-Lite、Apache ECharts 或 Chart.js,无需从头重写图表。
为 Agent 工作流而生。这个开源项目包含 flint-chart 库和 flint-chart-mcp 服务器,让 Agent 可以直接在聊天或编码环境中创建、验证和渲染图表。
创建一张优秀的图表,需要做出许多设计决策:日期应该如何解析、比例尺是否应该从零开始、数值应该采用什么格式、标签需要预留多少空间,以及使用哪些颜色能让数据更易于阅读。Vega-Lite、Apache ECharts 和 Chart.js 等现代可视化库开放了这些控制能力,但也带来了一种取舍:依赖系统默认值的简短规格往往只能生成乏善可陈的图表;而精美的可视化则需要详细的规格,其中包含经过刻意选择的参数,通常冗长、脆弱且容易出错。
随着大型语言模型(LLM)和 AI Agent 承担越来越多的可视化工作,这种取舍变得更加尖锐。当 Agent 必须处理复杂、底层的规格细节时,尤其容易出错;由此产生的脆弱代码,也很难由人来检查、修复或复用。理想情况下,我们需要一种介于两者之间的方案:规格足够紧凑,Agent 能够可靠生成;人可以直接编辑;系统还能将其编译为设计完善的图表。
为了解决这一挑战,我们推出了 Flint——一种面向 AI 驱动图表创作的可视化中间语言。Flint 帮助 AI Agent 根据简单、可由人直接编辑的图表规格,创建富有表现力且美观的图表。用户无需为比例尺、坐标轴、间距和布局提供冗长的底层参数,Flint 编译器会根据数据、语义类型、图表类型和编码方式,推导出经过优化的图表设置。同一份 Flint 规格还可以通过多个后端进行渲染,包括 Vega-Lite、Apache ECharts 和 Chart.js。
图 2 展示了 Flint 编译器如何将一份紧凑的图表规格转换为精细完善的热力图。
按照传统方式,为了生成一张高质量的热力图,我们需要通过底层图表属性明确告诉系统:如何处理 period 字段、如何正确标注 MonthYear 值、如何设置单个热力图单元格的尺寸,以及如何选择能够恰当表示 newUsers 正值和负值的色阶。如果没有这些配置,可视化库只能根据字段名称和原始值进行猜测,最终生成的图表虽然在技术上有效,却可能造成误导。这些细节固然重要,但将它们硬编码下来既困难又容易出错,还会使规格变得脆弱,难以被用户理解或调整。
在 Flint 中,这些底层细节会得到系统化管理,由编译器根据高层的数据规格和图表规格进行推断。其中,数据规格负责记录语义类型和可选的元数据;图表规格则定义图表类型,并将字段映射到 x、y、color、size 或 facet 等视觉通道。编译器根据这些信息推导解析规则、比例尺、坐标轴、聚合方式、格式、配色方案和布局,随后生成后端原生规格,用于渲染最终精美的可视化结果。这样一来,用户便无需显式设置那些脆弱且容易出错的底层细节。
此外,由于这种中间表示独立于任何单一渲染库,Flint 可以适配 API 和编程模型差异很大的多个后端。用户可以保留同一份紧凑的图表意图,将其编译为 Vega-Lite、ECharts 或 Chart.js,并选择能力最符合当前可视化需求的后端。
Flint 非常适合基于 LLM 的图表生成,因为对模型来说,推断语义类型通常比推断完整的底层可视化参数更容易。字段名称、数值模式和常见的数据知识,可以帮助 Agent 识别某一列表示的是日期、价格、百分比、国家、排名还是相关性。一旦明确表达出这些含义,编译器便可以处理大量设计决策,而这些决策原本会以脆弱且绑定特定库的代码形式出现。
在研究实验中,我们将 Flint 与 DirectVL 进行了比较。DirectVL 是一项基线方案,它要求模型在 LLM 自我评估流水线中直接生成完整、也更复杂的 Vega-Lite 规格。测试使用了 Tidy Tuesdays 的数据。在接受测试的三个模型上,Flint 获得的 LLM 评审综合分数均高于 DirectVL:使用 GPT-5.1 时为 16.27 对 15.91;使用 GPT-5-mini 时为 16.16 对 15.60;使用 GPT-4.1 时为 15.91 对 15.34。事实上,Flint 的能力和可靠性已经足够出色,如今它被用于驱动 Data Formulator——Microsoft Research 推出的一项 AI 辅助数据分析与可视化项目。
为了让你的 Agent 能够轻松使用 Flint,我们还发布了 flint-chart-mcp。这是一个 Model Context Protocol(MCP)服务器,允许 Agent 在聊天或编码环境中创建、验证和渲染图表。MCP 调用既可以内嵌数据,也可以读取已配置的本地文件;服务器还可以打开交互式图表视图,让用户检查并进一步调整结果。
Flint 已经开源,可以立即使用:
项目网站:https://microsoft.github.io/flint-chart/
GitHub:https://github.com/microsoft/flint-chart
Flint MCP 服务器说明:https://microsoft.github.io/flint-chart/#/mcp
Flint 指向了一个面向可视化的共享语义层:人和 AI Agent 可以使用紧凑的图表意图开展工作,而编译器负责谨慎处理底层细节。我们诚邀社区探索这个项目,并在它的基础上继续构建。