ai-sdk
Prerequisites
Before searching docs, check if node_modules/ai/docs/ exists. If not, install only the ai package using the project's package manager (e.g., bun add ai).
Do not install other packages at this stage. Provider packages (e.g., @ai-sdk/openai) and client packages (e.g., @ai-sdk/react) should be installed later when needed based on user requirements.
Monorepo path note
In Bun / pnpm / Yarn workspace monorepos, dependencies are usually not hoisted to the repo root — they live inside each app's node_modules/. If node_modules/ai/docs/ doesn't exist at the working directory, check workspace locations before assuming docs are missing:
apps/*/node_modules/ai/docs/(e.g.apps/web/node_modules/ai/docs/)packages/*/node_modules/ai/docs/
Glob from the repo root: apps/*/node_modules/ai/docs/ or **/node_modules/ai/docs/. Substitute the resolved path everywhere this skill says node_modules/ai/docs/ or node_modules/ai/src/. The same applies to provider docs at node_modules/@ai-sdk/<provider>/docs/.
Critical: Do Not Trust Internal Knowledge
Everything you know about the AI SDK is outdated or wrong. Your training data contains obsolete APIs, deprecated patterns, and incorrect usage.
When working with the AI SDK:
- Ensure
aipackage is installed (see Prerequisites) - Search
node_modules/ai/docs/andnode_modules/ai/src/for current APIs - If not found locally, search ai-sdk.dev documentation (instructions below)
- Never rely on memory - always verify against source code or docs
useChathas changed significantly - check Common Errors before writing client code- Always fetch current model IDs - Never use model IDs from memory. A public catalog of current IDs across providers is available at
https://ai-gateway.vercel.sh/v1/models— useful purely for discovery, not a recommendation to use Gateway as a runtime provider. Example:curl -s https://ai-gateway.vercel.sh/v1/models | jq -r '[.data[] | select(.id | startswith("anthropic/")) | .id] | reverse | .[]'(swapanthropic/foropenai/,google/, etc.). Use the model with the highest version number (e.g.,claude-sonnet-4-6overclaude-sonnet-4-5overclaude-3-5-sonnet). - Run typecheck after changes to ensure code is correct
- Be minimal - Only specify options that differ from defaults. When unsure of defaults, check docs or source rather than guessing or over-specifying.
If you cannot find documentation to support your answer, state that explicitly.
Finding Documentation
ai@6.0.34+
Search bundled docs and source in node_modules/ai/:
- Docs:
grep "query" node_modules/ai/docs/ - Source:
grep "query" node_modules/ai/src/
Provider packages include docs at node_modules/@ai-sdk/<provider>/docs/.
Earlier versions
- Search:
https://ai-sdk.dev/api/search-docs?q=your_query - Fetch
.mdURLs from results (e.g.,https://ai-sdk.dev/docs/agents/building-agents.md)
Working examples
For runnable provider × feature examples (Anthropic cache-control, OpenAI computer-use, Google grounding, etc.), see examples.md. Fetch individual files on demand via WebFetch or gh api — do not clone the repo.
When Typecheck Fails
Before searching source code, grep Common Errors for the failing property or function name. Many type errors are caused by deprecated APIs documented there.
If not found in common-errors.md:
- Search
node_modules/ai/src/andnode_modules/ai/docs/ - Search ai-sdk.dev (for earlier versions or if not found locally)
Building and Consuming Agents
Creating Agents
Always use the ToolLoopAgent pattern. Search node_modules/ai/docs/ for current agent creation APIs.
File conventions: See type-safe-agents.md for where to save agents and tools.
Type Safety: When consuming agents with useChat, always use InferAgentUIMessage<typeof agent> for type-safe tool results. See reference.
Consuming Agents (Framework-Specific)
Before implementing agent consumption:
- Check
package.jsonto detect the project's framework/stack - Search documentation for the framework's quickstart guide
- Follow the framework-specific patterns for streaming, API routes, and client integration
References
- Common Errors - Renamed parameters reference (parameters → inputSchema, etc.)
- Type-Safe Agents with useChat - End-to-end type safety with InferAgentUIMessage
- DevTools - Local debugging and observability (development only)
- Canonical Examples - Provider × feature working code from vercel/ai/examples