Flint:AI エラのための可視化言語
Microsoft Research は、AI エージェントが複雑な設計判断を必要とせずとも高品質なチャートを作成できる中間言語「Flint」を発表し、可読性と多様なバックエンド対応を実現した。
キーポイント
AI エージェント向けの中間言語の導入
LLM や AI エージェントが生成するチャート仕様が冗長で脆弱になりがちという課題に対し、人間が編集可能な簡潔な仕様から自動最適化を行う Flint 言語を提案した。
セマンティックタイプによる設計の自動化
データの意味型(semantic types)を活用し、スケール、軸の起点、フォーマット、色Scheme などの設計判断をコンパイラーが自動的に最適化する仕組みを採用している。
マルチバックエンド対応とレイアウト適応
単一の仕様が Vega-Lite、Apache ECharts、Chart.js など複数の可視化ライブラリへコンパイル可能であり、データ量の変化に応じて自動的にレイアウトが調整される。
エージェントワークフローへの統合
オープンソースの flint-chart ライブラリと MCP サーバーを提供し、チャットやコーディング環境内で AI エージェントが直接チャートの作成・検証・レンダリングを行えるようにした。
低レベル設定の自動推論と管理
Flint はコンパイラが高レベルデータ仕様からセマンティックタイプや視覚チャネルのマッピングを解析し、日付パース、軸フォーマット、色スケールなどの複雑な低レベル詳細を自動的に推論・生成します。これにより、ユーザーは誤りやすく調整が難しい手動設定を行わずに高品質な可視化を作成できます。
バックエンド非依存の柔軟なコンパイル
中間表現を特定のレンダリングライブラリから分離することで、Flint は同じコンパクトなチャート意図を Vega-Lite、ECharts、Chart.js など異なる API を持つバックエンドへコンパイル可能にし、可視化要件に最適なプラットフォームを選択できます。
LLMによるチャート生成の効率化
Flint はセマンティックタイプ(日付、価格など)を推論させることで、モデルが低レベルなパラメータを直接指定するよりも正確にチャートを生成できるように設計されています。
影響分析・編集コメントを表示
影響分析
この発表は、AI エージェントがデータ可視化タスクを担う際の「ブラックボックス化」や「脆弱なコード生成」という重大な課題に対する実用的な解決策を示しています。単なるライブラリの追加ではなく、人間と AI の協働を前提とした設計思想(中間言語)の確立は、今後はデータ分析分野におけるエージェントワークフローの標準的なパターンとして定着する可能性が高いです。
編集コメント
AI エージェントが生成する可視化コードの品質と保守性を担保するための、実用的な中間言語アプローチとして注目すべき研究です。特に、人間が編集可能な仕様を維持しつつ AI に最適化を任せるという設計思想は、今後の AI ツール開発における重要な指針となるでしょう。

一目でわかるポイント
洗練されたチャートを簡易な仕様から。Flint は、AI エージェントが人間が編集可能な単純な仕様から、表現力豊かで視覚的に洗練されたチャートを確実に生成することを可能にします。
セマンティック型がデザインを導く。Flint はデータの意味を表現するためにセマンティックデータ型(semantic data types)を活用します。これにより、コンパイラは適切なスケール、ベースライン、書式設定、および色 scheme を選択できます。
レイアウトがデータに適応する。Flint はサイズ、間隔、ラベル、およびレイアウトを自動的に管理するため、カードinality や密度が変化しても明示的なユーザー設定なしにチャートを読みやすく保ちます。
一つの仕様で複数のバックエンドに対応可能。単一の Flint 仕様は、Chart を最初から書き直すことなく、Vega-Lite、Apache ECharts、または Chart.js にコンパイルできます。
エージェントワークフローのために設計された。オープンソースプロジェクトには flint-chart ライブラリと flint-chart-mcp サーバーが含まれており、エージェントがチャットやコーディング環境内で直接チャートの作成、検証、レンダリングを行えます。
image図 1. Flint は、Vega-Lite、Echarts、Chart.js などの可視化ライブラリでレンダリング可能な単純な仕様により、多様なコレクションの可視化をサポートします。
良いチャートを作成するには、多くのデザイン上の判断が必要です。日付の解析方法、スケールをゼロから開始すべきかどうか、値の書式設定、ラベルに必要なスペース、データを読みやすくするための色などです。Vega-Lite、Apache ECharts、Chart.js といった現代の可視化ライブラリはこれらの制御機能を公開していますが、トレードオフが存在します。システムデフォルトに依存する短い仕様では退屈なチャートが生成される一方、洗練された可視化には、意図的に選択されたパラメータを詳細に記述した仕様が必要となり、それはしばしば冗長で、脆弱であり、エラーが発生しやすいものになります。
このトレードオフは、大規模言語モデル(LLM)や AI エージェントが可視化作業をより多く担うようになると、さらに顕著になります。エージェントは複雑な低レベルの仕様詳細を管理しなければならない場合、特にエラーを起こしやすく、その結果生じる脆弱なコードは、人間による検査、修復、再利用が困難になることがあります。理想的には、その中間にあるものが必要です。つまり、エージェントが確実に生成でき、人間が直接編集でき、システムが設計された良好なチャートにコンパイルできる、コンパクトな仕様です。
この課題に対処するため、私たちは Flint(新しいタブで開く)を提案します。これは AI 駆動のチャート作成のための可視化中間言語です。Flint は、AI エージェントが単純で人間が編集可能なチャート仕様から、表現力豊かで魅力的なチャートを作成するのを支援します。スケール、軸、間隔、レイアウトに対して冗長な低レベルパラメータを要求するのではなく、Flint コンパイラはデータ、セマンティックタイプ、チャートタイプ、エンコーディングから最適化されたチャート設定を導出します。同じ Flint 仕様は、Vega-Lite、Apache ECharts、Chart.js を含む複数のバックエンドを通じてレンダリング可能です。
image図 2. Flint は、コンパクトで人間が編集可能なチャート仕様を、完全なバックエンドネイティブの仕様およびレンダリングされた可視化に変換します。このヒートマップの例では、Flint 仕様はセマンティックタイプ(period を YearMonth として、newUsers を Profit として)に名前を付け、フィールドをビジュアルチャネルにマッピングしています。コンパイラは、時間解析、軸フォーマット、カラースケール、セルサイズ、凡例設定、およびレイアウトを含む Vega-Lite の詳細を導出します。
Flint の仕組み
図 2 は、Flint コンパイラがコンパクトなチャート仕様を洗練されたヒートマップに変換する方法を示しています。
高品質なヒートマップを生成するには、従来から、期間フィールドの処理方法や MonthYear 値の適切なラベル付け、個々のヒートマップセルのサイズ設定、正負の newUsers 値を適切に表現する色スケールの選択などについて、低レベルのチャートプロパティを通じてシステムに明示的に指示を与える必要がありました。これらの設定を行わない場合、可視化ライブラリはフィールド名や生データから推測せざるを得ず、技術的には有効であっても誤解を招く可能性のあるチャートが作成される恐れがあります。これらは重要ですが、こうした詳細を手動で記述することは困難でエラーが発生しやすく、仕様が脆弱になり、ユーザーにとって理解や適応が難しいものとなってしまいます。
Flint では、これらの低レベルの詳細は体系的に管理され、コンパイラが高レベルのデータおよびチャート仕様から自動的に推論します。ここで、データ仕様はセマンティックタイプとオプションのメタデータを捉え、チャート仕様はチャートの種類を定義し、フィールドを x, y, color(色), size(サイズ)、または facet(分割)といった視覚チャンネルにマッピングします。この情報からコンパイラは、パースルール、スケール、軸、集計、書式設定、カラーリング、レイアウトを導出し、最終的に洗練された可視化を描画するために使用されるバックエンドネイティブな仕様を生成します。これにより、ユーザーは脆弱でエラーが発生しやすい低レベルの詳細を手動で設定する必要から解放されます。
さらに、中間表現が特定のレンダリングライブラリに依存しないため、Flint は API やプログラミングモデルが非常に異なるバックエンドをターゲットとすることができます。ユーザーは、Vega-Lite、ECharts、Chart.js へのコンパイルを選択しながらも、同じコンパクトなチャートの意図を維持し、可視化の能力が最も適しているバックエンドを選ぶことができます。
PODCAST SERIES

AI テストと評価:科学および業界からの教訓
Microsoft が他のドメインから何を学び、AI ガバナンスの柱として評価とテストを推進しているかをご覧ください。
今すぐ聴く
新しいタブで開きます
Flint for AI-assisted visualization
Flint は、LLM ベースのチャート生成に非常に適しています。なぜなら、意味型は、すべての低レベルな可視化パラメータのセットを推測するよりも、モデルにとってしばしば容易だからです。フィールド名、値のパターン、一般的なデータ知識は、エージェントが列が日付、価格、パーセンテージ、国、ランキング、または相関関係を表しているかを認識するのに役立ちます。これらの意味が明示されると、コンパイラは、通常は脆くライブラリ固有のコードとして現れるであろう多くの設計決定を処理することができます。
研究において、Flint と DirectVL を比較しました。DirectVL は、LLM 自己評価パイプライン内でモデルに直接より複雑な Vega-Lite 仕様を生成させるというベースライン手法です。Tidy Tuesdays のテストデータに基づく 3 つのモデルでの検証結果、Flint は GPT-5.1 で 16.27 vs. 15.91、GPT-5-mini で 16.16 vs. 15.60、GPT-4.1 で 15.91 vs. 15.34 と、いずれも LLM 判定スコアで上回りました。実際、Flint は非常に強力かつ信頼性が高いため、現在 Microsoft Research のプロジェクトである AI 支援データ分析・可視化ツール「Data Formulator」の基盤技術として採用されています。
エージェントが Flint に容易にアクセスできるよう、私たちは flint-chart-mcp も公開しました。これは Model Context Protocol (MCP) サーバーであり、チャットまたはコーディング環境内でエージェントがチャートの作成、検証、レンダリングを可能にします。MCP コールではデータをインラインで埋め込むか、設定されたローカルファイルを読み取ることもでき、サーバーは対話型チャートビューを開くことで、ユーザーが結果を検証・改良できるようにしています。
image図 3. お好みの AI クライアントで flint-chart-mcp を設定すると、Flint に支えられたインタラクティブな可視化をエージェントが生成し、データ探索に関する質問に回答できるようになります。
Flint の試行
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 エージェントがコンパクトなチャートの意図を扱いながら、コンパイラが注意深い低レベルの詳細を処理する、可視化のための共有セマンティック層へと向かうものです。私たちはコミュニティに、このプロジェクトを探求し、その上で構築することを呼びかけます。
新しいタブで開く:この記事「Flint: A visualization language for the AI era」は、Microsoft Research で最初に公開されました。
原文を表示

At a glance
Polished charts from simple specs. Flint allows AI agents to reliably generate expressive, visually polished charts from simple, human-editable specifications.
Semantic types guide design. Flint leverages semantic data types to express meanings of data. They help the compiler choose appropriate scales, baselines, formatting, and color schemes.
Layouts adapt to the data. Flint automatically manages sizing, spacing, labels, and layout so charts remain readable as cardinality and density change, without explicit user configurations.
One spec can target multiple backends. A single Flint specification can compile to Vega-Lite, Apache ECharts, or Chart.js without rewriting the chart from scratch.
Built for agent workflows. The open-source project includes the flint-chart library and the flint-chart-mcp server, so agents can create, validate, and render charts directly in chat or coding environments.
imageFigure 1. Flint supports a diverse collection of visualizations with its simple spec, which can be rendered with visualization libraries like Vega-Lite, Echarts, and Chart.js.
Creating a good chart requires many design decisions: how dates should be parsed, whether a scale should start at zero, how values should be formatted, how much room labels need, and which colors make the data easier to read. Modern visualization libraries such as Vega-Lite, Apache ECharts, and Chart.js expose these controls, but there is a trade-off: Short specifications that rely on system defaults often produce uninspiring charts, while polished visualizations require detailed specifications with purposely chosen parameters that are often verbose, fragile, and error-prone.
This trade-off becomes sharper as large language models (LLMs) and AI agents take on more visualization work. Agents are especially prone to errors when they must manage complex, low-level specification details, and the resulting fragile code can be difficult for people to inspect, repair, or reuse. Ideally, we need something in between: a compact specification that agents can produce reliably, people can edit directly, and a system can compile into a well-designed chart.
To address this challenge, we introduce Flint (opens in new tab), a visualization intermediate language for AI-driven chart creation. Flint helps AI agents create expressive, attractive charts from simple, human-editable chart specs. Instead of requiring verbose low-level parameters for scales, axes, spacing, and layout, the Flint compiler derives optimized chart settings from the data, semantic types, chart type, and encodings. The same Flint spec can render through multiple backends, including Vega-Lite, Apache ECharts, and Chart.js.
imageFigure 2. Flint compiles a compact, human-editable chart specification into a complete backend-native specification and rendered visualization. In this heatmap example, the Flint spec names semantic types (period as YearMonth, newUsers as Profit) and maps fields to visual channels. The compiler derives the Vega-Lite details, including temporal parsing, axis formatting, color scale, cell sizing, legend configuration, and layout.
How Flint works
Figure 2 illustrates the how the Flint compiler turns a compact chart specification into a refined heatmap.
To produce a high-quality heatmap, traditionally, we need to explicitly tell the system with low-level chart properties about how to process the period field, how to properly label MonthYear values, size individual heatmap cells, and choose a color scale that appropriately represents positive and negative newUsers values. Without these configurations, visualization libraries must guess from field names and raw values, which can lead to charts that are technically valid but potentially misleading. While they are important, hard-coding these details can be difficult and error-prone, and they make specification fragile and hard for users to understand or adapt.
In Flint, these low-level details are systematically managed, where the compiler infers them from high-level data and chart specifications. Here, the data specification captures semantic types and optional metadata, and the chart specification defines the chart type and maps fields to visual channels such as x, y, color, size, or facet. From this information, the compiler derives the parsing rules, scales, axes, aggregations, formatting, color schemes, layout, and generates the backend-native specification, which is used to render the final polished visualization. This frees users from explicitly setting fragile and error-prone low-level details.
Furthermore, because the intermediate representation is separate from any single rendering library, Flint can target backends with very different APIs and programming models. Users can keep the same compact chart intent while compiling to Vega-Lite, ECharts, or Chart.js, and choose the backend whose capabilities best fit the visualization.
PODCAST SERIES
image
AI Testing and Evaluation: Learnings from Science and Industry
Discover how Microsoft is learning from other domains to advance evaluation and testing as a pillar of AI governance.
Listen now
Opens in a new tab
Flint for AI-assisted visualization
Flint is well suited to LLM-based chart generation because semantic types are often easier for models to infer than the full set of low-level visualization parameters. Field names, value patterns, and common data knowledge can help an agent recognize whether a column represents a date, price, percentage, country, ranking, or correlation. Once those meanings are explicit, the compiler can handle many design decisions that would otherwise appear as brittle, library-specific code.
In our research study, we compared Flint with DirectVL, a baseline that asks the model to directly generate full (more complex) Vega-Lite specifications in a LLM self-evaluation pipeline. Across three tested models based on testing data from Tidy Tuesdays, Flint received higher overall LLM-judge scores: 16.27 vs. 15.91 with GPT-5.1, 16.16 vs. 15.60 with GPT-5-mini, and 15.91 vs. 15.34 with GPT-4.1. In fact, Flint has been so powerful and reliable that it is now used to power Data Formulator (opens in new tab), a Microsoft Research project for AI-assisted data analysis and visualization.
To make Flint easy for your agents to access, we also release flint-chart-mcp, a Model Context Protocol (MCP) server that allows agents to create, validate, and render charts inside a chat or coding environment. MCP calls can embed data inline or read configured local files, and the server can open an interactive chart view so users can inspect and refine the results.
imageFigure 3. Once you set up the flint-chart-mcp with your favorite AI client, the agent can generate interactive visualizations powered by Flint to answer your data exploration questions.
Try Flint
Flint is open source and ready to use:
Project site: https://microsoft.github.io/flint-chart/ (opens in new tab)
GitHub: https://github.com/microsoft/flint-chart (opens in new tab)
Flint MCP server instruction: https://microsoft.github.io/flint-chart/#/mcp (opens in new tab)
Flint points toward a shared semantic layer for visualization, where people and AI agents can work with compact chart intent while a compiler handles the careful low-level details. We invite the community to explore the project and build on it.
Opens in a new tabThe post Flint: A visualization language for the AI era appeared first on Microsoft Research.
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み