微软开源Flint 是一种语义驱动的可视化中间语言,它让 AI Agent 和开发者能够通过紧凑且易于人工编辑的规范,创建出表现力强且精致的图表。你无需手动调整冗长的配置细节——比例尺、坐标轴、间距、标签、颜色和布局——只需声明每个字段的含义以及所需的图表类型,Flint 编译器便会推导出其余一切。相同的输入可编译为原生的 Vega-Lite、ECharts 或 Chart.js 规范。当原始数据类型(数字、字符串)与视觉编码完美契合时,Vega-Lite 和 ECharts 等声明式图表语法能运作良好。然而,当语义含义与存储表示发生偏离时,它们就会变得脆弱——例如,像 202001 这样的整数代表的是年月(YearMonth),而不是一个定量量级;将温度或比率等非加性度量进行堆叠,会产生误导性的图表;在顺序色阶上渲染发散字段则会丢失关键信息。专家可以通过编写冗长且高度耦合的规范来解决这些问题,但当需要替换字段、旋转热力图或更改图表类型时,这些规范将难以维护。Flint 将语义类型视为一等对象,并根据语义及数据特征来解析编码、布局和颜色——因此你再也无需手动应对这些问题。
SKILL在这儿里
https://github.com/microsoft/flint-chart/blob/main/agent-skills/flint-chart-author/SKILL.md
架构
AI 智能体在使用语义类型时的优势:
- [x] 生成体积最小化: AI 仅需声明语义意图,无需输出臃肿的底层配置 JSON。
- [x] 推理逻辑自洽: 基于语义约束,防止 AI 做出“对经纬度求和”等逻辑错误的视觉决策。
- [x] 跨引擎一致性: 只需修改一个字符串即可在 Vega-Lite 或 ECharts 间切换,而无需重写渲染代码。
这些语义意图通过简洁的声明进入 Flint 的“加工厂”,随后通过精密的三阶流水线转化为最终的视觉实体。
测试
/`flint-chart-author` 在帮助全球经济走出疫情的低迷之后,中国的增长开始放缓。担忧是多方面的,消费者和企业都表现出疲软迹象。虽然出口依然强劲,但能源和原材料成本上升正在侵蚀工厂和零售商的利润。就业前景恶化、收入减少、粮食危机迫在眉睫以及房地产断供止赎都在给家庭带来压力。应用 AD/AS 框架绘制对应图标说明并解释经济增长是如何放缓的,以及通货膨胀是如何造成的,
/`flint-chart-author` 根据数据绘制合适图表 `20250101-20250331客单分析1.xlsx`
也可以用如下提示词评估
你是一个严格的评测专家。请根据以下标准对 Agent 的回答进行打分(0-10分):
【评分维度】
1. 规范正确性 (3分):
- 是否输出了 `ChartAssemblyInput` 结构(包含 `chart_spec` 和 `semantic_types`)?
- `chartType` 是否精确匹配 SKILL.md 中的注册名称(如 "Scatter Plot" 而非 "scatter")?
- 是否错误地直接输出了 Vega-Lite/ECharts 的底层 JSON?(若直接输出底层 JSON 则此项 0 分)
2. 语义类型与通道映射 (3分):
- `semantic_types` 是否选择了最具体的类型(如 Price, Temperature, Rank, Percentage),而不是全部用 Unknown/Category?
- 通道映射是否符合逻辑(如 Pie Chart 必须用 `size` 和 `color`,Bullet Chart 必须有 `goal`)?
- 是否正确区分了 Bar/Grouped/Stacked Bar Chart 的 `group` 和 `color` 通道用法?
3. 边界与约束遵守 (4分):
- 数据绑定:是否避免了在 MCP 调用中内联大型数据集?是否正确使用 `data: { url: "..." }` 或 `{ values: [] }`?
- 数据陷阱:是否识别并警告了数据中的 "Total/All" 等聚合行(Embedded totals)?
- 转换前置:当用户要求聚合、过滤或组合图时,是否拒绝了在 Flint 内发明 transform,并建议前置数据处理?
- 样式逃生舱:当用户要求参考线/注释时,是否明确说明了需要先 `compile_chart` 到 Vega-Lite,且修改后的 JSON 不能再传回 `render_chart`?
- MCP 路由:是否根据“交互式”或“静态图片”正确选择了 `create_chart_view` 或 `render_chart`?
【扣分项】
- 捏造不存在的 semantic type 或 chart property(直接扣 2 分)。
- 在 `chart_spec` 中发明 `transforms` / `fold` 属性(直接扣 2 分)。
- 将修改后的 Vega-Lite JSON 传回 `render_chart`(直接扣 2 分)。
总结
Flint 的核心价值在于它不仅仅是一个工具库,而是一套面向未来的技术范式:
- Flint 实现了视觉意图与渲染实现的深度解耦。
- Flint 将复杂的绘图启发式细节封装进语义化的推理层。
- Flint 让 AI 能够通过紧凑且具备健壮性的指令生成专业级视觉产物。








浙公网安备 33010602011771号