# Migrate Ai Sdk V6 To V7 > Migra aplicaciones de AI SDK 6.x a AI SDK 7.0; útil al actualizar paquetes de Vercel AI SDK o corregir errores de migración a v7. Fuente: https://skillsagentes.com/skills/vercel/ai/migrate-ai-sdk-v6-to-v7 Markdown: https://skillsagentes.com/skills/vercel/ai/migrate-ai-sdk-v6-to-v7.md Repositorio: https://github.com/vercel/ai Autor: vercel Licencia: NOASSERTION Actualizado: hace 3 meses Coste de contexto: 69 tok instalada, 2.1k tok al activarse, 2.1k tok con todos los archivos del bundle Bundle: 1 archivo, 8 KB Permisos que pide: ninguno declarado ## Instalación Un skill son archivos markdown: los mismos archivos valen para cualquier agente y lo único que cambia es el directorio de destino, es decir la bandera `--agent`. Añade `-g` para instalarlo en todos los proyectos de la máquina. ```bash # Claude Code npx -y skills add vercel/ai --skill migrate-ai-sdk-v6-to-v7 --agent claude-code # Cursor npx -y skills add vercel/ai --skill migrate-ai-sdk-v6-to-v7 --agent cursor # Codex npx -y skills add vercel/ai --skill migrate-ai-sdk-v6-to-v7 --agent codex # Gemini CLI npx -y skills add vercel/ai --skill migrate-ai-sdk-v6-to-v7 --agent gemini # Windsurf npx -y skills add vercel/ai --skill migrate-ai-sdk-v6-to-v7 --agent windsurf # Cline npx -y skills add vercel/ai --skill migrate-ai-sdk-v6-to-v7 --agent cline ``` ## Qué hace - Actualiza paquetes 'ai' y '@ai-sdk/*' de la v6.x a la v7.0 - Renombra APIs como 'system'->'instructions', 'fullStream'->'stream', callbacks 'experimental_*' - Ajusta forma de resultados multi-step (usage, content, toolCalls) y helpers de streaming - Corrige requisitos de runtime ESM-only y Node.js >=22 - Revisa paquetes específicos: MCP, Vue Chat, Anthropic, Google providers ## Cuándo usarla - Al actualizar paquetes de Vercel AI SDK - Al corregir errores de migración a v7 - Cuando el usuario menciona AI SDK v6, v7, upgrade, migration, breaking changes, system to instructions, fullStream, telemetry, tool context o finalStep ## Qué la activa - "Ayúdame a migrar mi app de AI SDK v6 a v7" - "Tengo errores de tipos después de actualizar a AI SDK 7.0" - "¿Cómo reemplazo fullStream y experimental_telemetry en mi código?" ## Antes de instalar - Requiere backup o baseline confirmado antes de editar, y acceso al archivo de la guía de migración 08-migration-guides/23-migration-guide-7-0.mdx del repo AI SDK. ## Archivos - SKILL.md — 8 KB ## SKILL.md Reproducido tal cual desde vercel/ai bajo NOASSERTION. Esta sección es el documento original y está en inglés. ## AI SDK 6 to 7 Migration Use `content/docs/08-migration-guides/23-migration-guide-7-0.mdx` from the AI SDK repo as the source of truth. This skill is the working checklist; read the guide for exact examples or when behavior is unclear. ## Migration Workflow 1. Ensure the user has a clean backup or committed baseline before editing. 2. Inspect `package.json` and lockfiles to identify installed `ai`, `@ai-sdk/*`, provider, UI, MCP, and telemetry packages. 3. Upgrade AI SDK packages to latest versions, and add `@ai-sdk/otel` only if the project uses OpenTelemetry spans. 4. Update runtime and module assumptions: Node.js must be `>=22`, and AI SDK packages are ESM-only. Replace `require()` imports with ESM imports and add `"type": "module"` or use `.mjs` where needed. 5. Search for the v6 patterns below, migrate only the code that exists, then run typecheck and targeted tests. Prefer behavior-preserving changes. When v7 changes semantics, decide whether the app wants the new all-steps behavior or the previous final-step-only behavior. ## Core API Changes - `experimental_customProvider` -> `customProvider`. - `experimental_generateImage` -> `generateImage`; `Experimental_GenerateImageResult` -> `GenerateImageResult`. - `experimental_transcribe` -> `transcribe`; `Experimental_TranscriptionResult` -> `TranscriptionResult`. - `experimental_generateSpeech` -> `generateSpeech`; `Experimental_SpeechResult` -> `SpeechResult`. - `experimental_output` option/result -> `output` option/result. - `CallSettings` -> `LanguageModelCallOptions & Omit`; `prepareCallSettings` -> `prepareLanguageModelCallOptions`. - `stepCountIs` -> `isStepCount`. ## Prompts and Steps - Rename top-level `system` to `instructions` for `generateText`, `streamText`, `generateObject`, `streamObject`, and `streamUI`. - Move `{ role: 'system' }` messages from `prompt` or `messages` into top-level `instructions`. Only use `allowSystemInMessages: true` for trusted persisted messages. - Rename `experimental_prepareStep` to `prepareStep`. - In `prepareStep`, rename returned `system` to `instructions`. - In `experimental_repairToolCall`, use `{ instructions }` instead of `{ system }`. - Audit `prepareStep` behavior: returned `instructions` and `messages` now carry forward into later steps. If code depended on one-step-only overrides, rebuild from `initialInstructions`, `initialMessages`, and `responseMessages` explicitly. ## Lifecycle Callbacks - `experimental_onStart` -> `onStart`. - `experimental_onStepStart` -> `onStepStart`. - `onFinish` -> `onEnd`. - `onStepFinish` -> `onStepEnd`. - For `embed`, `embedMany`, and `rerank`, `experimental_onFinish` -> `onEnd`. - Callback event fields use `instructions` instead of `system`. ## Usage, Telemetry, and Include Options - `usage.cachedInputTokens` -> `usage.inputTokenDetails.cacheReadTokens`. - `usage.reasoningTokens` -> `usage.outputTokenDetails.reasoningTokens`. - OpenTelemetry moved out of `ai`; install `@ai-sdk/otel` and call `registerTelemetry(new OpenTelemetry(...))` at app startup. - Telemetry is enabled by default once an integration is registered. Remove redundant `isEnabled: true`; use `isEnabled: false` to opt out per call. - Move `experimental_telemetry.tracer` into the `OpenTelemetry` constructor. - `experimental_telemetry` -> `telemetry`. - Telemetry integration callbacks: `onRerankFinish` -> `onRerankEnd`, `onEmbedFinish` -> `onEmbedEnd`. Update tracing-channel subscribers for the same event type names. - `experimental_include` -> `include`. - `includeRawChunks` -> `include.rawChunks`. - Request and response bodies are excluded by default. If code reads `request.body` or `response.body`, opt in with `include.requestBody` and, for `generateText`, `include.responseBody`. ## Streaming, Messages, and Tools - `StreamTextResult.fullStream` -> `stream`. - `streamText` `onChunk` now receives all stream parts, including lifecycle, boundary, finish, abort, and error parts. Guard by `chunk.type` before assuming text/tool/raw content. - `step.response.messages` is no longer accumulated across previous steps. Use `result.responseMessages` for the full response message history, or flatten `result.steps`. - Tool execution callbacks: `experimental_onToolCallStart` -> `onToolExecutionStart`, `experimental_onToolCallFinish` -> `onToolExecutionEnd`. - Tool callback `experimental_context` -> `context`. - Split shared runtime data from tool-specific data: use top-level `runtimeContext` for orchestration state, declare per-tool `contextSchema`, and pass per-tool values through `toolsContext`. - Move `needsApproval` from `tool()` / `dynamicTool()` into per-call or agent `toolApproval`. - `experimental_activeTools` -> `activeTools`. - `ToolCallOptions` -> `ToolExecutionOptions`. - `isToolOrDynamicToolUIPart` -> `isToolUIPart`. ## Content Parts and Reasoning - Tool result `{ type: 'media' }` is removed; use `{ type: 'file-data' }`. - Migrate `toModelOutput` `image-*`, `file-*`, `file-id`, and `image-file-id` variants to canonical `{ type: 'file', mediaType, data: { type: 'data' | 'url' | 'reference', ... } }`. - User message `{ type: 'image', image, mediaType? }` is deprecated; use `{ type: 'file', mediaType: 'image' | 'image/*', data }`. - Add support for the new `reasoning-file` content type in exhaustive switches, renderers, serializers, and validators. - When adopting top-level `reasoning`, remove overlapping provider-specific reasoning settings from `providerOptions` unless provider-specific settings intentionally take precedence. ## Multi-Step Result Shape - `result.usage` now includes all steps; `result.totalUsage` is deprecated. Use `result.finalStep.usage` for final-step-only usage. - Top-level `content`, `toolCalls`, `staticToolCalls`, `dynamicToolCalls`, `toolResults`, `staticToolResults`, `dynamicToolResults`, `files`, `sources`, and `warnings` now include all steps. Use `finalStep` for previous final-step-only behavior. - Top-level `reasoning`, `reasoningText`, `request`, `response`, and `providerMetadata` are deprecated for final-step data. Use `result.finalStep.*`; for `streamText`, await `result.finalStep`. - Apply the same result-shape rules to `onEnd` events. ## Stream Response Helpers The `streamText` result helper methods are deprecated. Replace result methods with top-level stateless helpers: - `result.toUIMessageStream(...)` -> `toUIMessageStream({ stream: result.stream, ... })`. - `result.toUIMessageStreamResponse(...)` -> `toUIMessageStream(...)` plus `createUIMessageStreamResponse({ stream })`. - `result.pipeUIMessageStreamToResponse(response, ...)` -> `toUIMessageStream(...)` plus `pipeUIMessageStreamToResponse({ response, stream })`. - `result.toTextStreamResponse()` -> `toTextStream({ stream: result.stream })` plus `createTextStreamResponse({ stream })`. - `result.pipeTextStreamToResponse(response)` -> `toTextStream({ stream: result.stream })` plus `pipeTextStreamToResponse({ response, stream })`. ## Package-Specific Checks - MCP: `MCPTransportConfig.redirect` now defaults to `'error'`. Only set `redirect: 'follow'` for trusted MCP servers that rely on redirects. - Vue: `@ai-sdk/vue` `Chat` class is deprecated. Prefer `useChat`, including getter/ref init for reactive chat inputs. - Anthropic and `@ai-sdk/google-vertex/anthropic`: `providerMetadata.anthropic.cacheCreationInputTokens` was removed. Use `usage.inputTokenDetails.cacheWriteTokens`; raw Anthropic usage remains at `finalStep.providerMetadata?.anthropic?.usage`. - Google: rename `GoogleGenerativeAI*` types, classes, and functions to `Google*`, e.g. `createGoogleGenerativeAI` -> `createGoogle`. The `google` entry point is unchanged. ## Validation Run the project typecheck after edits, then the smallest relevant test suite. Also smoke-test streaming, chat UI, tool execution, telemetry, and multi-step flows if the migration touched them. If type errors remain, search the migration guide for the exact removed or renamed symbol before inventing a workaround. ## Dónde encaja - Categoría: [Herramientas para desarrolladores](https://skillsagentes.com/categorias/herramientas-desarrollo.md) — Skills que cambian cómo tu agente escribe, revisa y despliega código. - Creador: [vercel](https://skillsagentes.com/creators/vercel.md) — 84 skills en el directorio - [Todas las skills](https://skillsagentes.com/skills.md) - [Ranking de instalaciones](https://skillsagentes.com/ranking.md) --- Skills Agentes · [Índice de páginas en markdown](https://skillsagentes.com/sitemap.md) · [Inicio](https://skillsagentes.com/index.md)