Skip to content

Agent 为什么普遍用 SSE?远不止"实现简单"这一条

更新: 7/19/2026 字数: 0 字 时长: 0 分钟

"实现简单"只是 SSE 众多优点中最表层的一个,绝非核心原因。真正的答案是:SSE 的技术特性与大模型 Agent 的通信需求高度契合——即"服务端持续、单向、逐字地把生成结果推给客户端"这一场景。 SSE 恰好是"能力刚好够用、成本又最低"的那个最优解,是一次经过权衡的工程选型,而非偷懒。

SSE 流式推送

真实原因

1. 通信模型天然匹配:Agent 就是"单向流式输出"

大模型生成回复是逐 token(词元)自回归产生的,天然是一个"服务端不断产出、客户端只管接收"的过程。

  • SSE 的定位正是 Server-Sent Events(服务器发送事件)——服务端到客户端的单向持续推送
  • Agent 场景中,用户发一次请求后,后续所有内容(逐字回复、工具调用状态、思考过程)都是服务端主动推,客户端不需要在同一连接里反复向服务端说话
  • 这与 SSE"一次连接、持续下发"的模型严丝合缝。用双向的 WebSocket 反而是能力过剩——一半的双向能力被浪费。

2. 带来"打字机"式实时体验,大幅降低感知延迟

  • 大模型完整生成一段长回复可能需要数秒到数十秒。若等全部生成完再一次性返回,用户会面对长时间的空白等待。
  • SSE 让服务端每生成一小块就立刻推送,前端实现"逐字蹦出"的打字机效果。
  • 这把**首字延迟(TTFB / 首 token 时间)**从"等待完整响应"压缩到"等待第一个词",体感响应速度提升巨大——这是产品体验层面 SSE 不可替代的价值。

3. 基于标准 HTTP,基础设施零负担

这是 SSE 相比 WebSocket 最关键的工程优势:

  • SSE 本质就是一个 Content-Type: text/event-stream 的普通 HTTP 长连接,走的还是标准 HTTP/HTTPS 协议(80/443 端口)。
  • 因此它天然兼容现有的一切 Web 基础设施:反向代理(Nginx)、CDN、负载均衡、API 网关、鉴权体系(Cookie/Token)、防火墙,全部无需改造即可使用。
  • 而 WebSocket 使用独立的 ws:///wss:// 协议,需要 HTTP 协议升级(Upgrade)握手,很多代理、网关、企业防火墙对它支持不佳,常需额外配置甚至专门改造,运维和兼容成本明显更高

4. 内建断线重连与事件机制,健壮性好

  • SSE 协议原生支持自动重连:连接意外断开后,浏览器的 EventSource 会自动尝试重连。
  • 配合 Last-Event-ID 机制,重连时可告知服务端"我上次收到哪条了",支持断点续传,避免内容丢失或重复。
  • 还内建了事件 idevent(事件类型)、retry(重连间隔)等字段,这些都是协议自带的,无需自己造轮子——这也正是它"看起来简单"的深层原因:简单是因为标准已经帮你做好了。

5. 资源开销小,适合大规模并发

  • SSE 是轻量的文本单向流,协议开销远小于维护大量 WebSocket 双向全双工连接。
  • 对需要同时服务海量用户的 Agent 服务而言,SSE 在服务端资源占用和横向扩展上更经济。

三种通信方案对比

为什么不是轮询或 WebSocket

维度轮询(Polling)WebSocketSSE
通信方向客户端反复问双向全双工服务端→客户端单向
底层协议HTTP独立 ws/wss 协议标准 HTTP
实时性差(有轮询间隔)
基础设施兼容较差(需改造)好(零改造)
断线重连需自己实现需自己实现协议原生支持
与 Agent 场景契合度低(浪费请求)过剩(能力冗余)恰好匹配
资源开销高(频繁请求)
  • 轮询:客户端隔一段时间问一次"好了吗",既有延迟又浪费大量无效请求,体验和效率都差。
  • WebSocket:双向全双工能力强,但对 Agent 的"单向输出"场景属能力过剩,且协议特殊、基础设施兼容差、运维复杂。适合真正需要双向高频交互的场景(如在线游戏、协同编辑、实时音视频信令)。
  • SSE:能力刚好覆盖"服务端持续单向推流",又完全复用 HTTP 生态,是契合度、成本、健壮性三者平衡的最优选择

总结

Agent 选用 SSE,表面看是"简单",本质是"契合":它的单向流式模型精准匹配大模型逐字生成的特性,又借标准 HTTP 白嫖了整个成熟的 Web 基础设施与断线重连能力,以最低的工程与运维成本,换来了最佳的实时体验。"实现简单"只是这种高度契合所带来的结果,而非选择它的原因

补充一点务实认知:SSE 也有边界——它默认只支持文本(二进制需编码)、单连接方向固定。当 Agent 需要全双工实时交互(如实时语音对话、边说边打断)时,业界确实会转向 WebSocket 或 WebRTC。选型永远服务于场景,SSE 是当前主流"文本流式对话"Agent 的最优解,而非唯一解。