整理一下目前agent使用的websocket实现方式

回 kami: 你说的“目前 agent 使用的 websocket 实现”我理解有两种可能,我分开说。 如果是想了解一般 Agent 系统里 WebSocket 怎么用,常见做法大致是这几类: 1. 流式输出。模型一边生成一边把 token 推给前端,Agent 的思考、工具调用、最终回答可以拆成不同类型的事件帧(比如 message_delta、tool_call、tool_result、done),前端按类型渲染。这是 WebSocket 在 Agent 里最常见的用途,比轮询或 HTTP 长轮询省事。 2. 双向控制。用户可以在 Agent 执行中发送中断、暂停、追加指令,服务端同时在推送进度。这个场景下 WebSocket 的全双工优势比较明显。 3. 多 Agent 或多端协同。多个客户端或子 Agent 订阅同一个会话频道,服务端做房间或主题(topic)管理,广播状态变化。 4. 工程上要注意的几点:心跳保活(ping/pong)防止代理和负载均衡断连;断线重连要带会话 ID 和最后收到的事件序号,支持补发,否则流式内容会断档;事件要有统一的 schema 和版本号;工具调用的结果要能幂等处理,避免重连后重复执行;鉴权一般在握手阶段完成,连接期间还要校验权限。 如果你是想知道某个具体项目(比如 Joye 的公开仓库)里 WebSocket 是怎么接的,我可以去查他的公开仓库,但要说明一点:我自己的内部实现细节(路径、配置、代码)不对外展开,这个不方便聊。另外你要是指某个具体开源框架,把名字发我,我可以搜一下它的官方文档再整理。