Sunday面试指南

AG-UI 是什么?它和 MCP、A2A 分别解决什么问题?

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

🧑‍💻 面试官:Agent 已经接了 MCP,前端能知道它正在调用哪个工具吗?

🙋‍♂️ 我:不能只靠接入 MCP 判断。后端还要把执行过程传给前端。

🧑‍💻 面试官:直接发送“正在查询”这几个字,不就够了?

🙋‍♂️ 我:简单提示可以这样做。但一旦同时出现多条消息和多个工具,就需要明确这些事件属于哪次运行、哪个调用。

🧑‍💻 面试官:那 AG-UI 是新的模型接口,还是替代 A2A 的协议?

把连接两端先看清:工具服务、其他 Agent、用户界面,分别需要不同的交互约定。

面试速答(60 秒版)

AG-UI 是 Agent 与用户界面之间的一套事件交互协议。它帮助前端理解后端正在生成文字、调用工具、更新状态,还是已经结束运行。

MCP 主要连接 AI 应用与外部工具、资源和提示词能力。A2A 面向 Agent 之间的任务与协作。AG-UI 面向用户界面,因此三者可以在同一个产品里配合使用。

例如用户让助手查资料,后端通过 MCP 调用搜索工具,再通过 AG-UI 事件让前端展示“正在搜索”、工具结果和最终回答。

不过,采用协议并不会自动完成持久化、断线恢复和权限检查。应用仍要把事件对应到实际运行,明确哪些状态可信、哪些动作必须经后端确认。

AG-UI:让界面看懂 Agent:连接对象不同,协议分工不同

知识点详解:前端需要看见的,比最终回答更多

先看一个资料助手的界面

假设用户让助手比较两份产品资料。页面最初显示“任务已接收”,随后显示搜索过程、命中文档,再逐步展示结论。

后端此时正在处理任务,前端则需要回答用户另一个问题:“它现在做到哪里了?”

如果只传最终文本,用户看不到中间过程。如果把所有过程都写进回答正文,工具状态、错误与真正结论又容易混在一起。

AG-UI 的官方概述把这段连接定义为基于事件的交互。前端不必从自然语言里猜“正在搜索”是工具状态还是模型的一句回答,而可以根据明确的事件类别展示。

文本、工具和运行状态为什么要分开?

一段文本可能还在增加,某个工具可能已经失败,整个任务也可能仍在继续。

这三种状态不是同一件事。

前端关心的对象需要明确的关系
一次运行开始、完成或失败属于哪次任务
一条消息哪些增量进入同一条消息
一个工具调用工具名称、参数与结果属于哪次调用
共享状态当前页面展示与后端任务状态怎样对应

具体字段和事件类型要按所用 SDK 核对。上表描述的是需要保留的关系,不是自创一套 AG-UI 报文格式。

尤其在并行工具场景里,返回顺序不能代替调用身份。A 工具先开始、B 工具先完成,前端仍应把结果放回对应的调用卡片。

事件要说明它属于哪个对象:先对应对象,再合并界面

MCP、A2A、AG-UI 放在一张系统图里

用户面对的是页面,页面连接当前 Agent 后端。后端可能调用 MCP Server 提供的工具,也可能把一项任务交给另一个 Agent。

因此,这几条连接的主要职责分别是:

页面与 Agent 交换交互事件;Agent 应用与 MCP 服务交换能力请求;Agent 与其他 Agent 交换任务与协作信息。

采用其中一个,不会自动把其他连接也做好。MCP 工具执行结果可以成为前端要展示的事件,但 MCP Server 并不因此负责整个聊天页面。

也不用为了“协议齐全”全部接入。一个单 Agent 产品可能根本不需要 Agent 间协作;已有前端消息契约稳定时,也需要评估接入 AG-UI 的实际收益。

双向交互,不等于浏览器可以直接执行高风险工具

用户在页面点击确认,前端可以把交互信息交回后端。但这条信息只表达用户刚才做了什么,不能替代业务授权。

假设操作对象在等待期间改变,后端还要核对当前对象、权限和确认范围。不能因为前端发送了“确认”事件,就允许删除另一份文档。

同样,共享状态也要明确谁能修改什么。页面可以选择展示方式,但后台任务是否成功,应来自实际执行结果。

前端点击不等于工具已获授权:交互与授权分开

协议接通以后,还需要验证哪几件事?

用固定事件记录回放前端,确认消息、工具和任务状态能正确对应。

然后让连接中断,检查应用是重新查询任务状态、恢复事件,还是只能告诉用户本次连接失败。可靠恢复需要应用保存相应记录,不能因为采用了事件协议就默认已经拥有。

最后检查错误表达:某个工具失败,不一定意味着整次运行已经失败;运行结束,也不代表每项业务结果都成功。

面试官继续追问

AG-UI 和 SSE 是同一层的东西吗?

不是同一层。AG-UI 约定事件表达与交互语义,SSE 是一种服务端推送方式。实际接入可以用相应传输承载协议事件,不能把传输能力等同于业务语义。

后端用 Python,前端用 TypeScript,可以接吗?

可以围绕协议接入,具体依赖相应 SDK 和框架适配。需要核对事件模型和所用版本,不能假设不同语言的类名完全一致。

用自定义协议会不会更简单?

小型产品可能更简单。引入标准协议的价值,通常在于复用适配、明确事件关系和减少多端接入成本;已有稳定契约时,应比较迁移工作与收益。

面试速记卡

  • AG-UI:连接 Agent 后端与用户界面。
  • MCP:连接应用与外部能力。
  • A2A:处理 Agent 之间的任务协作。
  • 事件身份:运行、消息、工具调用要分别对应。
  • 应用职责:恢复、授权和真实任务状态仍需落实。

公司面试真题

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

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