NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #2684 most downloaded on npm
AI SDK by Vercel - build apps like ChatGPT, Claude, Gemini, and more with a single interface for any model using the Vercel AI Gateway or go direct to OpenAI, Anthropic, Google, or any other model provider.
Last release today
06 Oct 2026
Ships on a steady schedule
a new release about every 8 days
Some releases are documented
notes for 26 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
13 years old
1572 releases · first in 2014
### Patch Changes - Updated dependencies [5f66123] - @ai-sdk/gateway@2.0.0-beta.54
### Patch Changes - Updated dependencies [3782645] - @ai-sdk/gateway@2.0.0-beta.53
One column per quarter.
8370068: fix(provider/google): preserve thoughtSignature through tool execution
384142c: feat(agent): add abortSignal parameter to generate and stream
b681d7d: feat: expose usage tokens for 'generateImage' function
@ai-sdk/provider-utils@4.0.0-beta.32
a322efa: Added finishReason on useChat onFinish callbck
eb8d1cb: fix not catching of empty arrays in validateUIMessage
ab1087b: feat(ai): chat.addToolResult() is now chat.addToolOutput()
chat.addToolResult() is now chat.addToolOutput()@ai-sdk/provider-utils@4.0.0-beta.31
97b1d77: fix(ui): Don't resend messages for providerExecuted tools in lastAssistantMessageIsCompleteWithToolCalls and lastAssistantMessageIsCompleteWi
@ai-sdk/provider-utils@4.0.0-beta.30
@ai-sdk/provider-utils@4.0.0-beta.29
d59ce25: fix(ai): do not mutate middleware array argument when wrapping
22ef5c6: feat(ai): Output.text() is default output mode
ca13d26: feat(ai): add output to StreamTextResult
36b175c: chore(ai): change output generics
### Patch Changes - Updated dependencies [96322b7] - @ai-sdk/gateway@2.0.0-beta.47
@ai-sdk/provider-utils@4.0.0-beta.28
e1f6e8e: feat(ai): add Output.json()
37c58a0: This release introduces wrapEmbeddingModel, a new helper that brings embedding model customization capabilities similar to wrapLanguageModel.
wrapEmbeddingModel, a new helper that brings embedding model customization capabilities similar to wrapLanguageModel.### Patch Changes - Updated dependencies [7d73922] - @ai-sdk/gateway@2.0.0-beta.44
9524761: chore(ai): rename relevanceScore to score
d1bdadb: Added experimental_rerank support
@ai-sdk/provider-utils@4.0.0-beta.25
0c3b58b: fix(provider): add specificationVersion to ProviderV3
a755db5: feat(ai): improve warnings with provider and model id
58920e0: fix(ai): do not drop custom headers in HttpChatTransport
293a6b7: Added a title to the tools
754df61: fix(ai): correct type field in arrayOutputStrategy from 'enum' to 'array'
eca63f3: feat(ai): add OAuth for MCP clients + refactor to new package
eca63f3: feat(ai): add OAuth for MCP clients + refactor to new package
This change replaces
import { experimental_createMCPClient } from "ai";
import { Experimental_StdioMCPTransport } from "ai/mcp-stdio";
with
import { experimental_createMCPClient } from "@ai-sdk/mcp";
import { Experimental_StdioMCPTransport } from "@ai-sdk/mcp/mcp-stdio";
077aea3: feat(ai): stable structured output on generateText, streamText, and ToolLoopAgent
d7bae86: feat(ai): add Output.choice()
d5b25ee: feat(ai): add Output.array()
9b83947: feat(ai): add convertDataPart option to convertToModelMessages
9b83947: feat(ai): add convertDataPart option to convertToModelMessages
Add optional convertDataPart callback for converting custom data parts (URLs, code files, etc.) to text or file parts that models can process. Fully type-safe using existing UIMessage generics.
### Patch Changes - Updated dependencies [2b6a848] - @ai-sdk/gateway@2.0.0-beta.37
fca786b: feat(agent): configurable call options
dce4e7b: chore(agent): rename system to instructions
2d28066: chore(agent): limit agent call parameters
a7da2b6: feat(agent): change output generics
95b77e2: feat(agent): extract createAgentUIStream, add pipeAgentUIStreamToResponse
c98373a: chore(agent): rename createAgentStreamResponse to createAgentUIStreamResponse
2b49dae: feat(agent): support UIMessageStreamOptions in createAgentStreamResponse
e062079: chore(agent): move Agent.respond into createAgentStreamResponse function
a417a34: feat(agent): introduce version property
61f7b0f: chore(agent): rename BasicAgent to ToolLoopAgent
3794514: feat: flexible tool output content support
42cf7ed: fix(agent): use tool.toModelOutput when available
9388ff1: feat(ui): add isDataUIPart helper
### Patch Changes - Updated dependencies [2f8b0c8] - @ai-sdk/gateway@2.0.0-beta.34
### Patch Changes - Updated dependencies [1890317] - @ai-sdk/gateway@2.0.0-beta.33
5e313e3: fix(agent): do not allow static tools when tools is empty
4812235: fix(ai): add missing export for LoadSettingError
LoadSettingError703459a: feat: tool execution approval for dynamic tools
7f2c9b6: fix(ui): do not submit automatically when server return with error
c62ecf0: feat(ai): add support for v2 specs in transcription and speech models
### Patch Changes - Updated dependencies [0a2ff8a] - @ai-sdk/gateway@2.0.0-beta.30
48454ab: fix(ai): handle backpressure in writeToServerResponse
writeToServerResponse2b1bf9d: feat(ai): add pruneMessages helper function
27e8c3a: chore(ai): rename Agent to BasicAgent, introduce Agent interface
Your coding agent can read these notes before it upgrades. Set up the MCP server →