ai-sdk
Официальный skill Vercel AI SDK предназначен для разработки AI-функций в приложениях. В его назначение входят chat-интерфейсы, генерация текста, структурированный результат, вызов инструментов, агентные циклы, интеграция MCP, потоковая выдача, embeddings, reranking, генерация изображений и работа с разными LLM-провайдерами. Это не общий совет «добавить AI»: исходный `SKILL.md` связывает навык с конкретными признаками проекта — маршрутами API chat и completion, каталогами `lib/ai`, `src/lib/ai`, `ai`, файлами agents и server actions для чата, а также импортами `ai` и `@ai-sdk/*`. Поэтому карточка полезна, когда задача уже относится к этим участкам приложения или явно описана как Vercel AI SDK. Внутри skill есть словарь задач и сущностей, по которым можно распознать сценарий: добавить генерацию или чат, стримить ответы в интерфейс, вызвать tools и запустить agent loop, получить JSON по схеме или собрать функцию с streaming и tool calling. В качестве ориентиров названы `useChat`, `useCompletion`, `streamText`, `generateText`, `generateObject`, `CoreMessage`, `ToolLoopAgent` и AI Gateway. Эти имена не являются декоративными тегами: они помогают подобрать релевантный раздел и отличить задачу Vercel AI SDK от прямого вызова SDK конкретного провайдера. В исходнике также перечислены `sdk.vercel.ai/docs`, reference-документация и sitemap как документационные точки для дальнейшей проверки API. Отдельная ценность карточки — проверяемые правила актуализации кода. Она предупреждает о прямых импортах `openai` и Anthropic SDK и предлагает использовать соответствующий provider-пакет AI SDK, когда это действительно сценарий Vercel AI SDK. Для v6 перечислены конкретные миграции: `Experimental_Agent` заменяется на `ToolLoopAgent` или актуальный Agent API; `toDataStreamResponse()` — на `toUIMessageStreamResponse()` для chat UI или `toTextStreamResponse()` для текстового клиента; `maxSteps` — на `stopWhen: stepCountIs(N)`; старый `useChat({ api })` — на transport с `DefaultChatTransport`; поле `parameters` в tool — на `inputSchema` и при необходимости `outputSchema`. Эти ограничения позволяют искать устаревшие паттерны, а не переписывать рабочий код без причины. Для структурированных результатов исходные проверки направляют от `generateObject()` к `generateText` с `Output.object({ schema })`, а от `streamObject()` к `streamText` с тем же подходом. `CoreMessage` обозначен как переименованный тип, которому соответствует `ModelMessage` и преобразование `convertToModelMessages()`. В клиентском чате старые `onResponse`, `body`, `handleSubmit` и `isLoading` также отмечены как несовместимые или устаревшие формы: вместо них используются transport, передача данных через него, `sendMessage({ text })` и проверка статуса `submitted` или `streaming`. Для tools важно использовать актуальный формат частей `tool-<toolName>` и writer внутри `createUIMessageStream`, а не старые вызовы. Практический сценарий такой: определить участок AI-функции по маршруту и импорту, свериться с актуальной документацией, выбрать provider или AI Gateway, затем проверить код на перечисленные v6-паттерны и постепенно заменить только подтверждённые устаревшие формы. Skill помогает проектировать chat, generation, streaming, structured output, tools, agents и MCP в одной экосистеме, но не выбирает за команду модель, провайдера, схему данных или требования безопасности. Рекомендации о миграции следует применять к фактической версии SDK и проверять по документации, потому что сам навык прямо ориентирован на актуальные API и содержит правила для обнаружения устаревших примеров.
Для чего подходит
- Создание AI-функций и chat-интерфейсов
- Настройка agents, tools и MCP
- Работа со streaming и structured output
Установка
Сначала прочитайте SKILL.md и scripts в исходном репозитории. Затем выполните команду в каталоге проекта:
npx skills add https://github.com/vercel/vercel-plugin/tree/main/skills/ai-sdk