# What changed in @ai-sdk/openai

> 118 changes in @ai-sdk/openai 2 to 4 from its official release notes, upgrade guides and advisories: 18 breaking, 2 deprecations, 2 security, 46 new APIs and options. Each one cited. Sources checked 2026-10-17. HTML: https://unstale.sh/npm/@ai-sdk/openai/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @ai-sdk/openai 4

### Breaking changes

- Failed and incomplete web searches now become tool errors instead of successful tool results in Responses API calls and batch results. (4.0.91) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.91)
- Arrays passed directly as state are interpreted as decision state parts; JSON arrays must be wrapped in an object or JSON part. (4.0.89) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.89)
- Tool error payloads in OpenAI Chat Completions and Responses are now wrapped in an error object. (4.0.88) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.88)
- Google tool errors and denied executions are now sent under functionResponse.response.error. (4.0.88) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.88)
- Uses the native Decisions API; only gpt-6-luna is supported, so other Responses models no longer work. (4.0.85) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.85)
- The deprecated alias now uses the native Decisions API and no longer works with Responses models other than gpt-6-luna. (4.0.85) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.85)
- A refusal for an individual question now causes the decision call to fail. (4.0.85) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.85)
- Adds a portable max reasoning level, widening the reasoning type and requiring exhaustive consumers to handle max. (4.0.85) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.85)
- Responses API options such as reasoningEffort are no longer applied and produce unsupported-option warnings. (4.0.85) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.85)
- The evaluate API was renamed to decide. (4.0.84) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.84)
- Marks Together AI Gemini image inputs unsupported by the current single-image request mapping. (4.0.79) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.79)
- OpenAI Responses function tools now default to strict: false when tool strict mode is omitted. (4.0.77) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.77)
- Responses delegation and Live session updates are rejected before sending. (4.0.67) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.67)
- Unsupported batch request types are now rejected. (4.0.66) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.66)
- propertyNames is removed from JSON Schema generated for OpenAI. (4.0.66) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.66)
- Adds reasoning configuration updates for GPT-6 models. (4.0.60) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.60)
- Unsupported tools are dropped with a warning, and an error is thrown if that leaves allowedTools empty instead of sending an unrestricted request. (3.0.98, 4.0.43) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%403.0.98), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.43)
- Ambiguous or unknown tool names are now warned about or dropped, with declared tools taking precedence over provider tool names. (3.0.98, 4.0.43) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%403.0.98), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.43)

### Security

- Denied programmatic tool calls are now rejected. (4.0.63) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.63)
- Blank and dot-segment file IDs are rejected or encoded to prevent request-path retargeting. (4.0.55) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.55)

### Deprecations

- A warning is emitted when reasoningSummary is used with chat models. (4.0.84) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.84)
- Direct OpenAI batch providers return an unsupported warning when webhookUrl is provided. (4.0.47) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.47)

### New APIs and options

- Decision state now supports ordered text, file, and JSON parts. (4.0.89) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.89)
- OpenAI Decisions and language model adapters now support image input. (4.0.89) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.89)
- The Decisions API supports the OpenAI safetyIdentifier provider option. (4.0.85) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.85)
- Adds telemetry to speech generation and transcription, with provider usage propagation and experimental streaming lifecycle callbacks. (4.0.83) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.83)
- Adds GPT-6.1 Sol model support for developers using the OpenAI provider. (2.0.132, 3.0.121, 4.0.82) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.82), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%403.0.121), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%402.0.132)
- Adds capability declarations for Together AI FLUX.2 Pro and Flex single-image editing with masks. (4.0.79) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.79)
- Supports the 'none' reasoning effort for GPT-6 Sol and Luna in request-level options and positioned system messages. (4.0.78) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.78)
- Applications can change reasoning effort during a conversation while preserving the prompt prefix for caching. (2.0.130, 3.0.118, 4.0.75) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.75), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%403.0.118), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%402.0.130)
- GPT-6 Sol and Luna model IDs are now available for use. (2.0.128, 3.0.116, 4.0.73) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.73), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%403.0.116), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%402.0.128)
- Adds experimental Choice, Score, and Boolean evaluations with preserved labels and metadata, score-bound validation, and Boolean P(true) estimates constrained to [0, 1]. (4.0.69) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.69)
- An OpenAI-specific api override is available for early-access models. (4.0.67) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.67)
- Applications exchange SDP through an application endpoint for browser-direct Live sessions. (4.0.67) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.67)
- Live sessions expose cumulative voice usage information. (4.0.67) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.67)
- Live sessions support microphone mute controls. (4.0.67) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.67)
- Adds experimental OpenAI Live provider support through a unified factory for server WebSocket sessions with client delegation. (4.0.67) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.67)
- Realtime v4 supports per-connection raw-event parsers. (4.0.67) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.67)
- Realtime v4 adds optional server WebSocket configuration for server adapters. (4.0.67) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.67)
- Experimental browser-direct WebRTC is available for client-delegated Live conversations alongside WebSocket sessions. (4.0.67) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.67)
- Image generation requests are now supported in batches. (4.0.66) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.66)
- Providers can now disable web search source includes. (4.0.66) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.66)
- Adds support for cancelling batches. (4.0.65) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.65)
- Adds support for listing batches. (4.0.65) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.65)
- Adds GPT Image 2.5 Flare and Sunburst model IDs for use with the OpenAI provider. (3.0.111, 4.0.63) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.63), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%403.0.111)
- Adds max quality support for GPT Image 2.5 Flare and Sunburst across image generation, image editing, and the Responses API image generation tool. (4.0.62) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.62)
- Adds xhigh quality support for GPT Image 2.5 Flare and Sunburst across image generation, image editing, and the Responses API image generation tool. (4.0.62) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.62)
- Async tool calling is now supported. (3.0.110, 4.0.61) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.61), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%403.0.110)
- Batch requests can now specify models per request. (4.0.61) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.61)
- Adds support for transcription with chunking and diarized speaker metadata. (4.0.59) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.59)
- Adds support for the gpt-6-astra model. (2.0.124, 3.0.108, 4.0.59) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.59), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%403.0.108), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%402.0.124)
- Adds support for the ultrafast service tier, allowing developers to use that service tier with the OpenAI provider. (3.0.123, 4.0.58) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%403.0.123), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.58)
- OpenAI and xAI batch input file uploads now accept an input file expiration provider option. (4.0.57) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.57)
- Batch start results now expose the uploaded input file ID and its expiration metadata. (4.0.57) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.57)
- Adds deleteFile to the OpenAI files interface. (4.0.55) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.55)
- Adds streaming downloadFile support to the OpenAI files interface. (4.0.55) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.55)
- All file operations now accept and propagate abortSignal. (4.0.55) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.55)
- All file operations now accept and propagate headers. (4.0.55) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.55)
- File uploads support streaming data through the { type: 'stream' } form. (4.0.55) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.55)
- Adds getFileMetadata to the OpenAI files interface. (4.0.55) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.55)
- Upload results now expose byteSize. (4.0.55) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.55)
- Upload results now expose createdAt. (4.0.55) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.55)
- Upload results now expose expiresAt. (4.0.55) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.55)
- Batch operations now support tool calling. (4.0.54) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.54)
- Adds support for explicitly triggering compaction in Responses. (4.0.42) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.42)

### Behavior and default changes

- Streamed custom-tool input is marked as text for progressive display, encoding is preserved across saved and resumed UI messages, while final tool-call inputs remain JSON-encoded. (4.0.95) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.95)
- Complete web-search URLs and file-search documents are exposed as sources, including citation-derived sources when retrieval data is unavailable. (4.0.92) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.92)
- Top-level embedding dimensions are mapped to provider settings. (4.0.91) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.91)
- Image detail is sent in decisions. (4.0.91) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.91)
- Decision refusals are now reported as refusal answers. (4.0.86) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.86)
- Asynchronous capability lookups and middleware overrides can now resolve to unknown. (4.0.79) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.79)
- Known Live model IDs are routed to Live, while unknown IDs retain legacy Realtime defaults. (4.0.67) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.67)
- Azure AI Foundry Responses requests now include explicit message item types. (2.0.126, 3.0.111, 4.0.63) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.63), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%403.0.111), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%402.0.126)

### Fixes and other changes

- Assistant text parts are sent as item references only when preceded by reasoning, preventing follow-up request failures after reasoning is pruned. (4.0.93) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.93)
- Custom tool input deltas are JSON-encoded for progressive UI updates. (3.0.126, 4.0.92) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.92), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%403.0.126)
- Web search results are replayed when response storage is disabled. (3.0.125, 4.0.92) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.92), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%403.0.125)
- Sampling parameters are preserved for GPT-6 Sol and Luna when reasoning is disabled, including reasoning effort updates in Responses requests. (4.0.90) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.90)
- Avoids duplicate references for stored messages containing multiple text parts. (4.0.87) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.87)
- JSONL rows are limited to 64 MB during batch result downloads. (4.0.85) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.85)
- Recursive Zod schemas using allOf wrappers are rewritten correctly. (3.0.124, 4.0.81) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%403.0.124), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.81)
- Uses a standards-compliant User-Agent header. (4.0.80) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.80)
- Capability declarations now use confirmed model IDs, keeping unrecognized model names unknown. (4.0.79) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.79)
- Advertises file-input support for QuiverAI Arrow 2 and Arrow 2 Telos image models. (4.0.79) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.79)
- Fixes streamed tool calls when IDs are missing, blank, or repeated. (4.0.79) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.79)
- Unsupported efforts are validated per model, with request-level updates warned and omitted and historical updates rejected. (4.0.78) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.78)
- Responses stream errors with null codes are classified correctly. (3.0.125, 4.0.74) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%403.0.125), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.74)
- Chat Completions audio transcripts are now exposed as generated text. (2.0.129, 3.0.117, 4.0.73) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.73), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%403.0.117), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%402.0.129)
- Unsupported regex patterns are stripped from JSON schemas. (4.0.72) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.72)
- Speech provider options are now included in requests. (4.0.72) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.72)
- Image edit URL downloads are canceled when the request is aborted, preventing unnecessary continued downloads. (4.0.71) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.71)
- Responses tool results now preserve provider file references. (3.0.114, 4.0.70) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.70), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%403.0.114)
- Assistant text is now sent as Responses easy input messages. (4.0.70) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.70)
- Realtime client event IDs are preserved for session updates and audio appends, enabling correlated server errors. (4.0.67) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.67)
- Returns an AI SDK error when chat completion choices are empty. (2.0.127, 3.0.112, 4.0.64) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.64), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%403.0.112), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%402.0.127)
- Apply patch responses now report a tool-calls finish reason. (3.0.113, 4.0.63) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%403.0.113), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.63)
- Adds support for documented Responses image generation options. (4.0.58) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.58)
- Responses API raw usage objects now preserve their complete contents. (3.0.107, 4.0.57) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%403.0.107), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.57)
- Responses now handle null usage values correctly. (4.0.54) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.54)
- Fixes workflow deserialization for OpenAI Responses models. (4.0.53) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.53)
- Explicit prompt cache breakpoints are preserved on scalar Responses tool results. (3.0.106, 4.0.52) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%403.0.106), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.52)
- Fixes Responses history serialization for regular functions named tool_search. (3.0.104, 4.0.50) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.50), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%403.0.104)
- Non-object replayed Chat Completions tool arguments are normalized to empty objects. (2.0.122, 3.0.104, 4.0.49) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.49), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%403.0.104), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%402.0.122)
- Internal parallel tool call wrappers from the Responses API are expanded while preserving stateful continuation and streaming fallbacks. (3.0.99, 4.0.45) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.45), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%403.0.99)
- Tool call IDs that are empty strings are now handled correctly. (4.0.44) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.44)
- Responses allowedTools now supports built-in and provider-defined tools by deriving entries from each declared tool. (3.0.98, 4.0.43) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%403.0.98), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%404.0.43)

## @ai-sdk/openai 3

### New APIs and options

- Image generation, editing, and the Responses API image generation tool now support xhigh and max quality for GPT Image 2.5 Flare and Sunburst. (3.0.110) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%403.0.110)
- Added GPT-6 reasoning configuration updates for OpenAI integrations. (2.0.125, 3.0.109) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%403.0.109), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%402.0.125)

### Behavior and default changes

- Streamed input is marked with inputEncoding: 'text' for progressive UI display without JSON parsing, and the encoding persists when partial UI messages are saved and resumed. (3.0.129) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%403.0.129)

### Fixes and other changes

- Assistant text is sent with content when reasoning was removed, preventing follow-up request failures after reasoning is pruned. (3.0.127) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%403.0.127)
- Preserves streamed tool calls when IDs and indices are unreliable. (2.0.131, 3.0.120) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%403.0.120), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%402.0.131)
- Early stream errors now preserve retryability. (3.0.117) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%403.0.117)
- Incomplete function-call and custom-tool-call items now finish with length instead of causing a TypeValidationError. (2.0.128, 3.0.116) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%403.0.116), [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%402.0.128)
- Mid-stream Responses error events are flattened for more consistent error handling. (3.0.107) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%403.0.107)
- Schema-invalid known Responses stream events are signaled, and the error finish reason is preserved. (3.0.102) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%403.0.102)
- Prevents negative text output token counts by treating Perplexity reasoning tokens separately from completion tokens. (3.0.101) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%403.0.101)

## @ai-sdk/openai 2

### New APIs and options

- OpenAI Responses models now support asynchronous function tool calling. (2.0.126) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%402.0.126)

### Fixes and other changes

- Follow-up requests no longer fail when reasoning is pruned; assistant text and function calls are sent with content unless preceded by reasoning. (2.0.135) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%402.0.135)
- Web search results, including tools with custom names, are replayed when response storage is disabled. (2.0.134) — [release notes](https://github.com/vercel/ai/releases/tag/%40ai-sdk/openai%402.0.134)
