跳转到主要内容
Zeus 的消息队列负责事件的批量持久化、消息的有序处理和并发隔离,确保消息在各种场景下的可靠投递。

Event Persistence

RealtimeEventSaver

RealtimeEventSaver 负责将实时 SSE 事件批量持久化到数据库:

配置

配置项说明
批量大小3 个事件缓冲区达到此数量时触发写入
批量间隔100ms即使未满也定时刷新
重试次数3 次最大重试次数
重试策略指数退避1s → 2s → 4s
降级方案LocalStorage所有重试失败后的备份存储

Message Batching

前端消息合并

前端合并快速连续的文本更新,避免过度渲染:
策略说明
UI 批量刷新约 60fps 频率批量更新,合并快速连续的 token
虚拟滚动只渲染可视区域的消息卡片
选择性持久化只持久化 sessionIdmessageIds,消息内容按需加载

Chat History 构建

前端从 Zustand Store 加载当前会话的消息历史,排除当前正在发送的消息,传递给后端。后端将其转换为 LangChain 消息类型,限制最多 30 条

Concurrency & Isolation

隔离维度机制说明
Sessionthread_id每个 Session 拥有独立的 Checkpointer 状态
Contextsession_idContext Cache 按 session_id 隔离,resume 只恢复对应会话
工具执行LangGraph同一 Session 内工具串行执行,不会并发
工作空间user_id用户文件系统按 user_id 完全隔离

Session Recovery

系统支持会话中断后的恢复:

保存时机

  • 工具调用完成后
  • 消息发送后
  • HITL 中断时(通过 Checkpointer)

恢复流程