跳转到内容

SSE 事件

SSE 用于把后端生成的增量结果推给前端。Jarvis 用它传递主聊天流、工具状态、工作会话汇报和部分远程状态。会话列表、监督状态和 Workflow 运行视图还会结合 WebSocket 与 REST 刷新当前态。

  • 把 SSE 当作可断开的流,而不是永久连接。
  • 支持重连和状态刷新。
  • 不要只依赖最后一条事件判断全局状态。
  • UI 应能处理重复、延迟或顺序变化的事件。
类别 含义
消息增量 主聊天模型返回的 token 或块
工具调用 工具开始、输出、完成或失败
工作会话汇报 编码会话通过 MCP 工具上报进展、阻塞或问题
会话状态 运行时状态变化、终端快照、可见性变化;部分视图通过 WebSocket 同步
错误事件 模型提供商、网络、认证或后端处理失败

常见 WebSocket 状态消息包括 session_attention_snapshotsession_os_eventcoding_session_changedpipeline_run_changed。它们不是主聊天 SSE 流本身,但 UI 会把它们和 REST 快照合并展示。

  1. 先按事件 ID 或会话 ID 聚合。
  2. 对工具输出做折叠或摘要,不要默认展开所有日志。
  3. 对阻塞、待人工、权限请求使用更醒目的状态。
  4. 断线后重新拉取当前会话状态。

SSE 是实时信号,摘要胶囊是可刷新快照。实时信号丢失时,胶囊和会话列表应能帮助用户恢复当前状态。

自主监督不要求前端持续连着同一条 SSE 流才会工作。监督触发在后端 Session OS 内完成;前端主要通过 REST 轮询和 WebSocket 状态消息展示最新监督状态、会话状态和 Workflow run 状态。

检查后端是否仍健康、浏览器是否断网、隧道是否重连、模型提供商是否超时。

客户端需要幂等处理。重连后可能重新收到一部分状态更新。

打开会话详情页,以会话当前状态和最新汇报为准。