<!-- 来源: https://hostanagent.com/docs/integration/recovery/ | 协议: 1.0 | 更新: 2026-09-30 -->

# 断线、重试与身份变化

分清观察连接和服务端执行。SSE 断开、浏览器关闭或 Widget 卸载只会失去画面连接；原 Run 可能仍在运行、等待工具或已经结束。先查询原 Run 快照，再从 `resume_cursor` 补读后续事件，按 sequence 去重。

| 场景 | 安全做法 |
|---|---|
| 新 Run 创建请求响应丢失 | 保存的原正文、参数与幂等键原样重试，或查询原业务关联；不要换键创建第二个付费 Run |
| 已取得 Run ID 后快照失败 | 重查同一个 Run ID，不再 POST 创建 |
| SSE 出现缺口或重连 | 用快照替换客户端投影，再从快照 cursor 补读，不让历史事件重新触发 handler |
| 追加输入响应未知 | 用原内容和原幂等键重试 `/inputs`，确认它是否已进入原 Run |
| 业务工具已执行但回执失联 | 查产品持久业务记录，重投已保存的同一 receipt；结果未知时保持待核对 |
| 页面身份切换或 Key 撤销 | 结束旧客户端/runner，重新验证身份与权限；旧 Subject 的页面不能继续发送 |

明确停止使用 `cancel()` 或运行取消 API，并以服务端状态为准。这不是产品业务任务取消成功的证明。`detach()` 只是停止新的工具领取；业务是否取消、补偿或完成，必须由产品自己的接口与回执说明。

旧 Session 固定版本；恢复它时不自动使用 Agent 最新发布版本。遇到 401/403 先处理登录、scope 或撤销，不能把它当网络错误无限重试。未知供应商费用及未知工具副作用不能靠重复请求“补一次”。[错误和限制](/docs/reference/errors-limits/)、[运行诊断](/docs/console/runs-diagnostics/)。
