Flint AI Agent 可视化语言:Microsoft 给 Agent 的图表协议
Microsoft 开源 Flint,面向 AI Agent 的可视化语言与图表能力。本文说明它要解决的问题、适合放进工作流的位置,以及和普通「让模型画图」有何不同。

Hacker News 上 Microsoft 放出的 Flint(可视化语言,面向 AI Agent)讨论度不低:Agent 越来越会写代码、调工具,但「把中间状态画清楚」仍然靠 Markdown 糊弄或让模型吐一堆不可校验的 ASCII。Flint 的切入点是:给 Agent 一套可渲染、可组合的可视化表达,而不是再教一轮「请用 Mermaid」。
Flint 想补的缺口
Agent 工作流里常见三类「看不清」:
- 结构:服务依赖、状态机、权限边界——纯文字难扫
- 对比:多方案并行时,表格不够,又需要一致图例
- 过程:多步工具调用后,人类要快速抓住「现在卡在哪」
传统做法是「请模型生成 Mermaid/图表代码」。问题是格式漂移、幻觉语法、以及和 Agent 工具协议脱节。Flint 把可视化提升为一等公民的语言/协议(官方站点:microsoft.github.io/flint-chart),让 Agent 输出可被宿主稳定渲染的结构,而不是碰运气的散文。
这和「harness 比花活重要」不矛盾:可视化是 harness 的一部分——人审得越快,越敢开自动循环。对照 GitHub Copilot harness 思路 一起看更完整。
和「让模型随便画张图」差在哪
| 方式 | 优点 | 风险 |
|---|---|---|
| 自然语言描述架构 | 零学习成本 | 无法机器校验、难 diff |
| Mermaid / PlantUML 字符串 | 生态熟 | 语法幻觉、版本分裂 |
| 截图 / 设计稿 | 直觉强 | Agent 难编辑、难回归 |
| Flint 类 Agent 可视化语言 | 面向 Agent 产出与宿主渲染 | 生态尚早,需看宿主支持 |
选型时问一句:你的客户端能不能稳定渲染 Agent 吐出的 Flint 结构?不能的话,它只是又一份源码噪音。Flint 的价值在「结构化 + 宿主契约」,不在「比 Mermaid 更炫」。
典型输出长什么样(概念层)
Flint 用声明式结构描述节点、边、分组与样式,由宿主渲染成图(具体语法以官方 spec 为准)。Agent 侧应输出可解析 JSON/YAML 类结构,而不是自由 Markdown。评审时可检查:
- 节点 ID 是否稳定(方便 diff 两次架构变更)
- 边是否有类型(调用 / 数据流 / 失败路径)
- 是否带 legend 或 caption,避免「只有图没有结论」
若团队已有「架构图必须进 repo」规范,可把 Flint 文件放在 docs/diagrams/,与代码同 PR review。
放进 AI 编程工作流的合理位置
适合:
- 架构评审前让 Agent 输出依赖图,人只改节点与边
- 排障时画「请求路径 / 失败点」
- 多 Agent 分工时画责任边界(谁读库、谁改 UI)
- Onboarding:新人先看 Flint 图再读代码
不适合当银弹:
- 像素级 UI 设计(仍要设计系统/CSS)
- 已有严格内部建模语言且禁止第二套 DSL 的团队
- 需要精确时序/泳道的复杂 BPMN(可能仍用专业工具)
落地步骤可以很克制:
- 在文档站打开 Flint 示例,确认渲染宿主
- 在 Agent 规则里写:「涉及架构/流程对比时优先输出 Flint(或团队指定格式)」
- 评审只接受「可渲染产物 + 短说明」,拒绝纯散文架构
- 与 MCP 工具链分工:MCP 取数,Flint 呈现——别让一个工具既抓又画又改生产
若你主要在 Claude Code / Cursor 里干活,先把 MCP 与上下文管干净,再加可视化层;上下文预算见 Claude Code 上下文窗口管理。
一周试点模板(中文团队可直接抄)
| 天 | 动作 |
|---|---|
| 一 | 选一条最常讲的服务链路(如登录 → API → DB) |
| 二 | 让 Agent 读代码 + 输出 Flint 初稿,人改错边 |
| 三 | 把 Flint 文件 commit 到 docs/,PR 只改图 |
| 四 | 开会只用图讲,记录「缺了哪类节点」 |
| 五 | 决定:推广 / 双轨 Mermaid / 放弃 |
国内团队常见阻力:开会仍要导出 PPT。可让宿主渲染 PNG/SVG 再贴幻灯片,或保留 Mermaid 作对外版、Flint 作 Agent 内循环版。
采用前的三个现实问题
- 规范稳定吗? 新语言早期会变,锁版本、记 changelog。
- 谁渲染? IDE、文档站、内部 Portal 缺渲染器就不要全员强推。
- 会不会浪费 token? 结构化输出通常比反复「再画清楚一点」更省;但仍要限制图复杂度(节点上限,例如 >30 节点拆图)。
把它当成「评审加速器」,而不是「又一个必须学会的前端框架」。和 Copilot / Claude 的「plan mode」搭配时,Plan 文字 + Flint 结构图,比单堆长文更易扫。
与 Mermaid 双轨共存
| 场景 | 建议 |
|---|---|
| 存量文档、GitHub 原生预览 | 继续 Mermaid |
| Agent 自动产架构、要机器 diff | 试点 Flint |
| 对外博客、社区 | Mermaid(读者工具多) |
| 内部 Agent 循环 | Flint(若宿主支持) |
不必二选一;关键是别在同一 PR 里混三种 DSL,否则 review 成本反升。
失败模式与规避
| 失败模式 | 表现 | 规避 |
|---|---|---|
| 宿主不支持 | Agent 吐 Flint 但 IDE 只显示 JSON | 先确认渲染器,或导出到文档站预览 |
| 图过大 | token 爆、人眼也扫不完 | 按 bounded context 拆图,单图 ≤20 节点 |
| 与代码漂移 | 图漂亮但接口已改 | Flint 文件跟 API PR 同更,CI 可加「改路由必改图」 |
| 幻觉节点 | Agent 画了不存在的微服务 | 要求引用文件路径或 OpenAPI operationId |
| 重复劳动 | 每次会话重画同一架构 | 图进 repo,Agent 只 diff 变更部分 |
Flint 解决的是表达与渲染契约,不解决「Agent 是否读全代码」——上下文仍要配合 Claude Code 上下文窗口管理 做裁剪。
谁该推动 adoption
- Tech lead:定「架构变更 PR 是否附带 Flint / Mermaid」
- 平台 / DevEx:接渲染器进内部文档站或 IDE 插件
- Agent 规则维护者:在
CLAUDE.md/ Cursor rules 写输出格式 - 一线开发:试点一周,反馈「缺哪种边类型 / 布局」
没有渲染宿主时,先别全团队推广——只会多一种没人看的 JSON artifact。
常见问题
Flint 会取代 Mermaid 吗?
短期内不会。Mermaid 渗透深;Flint 赢在 Agent 友好与宿主协议。团队可双轨:存量 Mermaid,新 Agent 流程试点 Flint。
和 Microsoft 其它 Agent 产品绑定吗?
以开源站点与协议为准;集成深度随宿主变化。评估时看你用的编辑器/Portal 是否声明支持,而不是只看品牌。Azure / Copilot 产品线可能后续加深,但协议本身可先独立试。
中文团队从哪开始试?
挑一个「每次开会都要重画」的服务图,让 Agent 用 Flint 生成一版,人改边,存进仓库当单一事实来源。一周后再决定是否推广。写 Agent 规则时用中文说明「输出 Flint 结构」,与英文 spec 不冲突——结构字段仍建议英文 ID,方便 diff。