有段时间,我特别迷恋"让模型写前端"。 输入一句 prompt:"帮我生成一个订酒店的页面",然后看它啪啪啪吐出一堆 React 代码。爽是挺爽,但十次有九次崩。要么按钮没闭合,要么逻辑乱七八糟。
后来我看了 OpenAI 的 Apps SDK 文档,才意识到,人家根本不是这么玩的。 他们反着来------模型不生成 UI,UI 由后端渲染好再丢回来。
一开始我觉得这思路太反直觉了,毕竟我们天天都在说"AI 生成一切"。但越想越对劲: ChatGPT 不是在"画界面",它在"调人干活"。
一、模型不是设计师,它只是调度员
想象一下你说:"帮我订深圳的酒店"。 ChatGPT 不是去"生成"一个页面,而是触发一个 Booking 的工具调用,比如:
php
DisplayProduct({product_id: 22, user_location: "深圳", budget: "500-1000"})
这时候,后台一个叫 MCP 服务器 的东西接到请求,它会拿到 HTML 模板(像 Jinja 或 Handlebars),把参数一填,渲染成完整 HTML,再通过 UIResource
对象返回给前端。
前端拿到的是现成的 HTML,直接塞进一个 sandboxed iframe 里渲染,安全、隔离、统一,这也确实解决了模型生成不稳定的问题。
模型只是个"指挥",不是"画家"。
这种反直觉的设计,其实挺妙。因为过去我们一直让模型写代码,结果它写的代码又臭又乱,前端还得解析它的结构,解析完还得修 bug。 现在干脆反过来:模型别写代码,你只要告诉我要干嘛,剩下交给应用自己去渲染。
二、个性化,不靠胡编,而是靠理解和参数
这套系统最打动我的,是它的"千人千面"机制。 不是那种玄乎的"模型自由创作",而是三层实打实的逻辑。
第一层,上下文感知。 ChatGPT 知道你在哪、几点、最近聊过什么。比如晚上 9 点,你在深圳南山,它就不会给你推荐早茶。
第二层,参数化调用 。 比如同一个 SearchRestaurant
工具,传的参数不同,结果就完全不一样: {cuisine: "粤菜", location: "南山区"}
vs {cuisine: "火锅", location: "福田区"}
。
第三层,模板渲染 。 商务用户看到"包间、停车位",家庭用户看到"儿童套餐、游乐区"。 看起来模型"懂你",其实它只是调用得更精准。
说白了,这个"懂",是通过结构化逻辑堆出来的,不是靠模型瞎猜。
三、四种展示模式:像是系统内的小生态
OpenAI 还规定了四种 UI 模式。 别看这东西细,但它决定了整个体验的"味道"。
- Inline card:一张轻量卡片,像微信小程序那种确认弹窗。

- Carousel:一排横滑卡片,适合选商品、选餐厅。

- Fullscreen:全屏模式,适合地图、设计、复杂操作。

- Picture-in-Picture:悬浮窗,适合持续任务,比如学语言时一边聊天一边练口语。

看似细碎,但其实它在做一件大事:让第三方应用在 ChatGPT 里"看起来都像 ChatGPT 自己的功能"。
四、OpenAI 的"控制欲"
你可能会问:开发者自由度在哪? 抱歉,这方面 OpenAI 特别"轴"。
字体不许换,颜色只能用系统调色板,间距、圆角、边距都有标准。 你的 Logo 会被自动加上去,你不能随便插。
一开始我觉得这简直就是专制,后来想想又挺合理。 因为 ChatGPT 想营造的,不是一个"App 大杂烩",而是一种"统一体验的生态"。 Spotify、Figma、Booking 的卡片看起来不一样,但风格是统一的。 这其实是一种"系统气质"的维持。
五、这套机制到底解决了什么
传统的 LLM UI 有两个坑: 一个是"模型写坏代码",另一个是"各家渲染逻辑不兼容"。
MCP 模式两步清理:
- 后端模板渲染,输出结构稳定
- 前端 iframe 展示,兼容统一
你甚至可以理解为------这不是一个 SDK,而是一种"分工哲学"。 模型负责理解人,后端负责画界面。 前端只是舞台。
这就是为什么 Shopify、Zillow、Spotify 都能直接接入 ChatGPT 而不用改太多。
六、说白了,这是在"安静地重写互联网"
有时候我觉得 OpenAI 很狡猾。 他们没造一个"App Store",也没喊"颠覆 Web"。 但如果你仔细看这套机制,你会发现它其实在干件更狠的事------让每个对话都能变成交互界面。
当产品卡片、选项按钮、表单交互都能嵌在对话里,浏览器、App、网页的界限就慢慢模糊了。
那时候,用户不会再说"打开某某网站", 而是说:"帮我订张票"、"帮我换个颜色"、"帮我看看这段代码哪里错"。 然后,一张张卡片、一段段表单在聊天里弹出来,像空气一样自然。
这不是未来,这是现在。 OpenAI 的革命,一点都不喧哗,但非常彻底。
如果说前几年我们在追"低代码", 那现在,OpenAI 在搞的,是"无代码 UI"。
不是模型多聪明,而是架构更干净。 一句话总结:
OpenAI 定义了聊天不仅仅是生成文字,而是生成体验。