外观
Agent 的 WebSocket 长连接管理如何设计?
标准回答
把长连接与任务生命周期分开:连接用于事件传输,任务状态保存到可恢复存储。连接要鉴权、心跳、空闲超时和背压;事件带任务 ID 与递增序号,重连按游标补发并去重。断网不自动等于取消任务,取消应发送明确请求并获得状态确认。
通俗例子
用户手机断网后重连,凭任务 ID 继续查看报告进度;不能一断连接就丢失任务,也不能重连就重复新建同一任务。
深入解释
**连接身份与任务身份不同:**WebSocket 连接会断开重建,但业务任务可能仍在执行。用任务 ID 和消息序号关联进度,不能仅以某一条连接对象作为任务存在的依据。
**重连后怎么恢复:**重新认证、恢复订阅,再根据协议查询任务状态或补收缺失消息。控制重试与去重,避免客户端重连就启动第二个相同任务。
内容来源
- Android · AI Agent 知识手册 · 原条目
ai-Q169