事件
每次运行产出一条类型化的 AgentEvent 流——它是向 UI 流式输出文本、展示工具活动、以及服务审批与用户提问的唯一通道。事件只做观察:处理事件绝不改变 agent 行为,因此你可以在其上构建任意渲染或日志层,而不必触碰 agent。
每次迭代 query() 时你已经在消费这条流:
从子代理转发的事件带 agentId;主 agent 的事件不带。
渲染文本
文本以 text_delta 块增量到达——直接写出即可获得流式 UI。当一轮的完整 assistant 消息就绪时发出 message 事件;整个运行结束时,done 携带最终的 RunResult:
交互事件:审批与用户输入
有两对事件对应运行挂起、等待你的处理器应答的时机:
approval_request→approval_resolved—— 权限闸门对某个工具调用返回ask;你的onApproval处理器回答"allow"或"deny"。见权限。input_request→input_resolved—— 模型调用了ask_user;你的onAskUser处理器返回答案字符串。
用事件在 UI 中渲染提示(例如展示哪个工具调用在等待审批);用处理器给出真正的回答。处理器 resolve 之前,运行一直阻塞。