Skip to content

Streaming

Sebastien Stettler edited this page Apr 13, 2026 · 1 revision

Strem method

stream method output

Stream callback events (yielded per chunk)

Two event object families are used:

  1. AssistantStreamMessageEvent
  • :message_start
  • :message_delta
  • :message_end

Fields:

  • type
  • delta (hash; e.g. id/model/role/stop_reason updates)
  • usage_increment (token deltas)
  1. AssistantStreamEvent / subclasses
  • Text:
    • :text_start
    • :text_delta
    • :text_end
  • Tool call:
    • :tool_start (includes id, name)
    • :tool_delta
    • :tool_end
  • Reasoning:
    • :reasoning_start
    • :reasoning_delta
    • :reasoning_end
  • Thinking (enum-supported alias path):
    • :thinking_start
    • :thinking_delta
    • :thinking_end

Common fields:

  • type
  • content_index
  • delta

Reasoning events also include:

  • signature (on reasoning event struct)

  • id

  • model

  • usage (input_tokens, output_tokens, reasoning_tokens, cache_creation_input_tokens, cache_read_input_tokens)

  • role = "assistant"

  • stop_reason ("stop" | "length" | "tool_use" | "toolUse" | "error" | "aborted")

  • provider

  • api

  • error_message (optional)

  • content array of typed blocks:

    • TextContent { type: "text", text: ... }
    • ReasoningContent { type: "reasoning", reasoning: ..., signature?: ... }
    • ToolCall { type: "tool_use", id:, name:, input: {...} }

Clone this wiki locally