Streams konsumieren
Überblick
Abschnitt betitelt „Überblick“streamText gibt ein Result-Objekt zurück, das zwei AsyncIterables bereitstellt: textStream liefert nur Text-Chunks als Strings — ideal für einfache Ausgaben. fullStream liefert alle Stream Part Types inklusive Tool-Calls, Reasoning, Sources und Step-Grenzen.
Zusätzlich bietet das Result aggregierte Promises wie text, usage, totalUsage, finishReason, steps, toolCalls und toolResults. Diese kannst Du awaiten, um die Gesamtdaten nach Abschluss des Streams zu erhalten.
textStream — nur Text
Abschnitt betitelt „textStream — nur Text“import { streamText } from 'ai';import { anthropic } from '@ai-sdk/anthropic';
const { textStream } = streamText({ model: anthropic('claude-sonnet-4-5-20250514'), prompt: 'Erklaere Streaming in einem Absatz.',});
for await (const chunk of textStream) { process.stdout.write(chunk);}fullStream — alle Part Types
Abschnitt betitelt „fullStream — alle Part Types“const { fullStream } = streamText({ model: anthropic('claude-sonnet-4-5-20250514'), prompt: 'Wie ist das Wetter in Berlin?', tools: { weather: weatherTool }, maxSteps: 3,});
for await (const part of fullStream) { switch (part.type) { case 'text-delta': console.log('Text:', part.textDelta); break; case 'tool-call': console.log('Tool:', part.toolName, part.args); break; case 'tool-result': console.log('Result:', part.result); break; case 'step-finish': console.log('Step done:', part.finishReason); break; case 'finish': console.log('Stream complete:', part.finishReason); break; case 'error': console.error('Stream error:', part.error); break; }}Stream Part Types
Abschnitt betitelt „Stream Part Types“| Type | Beschreibung | Wichtige Properties |
|---|---|---|
text-delta | Text-Delta | textDelta |
reasoning | Reasoning / Chain-of-Thought Text | textDelta |
source | Quellenreferenz | source |
tool-call | Tool-Aufruf | toolName, args, toolCallId |
tool-call-streaming-start | Start eines gestreamten Tool-Calls | toolCallId, toolName |
tool-call-delta | Inkrementelle Tool-Argumente | argsTextDelta |
tool-result | Tool-Ergebnis | toolName, result, toolCallId |
step-start | Neuer Generierungsschritt beginnt | messageId, request, warnings |
step-finish | Schritt abgeschlossen | finishReason, usage, messageId, response, isContinued |
finish | Stream abgeschlossen | finishReason, usage, providerMetadata |
error | Fehler im Stream | error |
Aggregierte Promises
Abschnitt betitelt „Aggregierte Promises“| Promise | Typ | Beschreibung |
|---|---|---|
text | Promise<string> | Vollstaendiger generierter Text |
usage | Promise<Usage> | Token-Verbrauch des letzten Schritts |
totalUsage | Promise<Usage> | Token-Verbrauch aller Schritte |
finishReason | Promise<FinishReason> | Grund für das Stoppen |
steps | Promise<StepResult[]> | Array aller Schritte |
toolCalls | Promise<ToolCall[]> | Alle Tool-Calls des letzten Schritts |
toolResults | Promise<ToolResult[]> | Alle Tool-Ergebnisse des letzten Schritts |
Siehe auch
Abschnitt betitelt „Siehe auch“- Challenge 1.4: Streaming Text — Erster Stream mit textStream
- Level 7: Streaming — Fortgeschrittene Streaming-Patterns