事件
内核的每次运行都产出一条单一的类型化流:AgentEvent——一个覆盖循环一切动作的可辨识联合类型:模型调用、工具执行、审批、压缩、错误以及最终结果。这就是你在 lite-agent 之上构建 UI、日志和遥测的方式:消费这条流并渲染它。事件只做观察——处理事件绝不改变 agent 行为。
用法
用 agent.run(...) 消费事件流,按 ev.type 判别:
从子代理转发的事件带 agentId;主 agent 的事件不带。
AgentEvent 联合类型
Info
非致命失败(重试的模型调用、codec 修复尝试)在抛出之前会先以 { type: "error", fatal: false } 事件出现,观察者能看到完整过程。
发出你自己的事件
中间件和工具可以通过 ctx.emit(ev) 发事件;内核把这些事件缓冲进队列,在循环边界统一 drain。emit 永远不会暂停循环,消费端再慢也不会阻塞内核——见 drain 语义。
另请参阅
- 内核 —— 产生这条流的循环,以及 drain 语义。
- 中间件 ——
ctx.emit与观察循环的各层。 - 上下文压缩 ——
compaction与context_status事件。 - 持久化 —— 会话回放背后的持久
SessionEvent日志。
手动恢复通过 checkpoint_restore 报告 { phase, sessionId, toSeq, completed, total, message? }。手动压缩和恢复与正常运行共用订阅事件流。