К основному содержанию
скилл Claude Code CX Codex Cursor GitHub Copilot

migrate-ai-sdk-v6-to-v7 — скилл для Claude Code: как установить

Скилл переводит проекты с Vercel AI SDK 6.x на версию 7.0. Помогает обновить зависимости, исправить сломанные типы и заменить устаревшие параметры вызовов.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add vercel/ai --skill migrate-ai-sdk-v6-to-v7 -a claude-code
Открыть на GitHub

Что делает migrate-ai-sdk-v6-to-v7

Скилл проверяет зависимости в package.json, обновляет пакеты семейства ai и переводит кодовую базу на требования седьмой версии. Он сверяется с официальным чек-листом миграции репозитория. Сюда входит замена CommonJS на чистый ESM, переименование опции system в instructions, переход с fullStream на stream и замена колбэков жизненного цикла onFinish на onEnd.

Мультишаговые вызовы меняют поведение. Свойства вроде usage, content и toolCalls теперь собирают данные за все шаги цепочки, а не только за последний. Если приложению нужен прежний формат ответа, скилл переводит чтение на result.finalStep. Телеметрию вынесли из ядра: пакет @ai-sdk/otel ставится только при реальной работе со спанами OpenTelemetry.

Проект сразу упрётся в ошибку сборки, если версия среды ниже Node.js 22. AI SDK 7.0 полностью прекратил поддержку CommonJS, поэтому старый require() придётся переписать на ESM.

Какие задачи решает

  • Перевести вызовы generateText и streamText с параметра system на instructions
  • Обновить обработку потоков с fullStream на stream и защитить чанки проверкой типов
  • Адаптировать чтение usage и content под сбор данных со всех шагов через finalStep
  • Вынести телеметрию OpenTelemetry в отдельный пакет @ai-sdk/otel

Примеры запросов агенту

  • Обнови кодовую базу с Vercel AI SDK 6 на v7 и исправь ошибки типов
  • Проверь проект на несовместимости с AI SDK 7.0 и замени устаревший fullStream
  • Перепиши вызовы system на instructions в наших функциях генерации текста

Как установить migrate-ai-sdk-v6-to-v7

1Через Skills CLI (Vercel)

npx skills add vercel/ai --skill migrate-ai-sdk-v6-to-v7 -a claude-code

2Вручную: положить файлы

~/.claude/skills/migrate-ai-sdk-v6-to-v7/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/migrate-ai-sdk-v6-to-v7/

Из того же набора2

Весь набор →

Похожие

agent-architecture-audit affaan-m Скилл проверяет агентные и LLM-приложения по 12 слоям. Он нужен, когда поведение агента ухудшилось, а причина сбоя неясна. Claude Code CX Codex Cursor +1 4 700установок pytorch-patterns affaan-m Скилл подсказывает идиоматичные паттерны PyTorch для моделей, циклов обучения и загрузки данных. Пригодится при ревью кода и поиске причин невоспроизводимых запусков. Claude Code CX Codex Cursor +1 4 700установок search-first affaan-m Скилл заставляет агента искать готовые пакеты, MCP-серверы и скиллы до того, как он начнёт писать свой код. Claude Code CX Codex Cursor +1 4 700установок microsoft-docs официальный github Ищет официальную документацию Microsoft, туториалы и примеры кода для задач с Azure, .NET, VS Code и GitHub. Нужен, когда агенту требуется источник по конкретной технологии или версии. GitHub Copilot 14 881установок cost-aware-llm-pipeline affaan-m Скилл для приложений, которые дёргают LLM API: выбирает модель по сложности задачи, считает расход и кэширует промпты. Пригодится, когда счёт за API растёт. Claude Code CX Codex Cursor +1 4 600установок fal-ai-media affaan-m Скилл подключает генерацию изображений, видео и аудио через fal.ai MCP. Подойдёт для создания медиа по тексту, изображениям и видео. Claude Code CX Codex Cursor +1 4 600установок skill-creator официальный anthropics Помогает создать новый скилл, доработать существующий и проверить результат через тестовые промпты и оценки. Claude Code Claude.ai 414 180установок writing-for-agents Matt Pocock Помогает писать скиллы и документы с инструкциями для агентов. Пригодится при правках AGENTS.md, CLAUDE.md и связанных справочных файлов. Claude Code 466 719установок

Вопросы о migrate-ai-sdk-v6-to-v7

Как установить migrate-ai-sdk-v6-to-v7 в Claude Code?

Выполните команду npx skills add vercel/ai --skill migrate-ai-sdk-v6-to-v7 -a claude-code. Агент загрузит скилл в локальную конфигурацию.

Что делает migrate-ai-sdk-v6-to-v7?

Скилл пошагово устраняет несовместимости при переходе на AI SDK 7.0. Он переименовывает устаревшие свойства, правит импорты и адаптирует обработку многошаговых генераций.

Какие требования предъявляет AI SDK 7.0 к среде выполнения?

Проекту требуется среда Node.js версии не ниже 22. Пакеты SDK теперь распространяются строго в виде ESM-модулей, из-за чего импорты через require() больше не поддерживаются.

Исходный текст

SKILL.md · Apache-2.0
---
name: migrate-ai-sdk-v6-to-v7
description: Migrate applications from AI SDK 6.x to AI SDK 7.0. Use when upgrading Vercel AI SDK packages, fixing v7 migration errors, or when the user mentions AI SDK v6, v7, upgrade, migration, breaking changes, system to instructions, fullStream, telemetry, tool context, or finalStep.
---

## 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<RequestOptions, 'timeout'>`; `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.

© vercel · Apache-2.0 · vercel/ai

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой