AnthropicStreamEvent
AnthropicStreamEvent = {
message:Partial<AnthropicResponse>;type:"message_start"; } | {content_block:AnthropicContentBlock;index:number;type:"content_block_start"; } | {delta: {text:string;type:"text_delta"; } | {partial_json:string;type:"input_json_delta"; };index:number;type:"content_block_delta"; } | {index:number;type:"content_block_stop"; } | {delta: {stop_reason:string;stop_sequence?:string|null; };type:"message_delta";usage: {output_tokens:number; }; } | {type:"message_stop"; } | {error: {message:string;type:string; };type:"error"; }
Defined in: adapters/anthropic.ts:261
Anthropic streaming event types via Server-Sent Events.
Claude uses a more complex streaming protocol than OpenAI, with distinct events for different stages: message start, content block start/delta/stop, and message completion. This enables fine-grained control over streaming display and supports tool use streaming.
Event flow:
message_start- Stream begins with metadatacontent_block_start- Each content block (text/tool) startscontent_block_delta- Incremental content for the blockcontent_block_stop- Block is completemessage_delta- Final metadata (stop reason, usage)message_stop- Stream ends
- AnthropicRequest
- AnthropicResponse
- https://docs.anthropic.com/en/api/messages-streaming
Example
Section titled “Example”// Message start eventconst start: AnthropicStreamEvent = { type: 'message_start', message: { id: 'msg_123', model: 'claude-3-5-sonnet-20241022' }};
// Text delta eventconst delta: AnthropicStreamEvent = { type: 'content_block_delta', index: 0, delta: { type: 'text_delta', text: 'Hello' }};
// Completion eventconst done: AnthropicStreamEvent = { type: 'message_delta', delta: { stop_reason: 'end_turn' }, usage: { output_tokens: 42 }};