Adding the interrupted finish reason can break exhaustive switches and Record<FinishReason, ...> types on upgrade. It also stops tool execution and agent continuation on cut-off streams, and fixes toolChoice 'none' leaking tool calls.
Key takeaways · AI-distilled
When a final tool message carries repeated or conflicting approval responses for one tool call, the AI SDK now processes only the first, so a tool can no longer run twice or be both executed and denied.
toolChoice: 'none' is now enforced locally: generateText, streamText and WorkflowAgent reject tool calls before execution, withhold streamed tool parts from client-side tools, and skip repairToolCall and experimental_refineToolInput for them.
A new interrupted finish reason covers provider streams that end without a completion signal: partial output is kept without an error, and tool execution, AI agentAn AI system that doesn't just answer once but works toward a goal in a loop — taking actions, reading the results, and deciding what to do next.Full definition → continuation and automatic UI follow-ups stop. Provider detection and emission will be added separately.
Terms in this piece · Glossary
AI agent — An AI system that doesn't just answer once but works toward a goal in a loop — taking actions, reading the results, and deciding what to do next.