The Vercel AI SDK (the `ai` package, currently in the 6.x line) ships a unified Language Model Specification, but every provider package implements a different slice of it. This tracker maps the official `@ai-sdk/*` provider packages to the features they currently expose: text generation, streaming, tool calls, structured output via `generateObject`, image input, image generation, embeddings, and audio. The grid below reflects the published v6 docs and each package's latest npm release. Use it to decide which provider package can sit behind which AI SDK call without falling back to a custom adapter.
Feature support by provider
Cells reflect what the AI SDK package exposes, not what the upstream API can theoretically do. A provider may serve a model that supports a capability natively while the AI SDK adapter does not yet wire it up, in which case the cell reads no.
| Provider | Text + stream | Tools | generateObject | Image input | Image gen | Embeddings |
|---|---|---|---|---|---|---|
| OpenAI | yes | yes | yes | yes | yes | yes |
| Anthropic | yes | yes | yes | yes | no | no |
| Google Generative AI | yes | yes | yes | yes | yes | yes |
| Google Vertex AI | yes | yes | yes | yes | yes | yes |
| Azure OpenAI | yes | yes | yes | yes | yes | yes |
| Amazon Bedrock | yes | yes | yes | yes | yes | yes |
| xAI Grok | yes | yes | yes | yes | yes | no |
| Mistral | yes | yes | yes | yes | no | yes |
| Groq | yes | yes | yes | yes | no | no |
| Cohere | yes | yes | no | no | no | yes |
| DeepSeek | yes | yes | yes | no | no | no |
| DeepInfra | yes | yes | yes | yes | no | yes |
| Fireworks | yes | yes | yes | no | yes | yes |
| Together.ai | yes | yes | yes | no | no | yes |
| Cerebras | yes | yes | yes | no | no | no |
| Perplexity | yes | no | yes | no | no | no |
| Baseten | text only | yes | yes | no | no | no |
| Vercel AI Gateway | yes | yes | yes | yes | yes | yes |
Implementation notes
Reasoning content
The AI SDK surfaces a reasoning channel via the `reasoning` field on `generateText` results and the `reasoning-delta` stream part. Anthropic exposes it through Claude's extended-thinking models, OpenAI through its o-series and GPT-5 reasoning models, DeepSeek through `deepseek-reasoner`, and xAI through Grok reasoning models. Other adapters return an empty reasoning array even when the underlying model emits a chain-of-thought; that is an SDK-side gap, not a model gap.
Image and audio modalities
Image generation lives behind the `generateImage` and `experimental_generateImage` calls. OpenAI, Google, Vertex, Bedrock, xAI, Azure, and Fireworks expose it through their main packages. Three packages exist only for image generation: @ai-sdk/replicate, @ai-sdk/luma, and @ai-sdk/fal. Transcription and speech are split across dedicated packages too: @ai-sdk/deepgram, @ai-sdk/assemblyai, @ai-sdk/gladia, and @ai-sdk/revai for transcription, plus @ai-sdk/elevenlabs, @ai-sdk/hume, and @ai-sdk/lmnt for speech synthesis. None of these implement `generateText`.
Provider-executed tools and computer use
Anthropic's computer-use, web search, and code-execution tools are exposed in the AI SDK through the `tools` namespace on `anthropic(...)`. OpenAI surfaces its server-side tools (web search, file search, code interpreter, computer use) the same way through `openai.tools.*`. Other providers do not yet have an SDK-level affordance for provider-executed tools. You can pass raw tool definitions through, but the SDK will not parse the lifecycle events.
Cohere and structured output
Cohere is the one mainstream language-model provider whose AI SDK package does not implement `generateObject`. Cohere's Command family supports JSON-mode at the API level, but the v6 adapter does not wire `response_format` through. Workarounds: prompt-engineered JSON parsing with `experimental_output`, or routing Cohere traffic through the Vercel AI Gateway and using the OpenAI-compatible structured-output path.
The Gateway is routing, not a model
@ai-sdk/gateway lists every capability as supported because the Gateway proxies whichever upstream provider the request resolves to. Capability availability for a given Gateway call equals the capability availability of the underlying model. Treat the Gateway row as routing metadata, not a feature claim.
Methodology
Status values come from three sources, in priority order. First, the canonical capability matrix on ai-sdk.dev for the v6 docs. Second, the README of each provider package on npm. Third, the source of the provider package on the vercel/ai monorepo for cases where the docs lag a release. Versions are pinned to the latest published tag of each `@ai-sdk/*` package at the time of verification.
A capability is marked stable only when the provider package exposes it through a non-experimental export. Anything reached via experimental_* is marked beta. Anything reachable only by hand-rolling a LanguageModelV2 or patching the package is unknown. This tracker covers official Vercel-maintained provider packages only. The community providers (Ollama, OpenRouter, Cloudflare Workers AI, Portkey, llama.cpp, plus roughly forty more) implement the same spec but ship independently and follow their own release cadence.
Corrections welcome. Open an issue with a link to a primary source and the row will be updated on the next refresh.
Related
- AI SDK - what the spec actually is, and how it differs from raw provider SDKs.
- Model Context Protocol - an orthogonal standard for tools and resources that several of these providers also speak.
