现在的AI对话产品,大多还停留在"文字墙"阶段。模型已经能写代码、画图表、调工具,但用户看到的,仍然是一行行往外蹦的Markdown文本——想看到表格、图表、可点击的卡片,只能靠前端一遍遍补组件。
TokUI 这个开源项目,就是想把这个"补丁式"的现状,从底层改掉。
它由向量空间JBoltAI 团队开发并正式开源上线,定位是"面向AI的零依赖流式UI描述与渲染引擎",核心思路是:From Token to UI——让大模型输出的每个Token,都能直接变成可交互的界面元素。
一、AI对话为什么需要"富UI"?
大多数AI对话产品,本质上还是"文本输出+前端强拼凑":
- 模型返回一段 Markdown,前端用现成渲染器展示;
- 想在对话里插入图表、表格、卡片,就单独写组件、接数据;
- 工具调用、推理过程,往往直接扔一串 JSON 到聊天流里,用户看不懂,也点不了。
这种模式有几个明显痛点:
- 体验割裂:AI的能力在进化,但展示形态还停留在"纯文本时代",用户只能看,不能操作。
- 开发成本高:每个新的展示形态,都要后端定义结构、前端实现组件,重复造轮子。
- 结构化输出与流式渲染错配:JSON/HTML 必须等完整数据到达才能渲染,而 AI 是逐 Token 输出,两者节奏对不上。
向量空间JBoltAI 在做企业级 AI 平台的过程中,也很早就撞到这堵墙:模型能力再强,如果前端只是一堵"文字墙",交互体验就永远是残缺的。TokUI 就是为了解决这个问题而生。
二、TokUI 是什么?不只是"UI组件库"
TokUI 不是简单的前端组件库,而是一整套"AI对话富UI"的解决方案:
- 零依赖流式UI引擎:前后端全部基于原生 API 实现,不依赖第三方 npm 包,体积小、易嵌入。
- 极简 DSL(Domain Specific Language):专门为 AI 流式输出设计的一套 UI 描述语言,比 HTML 更省 Token,天然支持流式渲染。
- 字符级状态机解析器:首个 Token 到达即可开始渲染 DOM,后续 Token 逐步填充内容,实现真正的"边生成边显示"。
官方给它的定位是:全球首个面向 AI 的零依赖流式 UI 描述与渲染引擎。
简单理解:以前 AI 只会"说人话";有了 TokUI,AI 还可以用 DSL"画界面"。
三、TokUI 如何让AI对话"长出界面"?
1. 流式渲染:首Token即可渲染,不用等整段生成完
TokUI 的 DSL 是线性字符串,天然适配 SSE、WebSocket 等流式传输方式。前端基于状态机做字符级增量解析:
- 第一个 Token 到达,就开始创建对应的 DOM 节点;
- 后续 Token 逐步填充属性、内容、子组件;
- 不需要等完整结构生成完毕,就能看到界面"一点点长出来"。
这意味着:
- 表格可以一行一行出现;
- 图表可以一根柱子一根柱子"冒"出来;
- 卡片内容可以一段一段填充进去。
体验上,和 AI 逐字输出文字完全一致——只不过现在逐字长出来的不是文字,而是可交互的 UI。
2. 极简 DSL:比 HTML、JSON 更省 Token
在"按 Token 计费"的时代,输出成本直接影响项目预算。TokUI 的 DSL 从设计之初就考虑 Token 经济:
- 属性用最短标识符;
- 布尔属性只写键不写值;
- 表格一行就是一行数据,一行 DSL 就能表达一行完整记录。
对比一下:
- HTML:标签冗长,嵌套多,Token 消耗大;
- JSON Schema:大量引号、嵌套,也偏冗余;
- TokUI DSL:线性、紧凑,专为 AI 流式输出优化。
同样渲染一张带斑马纹的表格加折线图,TokUI 的 DSL 往往比 HTML、JSON 少很多 Token,这对高频调用场景来说是实打实的成本优化。
3. 零依赖:轻量嵌入,不污染你的项目
TokUI 的前后端都基于原生 API 实现:
- 前端不引入任何第三方 npm 依赖;
- 图表采用纯 SVG 自绘制;
- 代码高亮、语法解析等核心功能全部自研。
这对现有项目非常友好:
- 不需要重构技术栈;
- 不会引入版本冲突;
- 可以通过 CDN 引入,也可以直接拷贝源码到项目中。
向量空间JBoltAI 本身就大量服务 Java 技术栈的企业客户,TokUI 的零依赖设计,让它在嵌入各类业务系统时几乎没有"排异反应"。
四、内置组件:覆盖 AI 对话的典型场景
TokUI 并不是"只会画简单卡片",而是自带一套完整的 AI 对话组件体系:
- 内置150+ 组件,分为七大类:基础展示、表单、表格、布局、图表、AI 对话专用模块等;
- 其中30+ 为 AI 对话专属组件:对话气泡、推理过程折叠、工具调用卡片、Agent 状态展示、代码差异对比、Artifact 预览等。
这些组件基本覆盖了当前主流 AI 产品的交互形态:
- 智能问答 / 助手:问答气泡、引用来源卡片、建议操作按钮;
- Agent / 工具调用:工具调用卡片、执行状态展示、参数表单;
- 智能 BI / 分析:动态图表、指标卡、可交互表格;
- 表单收集 / 业务操作:动态生成的录入表单、查询表单。
而且,前后端共享同一套 DSL 语义:后端用 Builder 链式生成 DSL,前端 Parser 解析渲染,三端(模型、后端、前端)语义对齐,避免"各说各话"。
五、安全与稳定:面向生产环境的设计
AI 动态生成 UI,最大的隐患之一就是XSS 注入。TokUI 在架构层面做了几层防护:
- DSL 文本中不携带任何可执行脚本;
- 事件处理器只支持前端预注册的命名函数,DSL 中只能引用名称;
- DOM 创建时自动过滤危险属性(如 onclick 等);
- 仅在少数可信模块受控使用 innerHTML,其余全部使用 textContent 等安全方式渲染。
同时,TokUI 还内置了容错与降级机制:
- 未识别组件或单个组件渲染异常,不会导致整页崩溃;
- 对超长输入设置缓冲和嵌套深度上限,避免前端资源被耗尽;
- 支持主题切换、深浅模式适配,方便与现有系统视觉风格统一。
这些设计,让向量空间JBoltAI 在企业级私有化部署、政企场景中,能够放心地把 TokUI 作为底层 UI 基础设施。
六、TokUI 在向量空间JBoltAI 生态中的角色
TokUI 并不是一个"单打独斗"的项目,而是向量空间JBoltAI 整体生态中的重要前端基建:
- 在 RAG / AgentRAG 场景中,TokUI 用于实时展示推理步骤、工具调用结果、知识来源引用;
- 在智能问数 / 自动报表场景中,TokUI 用于流式生成指标卡、图表、数据表格;
- 在业务流程自动化场景中,TokUI 用于动态生成表单、操作卡片,实现"对话即操作"。
从架构视角看,向量空间JBoltAI 提供的是一整套AIGS(AI Generated Service)开发范式:
从模型接入、推理编排,到前端 UI 渲染,形成完整闭环。TokUI 则是这闭环中的"最后一公里"——把模型的能力,变成用户真正看得见、摸得着的界面。
七、适合谁用?怎么接入?
TokUI 已经采用MIT 协议开源,对个人和企业都无使用门槛。
大致有几类典型使用场景:
- 正在开发 AI 对话产品的团队需要在聊天流中嵌入图表、表格、表单等富 UI;不想从零实现一套 UI 渲染框架。
- 已经在使用向量空间JBoltAI 的企业用户TokUI 与向量空间JBoltAI 的后端 SDK 深度打通,可以直接用 DSL 描述界面,由前端统一渲染;有利于统一 UI 协议,降低前后端协作成本。
- 前端开发者 / 技术决策者需要评估一套新的 AI UI 方案;关注 Token 成本、安全、可维护性。
接入方式也比较简单:
- 前端引入 TokUI 的渲染器,挂载到指定容器;
- 后端使用 TokUI Builder(目前 Node.js 已实现,其他语言 SDK 规划中)生成 DSL;
- 通过 SSE 或 WebSocket 推送 DSL 流,前端解析并渲染。
八、总结:从"文字对话"到"流式富UI对话"
TokUI 的开源,对 AI 对话产品来说,是一次交互方式的升级:
- AI 不再只是"输出文字",而是可以"输出界面";
- 用户不再只是"看文字",而是可以在对话中直接操作、选择、确认;
- 开发者不再需要为每种 UI 形态单独写组件,而是通过统一的 DSL 描述界面。
从更宏观的视角看,向量空间JBoltAI 通过 TokUI,把"From Token to UI"这条路真正走通:
模型的能力、后端的编排、前端的展示,第一次在"流式富 UI"这条主线上对齐。
如果你在做 AI 对话、智能 Agent、自动报表等应用,TokUI 提供了一个值得认真评估的新选项。项目已正式上线,开源协议 MIT,零依赖,可直接克隆集成。更多细节和在线演示,可以在向量空间JBoltAI 的 TokUI 官网中查看。