SSE 事件
SSE 用于把后端生成的增量结果推给前端。Jarvis 用它传递主聊天流、工具状态、会话更新和部分远程状态。
客户端原则
标题为“客户端原则”的章节- 把 SSE 当作可断开的流,而不是永久连接。
- 支持重连和状态刷新。
- 不要只依赖最后一条事件判断全局状态。
- UI 应能处理重复、延迟或顺序变化的事件。
常见事件类别
标题为“常见事件类别”的章节| 类别 | 含义 |
|---|---|
| 消息增量 | 主聊天模型返回的 token 或块 |
| 工具调用 | 工具开始、输出、完成或失败 |
| 工作会话汇报 | 编码会话通过 MCP 工具上报进展、阻塞或问题 |
| 会话状态 | 运行时状态变化、终端快照、可见性变化 |
| 错误事件 | 模型提供商、网络、认证或后端处理失败 |
UI 处理建议
标题为“UI 处理建议”的章节- 先按事件 ID 或会话 ID 聚合。
- 对工具输出做折叠或摘要,不要默认展开所有日志。
- 对阻塞、待人工、权限请求使用更醒目的状态。
- 断线后重新拉取当前会话状态。
与摘要胶囊的关系
标题为“与摘要胶囊的关系”的章节SSE 是实时信号,摘要胶囊是可刷新快照。实时信号丢失时,胶囊和会话列表应能帮助用户恢复当前状态。
流突然停止
标题为“流突然停止”的章节检查后端是否仍健康、浏览器是否断网、隧道是否重连、模型提供商是否超时。
UI 重复显示事件
标题为“UI 重复显示事件”的章节客户端需要幂等处理。重连后可能重新收到一部分状态更新。
会话状态和聊天事件不一致
标题为“会话状态和聊天事件不一致”的章节打开会话详情页,以会话当前状态和最新汇报为准。