事件系统

wesgine 事件体系:SSE 流式推送、事件类型、Run 事件缓冲与断线续播。


SSE 流式 Run

入口

POST /cells/{id}/run → SSE 流

返回 Server-Sent Events 流,实时推送 Run 期间的所有事件。

Run 与 SSE 解耦(INV-RUN-DETACH)

Run 生命周期始终与传输层解耦。

SSE 断开 ≠ 取消 Run。

取消 Run 的唯一途径:


事件类型

流式事件

事件说明
stream_delta模型输出增量文本
stream_thinking模型推理内容
tool_start工具调用开始
tool_progress工具执行进度
tool_complete工具调用完成

生命周期事件

事件说明
run_startRun 开始
turn_start轮次开始
turn_end轮次结束
doneRun 正常结束
errorRun 出错
interruptedRun 被中断

Plan 事件

事件说明
plan_createdPlan 创建
plan_updatedPlan 步骤更新
plan_completedPlan 完成
plan_interruptedPlan 被中断
plan_nudgePlan 提醒(pending 步骤)

HITL 事件

事件说明
hitl_request等待用户输入
hitl_response用户已响应

Terminal Guard(INV-TERM-04)

runLoop 的每个 return 路径必须发出终端事件。

终端事件含义
EventDone正常完成
EventError错误终止
EventInterrupted中断终止

缺少终端事件 → terminal guard 合成虚假 EventError(missing_terminal_event)。

context_cancelled

callLLM/execute 返回 phaseReturn 时若 ctx.Err() != nil:

→ 发出 EventDone("context_cancelled") + 设 reason="context_cancelled"

不依赖 for 循环顶部的 ctx.Err() 检查。


事件缓冲(RunEventBuffer)

每个活跃 Run 有内存事件环,支持断线续播。

续播入口

GET /runs/{runID}/events?from_seq=N → SSE

从序号 N 开始续播事件。

缓冲机制

事件产生 → 写入内存环 → 推送 SSE → 落库 wes_run_traces

EventBus

Cell 级全局事件总线。

入口

GET /cells/{id}/events → SSE

推送 Cell 内所有事件(不限特定 Run)。

用途


Actor 边界(INV-OBS-10)

事件流的 Actor 边界:


消费方处理

done 事件

error 事件


相关文档