AI 还在输出,我能插话吗?背后的两类协议

AI 还在输出,我能插话吗?背后的两类协议 我想做一个 AI(人工智能)应用:它持续输出,我能中途补一句“换个方向”,还得保存任务进度。研究这个需求,先要分清两件事:消息怎么传,新指令什么时候执行。【关键词:#流式输出 #SSE #WebSocket】 01|持续输出,靠什么传? 常见的是两类协议: SSE(服务器发送事件):基于 HTTP,服务端在同一条响应里持续发送增量内容。文字逐段出现,不用等整篇生成完。 WebSocket(双向通信协议):连接建立后,双方都能主动发消息,适合频繁交互和实时音视频。 厂商要按具体接口区分,不能一个名字概括全部: 官方接口 使用的传输方式 OpenAI Responses:HTTP 流式模式 SSE Anthropic Messages:流式模式 SSE OpenAI Responses:WebSocket 模式 WebSocket Google Gemini Live:预览版 WebSocket SSE 负责单向下发,也能搭配另一条 HTTP 请求接收用户指令。能插话,不代表必须用 WebSocket。 02|消息发到了,AI 就会马上改吗? 我更关心的是这一层。假设 AI 正在写方案,我补一句“预算减半”,应用可以有三种处理方式: 打断:请求停止当前生成,再带着新要求继续。已完成的工具操作需要另行处理,取消生成不会自动撤销它们。 中途调整:接收新要求,到合适的执行边界再改方向。 排队:当前任务做完,再处理下一件事。 具体机制各家不同。例如,OpenAI 的中途调整接口使用 response.steer:先确认收到,等当前输出项和已运行的托管工具收尾,再在后继响应中加入新要求。收到指令,不等于指令已经生效。 SSE、WebSocket 解决传输;打断、调整、排队,属于任务调度。协议不会替应用做决定。 03|连接断了,任务还在不在? 还得看应用保存了什么。 我会把用户指令、已公开的输出、任务状态和事件序号存下来。重新连接时,先恢复记录,再补发缺失事件;重复送达的指令要去重。长连接不能充当数据库。 对我这个以文字任务为主的需求,我会先选“HTTP 提交指令 + SSE 接收输出”,把任务调度与保存做好。需要实时音视频或频繁双向交互时,再考虑 WebSocket。 聊天框里多一个输入入口很容易;让一句新要求在正确的时机生效,才是这件事的核心。 作者:猫咪不吃愚 资料核查:2026 年 10 月 29 日。本文为方案分析,未做接口实测;AI 辅助检索与起草,封面由 AI 生成。 ...

2026-10-29 · 1 min · 67 words · FunkyGod