流式输出

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
Node.js
Python
Go

说明:

  • 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 覆盖。