Sunday面试指南

A2UI 是什么?Agent 生成的界面为什么不直接使用 HTML?

下面是一段教学用的模拟面试。

🧑‍💻 面试官:助手找到三份资料,希望用户选择一份继续分析。模型直接生成 HTML,页面显示出来,行吗?

🙋‍♂️ 我:能做,但要处理脚本、样式和组件兼容。更可控的方式是让模型描述界面,由应用负责渲染。

🧑‍💻 面试官:A2UI 只是把 HTML 换成 JSON 吗?

🙋‍♂️ 我:还要有约定的组件、结构和数据关系,宿主只渲染自己支持的能力。

🧑‍💻 面试官:如果描述里有一个“删除资料”的按钮,用户点了以后就能直接删除吗?

模型负责描述希望用户看见什么,应用负责决定怎样显示、哪些动作允许执行。

面试速答(60 秒版)

A2UI 是一套让 Agent 描述用户界面的协议。模型可以表达需要哪些组件、怎样组织和绑定数据,再由宿主应用使用受控组件渲染。

例如助手找到三份资料,可以返回一个选择界面的描述。网页端渲染成列表,其他平台也可以用自己的原生组件呈现相同意图,不必执行模型随意生成的 JavaScript。

这种方式有助于限制界面能力,但不等于自动安全。应用需要校验描述、支持的组件、数据和动作。用户点击按钮后,后端仍要检查身份和操作权限。

A2UI 主要解决界面怎样表达;AG-UI 主要解决 Agent 与界面怎样交换事件。两者可以配合,不能只因为名字相近就当成同一协议。

A2UI:描述界面,不任意执行:描述交给模型,执行交给宿主

知识点详解:让模型描述界面,为什么更容易管住?

先把三个参与者分开

假设咱们的资料助手需要用户挑选一份报告。

Agent 可以描述“显示三项,每项有标题和选择动作”。客户端收到以后,检查组件与数据,再让渲染器生成真正的界面。

这里分别有三个角色:Agent 提供描述,宿主检查能力边界,渲染器把描述变成平台上的控件。

模型没有必要自己决定每个 DOM 节点、CSS 规则和事件监听器。宿主也不需要把一段陌生脚本直接放进页面执行。

A2UI 官方说明围绕组件、数据和宿主渲染组织这套方式。具体报文在不同版本之间有变化,理解机制时应把版本和运行器区分清楚。

组件目录为什么重要?

应用支持什么控件,不能完全由模型临时决定。

假设当前客户端只支持文本、列表和按钮。模型提出一个未支持的“任意脚本执行组件”,宿主应该拒绝、降级或报告不支持,不能因为描述格式正确就执行它。

组件目录还可以规定参数。例如按钮需要一个合法动作名称,图片需要允许的来源。应用实际注册的组件代码由开发者维护,而不是每次由模型重新生成。

如果团队自己写的组件偷偷支持任意 HTML 或不受限链接,这套边界仍然会被打开。声明式协议减少了一部分执行面,组件实现的质量依旧重要。

结构和数据为什么值得分开?

资料选择界面的结构可能没有变化:列表里有三项,每项一个标题和一个选择按钮。

后来工具发现第二份资料的版本号变化,只更新对应数据即可。应用不必为了一个字段,重新接受一整段 HTML 和行为代码。

但这也带来了新的校验问题。结构引用的数据是否存在,字段类型是否正确,更新属于哪一个界面,都需要对应。

如果一个数据更新被应用到另一轮任务的界面,页面可能显示错报告。界面身份和数据绑定不是装饰字段,它们用来避免这种误配。

界面结构和数据各放哪里:声明结构,绑定数据

按钮描述和业务操作之间,还隔着后端检查

用户点击“选择报告”,应用可以把选中的对象 ID 交给 Agent 或服务端继续处理。

如果按钮表示“删除报告”,情况就不同了。需要重新检查对象归属、当前权限、操作范围以及是否要求确认。

描述里写了“允许删除”,不能直接成为授权依据。模型负责提出界面,用户动作表达意图,后端负责判断这项操作能否执行。

在当前例子里,把稳定报告 ID 传回去比只传一个标题更可靠。两份同名报告可能不是同一个对象。

模型画了按钮,谁执行动作:按钮描述不是操作授权

A2UI 与 AG-UI 怎样配合?

可以通过交互连接传递界面描述、数据更新和用户动作。但 A2UI 的重点是“界面描述里表达什么”,AG-UI 的重点是“交互事件怎样往来”。

采用 A2UI 也不要求你把现有页面全部改成模型生成。固定的导航、账号页面和危险操作入口,完全可以继续使用应用自己写的界面。

让模型参与哪一块,要看它确实需要动态组织什么,而不是为了增加一个协议,把稳定页面也变成临时输出。

面试官继续追问

JSON 一定比 HTML 安全吗?

不能这么说。安全取决于解析、允许的能力和执行方式。JSON 里也可以描述危险动作或恶意地址,宿主仍要检查。

可以加入自己的组件吗?

可以围绕实际规范和渲染器能力扩展。但自定义组件会扩大宿主提供的能力范围,需要定义参数、事件和版本兼容,并检查实现边界。

所有客户端都能显示同样效果吗?

不能保证完全一致。平台、渲染器和组件支持不同,需要协商或降级。可移植的界面意图,不等于像素和交互体验完全相同。

面试速记卡

  • A2UI:传递声明式界面、数据与相关动作描述。
  • 宿主:选择受控组件,校验并渲染。
  • 数据绑定:更新要对应正确对象与界面。
  • 动作边界:点击表达意图,后端仍负责授权执行。
  • 版本处理:按实际规范和渲染器核对,不混用旧报文。

公司面试真题

这道题暂未收录可核验的公司真题来源。你可以先阅读本文解析,或浏览已收录的公司面试真题。

浏览公司面试真题 →
简历汪永久免费在线制作简历,模板直接套用、导出无水印,永久免费、下载免费,不需要付费解锁任何功能。去写简历