跳转到主要内容
Zeus 使用 Server-Sent Events (SSE) 将 Agent 的推理过程和工具调用实时流式传输到前端。本页描述流式传输的完整链路、事件类型和分块行为。

Streaming Pipeline

流式传输采用端到端 SSE 透传:Python 后端生成事件 → Next.js API 代理转发 → 前端 StreamProcessor 消费。

Event Types

Core Events

SSE 事件触发时机关键字段
textLLM 每输出一个 tokencontent, role
tool_callLLM 决定调用工具tool_name, parameters, requires_approval
tool_call_result工具执行完成tool_name, result, is_error
completeAgent 执行结束content, summary
error发生异常error, error_code, details
token_usageLLM 调用结束后prompt_tokens, completion_tokens
沙盒工具(sandbox_exec_pysandbox_exec_sh 等)的执行结果通过标准的 tool_call_result 事件返回,不使用单独的事件类型。

Event Mapping

DeepAgents 框架内部事件到 SSE 消息的映射关系:

Tool Call ID Queue

为了正确匹配 on_tool_end 事件与对应的工具调用,运行时维护一个 FIFO 队列(按工具名分组存储 tool_call_id)。on_chat_model_end 时入队,on_tool_end 时出队匹配。

Frontend StreamProcessor

前端 handleStreamMessage() 消费 SSE 流,将事件路由到对应的状态管理:

Chunking & Batching

消息批处理

前端合并快速连续的文本更新,以约 60fps 的频率批量刷新 UI,避免过度渲染。

虚拟滚动

对长对话使用虚拟滚动,只渲染可视区域的消息卡片,提升滚动性能。

选择性状态持久化

只持久化必要的状态(如 sessionIdmessageIds),完整消息内容从服务器按需加载。