题目
前端断开连接后,如何恢复事件流并避免重新执行整个任务?
答案
创建任务和订阅结果分开设计。创建成功后返回稳定的 `run_id`,后台独立执行;前端只负责订阅这个任务的事件。 服务端保存带递增 `event_id` 的事件,前端记录最后已消费的位置。断线后携带任务 ID 和游标重新订阅;使用原生 EventSource 时可利用 `Last-Event-ID` 机制,其他客户端则显式传递游标。 ![任务独立运行,前端按事件游标恢复](https://cs-wiki.oss-cn-shanghai.aliyuncs.com/question/agent-development/stream-361cdae127135eea.png) 重连只补发缺少的事件,不重新创建任务。创建接口本身也应支持请求幂等,处理提交成功但响应丢失的情况。 事件可能重复到达,前端按 ID 去重。若历史已过期,先获取状态和产物快照,再订阅后续事件。每次查询与订阅都检查用户是否有权访问该任务。