AI Agent实时通信:WebSocket还是SSE?别再纠结了

📘 AI教程 💬 🔥 Trending

🩺 摘要

Agent要实时推送给用户,选WebSocket还是SSE?很多人花了一天做选择,最后发现用错了。

📝 详情

先是选了WebSocket——结果发现Agent只是单向推送,不需要双向通信。换了SSE,代码少了一半。

两者的本质区别

维度 WebSocket SSE (Server-Sent Events)
方向 双向 服务器→客户端
协议 WS/WSS HTTP
自动重连 需自己实现 原生支持
浏览器支持 全(除IE)
适合场景 聊天、游戏 通知、流式输出

怎么选

只需要服务器推送给客户端 → SSE Agent的流式输出、状态更新、通知——都是单向的,SSE够用。

需要双向实时通信 → WebSocket 用户要打断Agent、Agent要同时收用户输入——这时才需要WebSocket。

代码对比

SSE (FastAPI)

from sse_starlette.sse import EventSourceResponse
@app.get("/stream")
async def stream():
    async def gen():
        for chunk in agent.stream(query):
            yield {"data": chunk}
    return EventSourceResponse(gen())

总结

80%的Agent实时场景用SSE就够了。 除非你需要双向通信(聊天室、实时协作),否则别碰WebSocket——更复杂、资源消耗更大。