流式输出
session.stream(prompt) 会在回合运行过程中逐步产出事件,因此你可以在文本到达时即时渲染,并实时响应工具活动。当你需要实时 UI,或希望 CLI 逐 token 打印输出(而不是等待 send 或 run 返回完整结果)时,请使用它。
每个事件都带有稳定的 version、type、payload 和可选 metadata 信封字段。常见类型包括 agent_start、text_delta / reasoning_delta、tool_start / tool_end、agent_end 和 error。验证信息位于 agent_end 的 payload 与便捷字段中。
说明:
- Rust 从 Tokio channel 接收
AgentEvent;Node.js 使用stream.next(),Python 使用同步迭代器;Go 必须先持续读取stream.Events,再从stream.Done读取最终错误。取消 Go Context 也会请求原生 Session 取消当前 Run。 - 四种 SDK 都公开规范事件类型。Node.js 和 Python 提供便捷投影;Go 将
Payload与Metadata保留为json.RawMessage,并提供DecodePayload。未来未知事件类型在四种 SDK 中都不会丢失。 - 当启用确认策略时,流式事件还可能包含人工介入(human-in-the-loop)确认信号(
confirmation_required、confirmation_received、confirmation_timeout)。
可运行的流式示例位于 sdk/node/examples/streaming/。完整的人工确认
循环在 sdk/node/examples/streaming/hitl_confirmation_loop.ts,
对应 Python 版本位于 sdk/python/examples/,Go 流式行为由
sdk/go/session_test.go 覆盖。