Vercel News

AI SDK 7 is now available

8.5内容质量

TL;DR · AI 摘要

AI SDK 7 提供了更强大的功能用于构建生产级代理,支持多种模态和更清晰的 API。

核心要点

  • AI SDK 7 支持多种模态,包括文本、音频、实时、图像和视频。
  • AI SDK 7 要求 Node.js 22 和 ESM 导入。
  • AI SDK 7 提供了更清晰的 API 和迁移工具。

结构提纲

按章节快速跳转。

  1. §AI SDK 7 is now available

    AI SDK 7 是一个用于构建生产级代理的重大发布。

  2. AI SDK 7 提供了开发、运行、集成和观察代理的多种功能。

  3. AI SDK 7 引入了两个重大变更要求:Node.js 22 和 ESM 导入。

  4. AI SDK 7 提供了多种开发代理的功能,包括推理控制和运行时上下文。

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • AI SDK 7
    • 功能
      • 支持多种模态
      • 更清晰的 API
      • 迁移工具
    • 要求
      • Node.js 22
      • ESM 导入

金句 / Highlights

值得收藏与分享的关键句。

#AI SDK#TypeScript#Node.js#Vercel
打开原文

AI SDK 7 现已发布 - Vercel

AI SDK 7 是用于在 TypeScript 中构建生产级代理的重大版本更新。该 SDK 已从模型调用和聊天原语扩展为更广泛的代理平台,用于开发、运行、集成和观察跨文本、音频、实时、图像和视频的代理。所有主要提供商都开箱即用。

一目了然

  • 使用推理控制、工具和运行时上下文、提供商文件和技能支持、MCP 应用以及终端 UI 开发代理。
  • 使用工具批准、持久的 WorkflowAgent 执行、一流的超时设置以及沙箱支持运行代理。
  • 集成任何代理框架,如 Codex、Claude Code、Deep Agents、OpenCode 或 Pi。
  • 使用重新设计的遥测功能、@ai-sdk/otel、Node.js 跟踪通道支持、生命周期回调和步骤性能统计来观察代理行为。
  • 超越文本构建,包括稳定的语音/转录 API、更丰富的文件部分、图像生成和编辑、多模态嵌入、重新排序、实时语音(实验性)和视频生成(实验性)。
  • 通过新的迁移技能、codemods 和针对 ESM、Node.js 22、instructions、telemetry、stream、finalStep、runtimeContext 和 toolsContext 的迁移路径,使用更清晰的 API 进行升级。

升级前

AI SDK 7 引入了两个重大变更要求:

  • Node.js 22 最低版本:需要 Node 22,因为 SDK 依赖于 API(包括原生 fetch 实现和改进的 AsyncLocalStorage 语义),这些 API 没有回退到更早的 LTS 版本。
  • 需要使用 ESM 导入:AI SDK 7 需要使用 ESM 导入(import 语法或 .mjs 文件)。不支持 CommonJS 的 require()。请更新 package.json,添加 "type": "module" 或将单个文件迁移到 .mjs。

在手动检查语义迁移项目之前,运行 v7 codemods 来自动化大部分导入和重命名更改。查看完整的 v7 迁移指南。

开发代理

  • 与提供商无关的推理控制:generateText 和 streamText 现在支持一个顶级推理选项,该选项映射到 OpenAI、Anthropic、Google、Groq、xAI、Bedrock、Fireworks、DeepSeek、Open Responses 和 OpenAI 兼容提供商的原生设置。请注意,具体行为和可用参数因提供商而异。
code
import
{
generateText
}
from
'ai'
;
const
result
=
await
generateText
(
{
model
:
'openai/gpt-5.5'
,
prompt
:
'Plan a launch checklist.'
,
reasoning
:
'high'
,
}
)
;
  • 类型化的运行时上下文:共享的编排状态存在于 runtimeContext 中,并通过 prepareStep、批准函数、生命周期回调、遥测、ToolLoopAgent 和 WorkflowAgent 流动。
code
import
{
ToolLoopAgent
}
from
'ai'
;
const
agent
=
new
ToolLoopAgent
(
{
model
:
'openai/gpt-5.5'
,
runtimeContext
:
{
audience
:
'developers'
,
}
,
prepareStep
(
{
runtimeContext
}
)
{
return
{
instructions
:
`
Write for
${
runtimeContext
.
audience
}
.
`
,
}
;
}
,
}
)
;
  • 作用域工具上下文:工具可以声明 contextSchema,调用者通过 toolsContext 提供每个工具的值,因此第三方工具只会收到他们需要的秘密或配置。
code
import
{
generateText
,
tool
}
from
'ai'
;
import
*
as
z
from
'zod/v4'
;
const
result
=
await
generateText
(
{
model
:
'openai/gpt-5.5'
,
tools
:
{
weather
:
tool
(
{
inputSchema
:
z
.
object
(
{
city
:
z
.
string
(
)
}
)
,
contextSchema
:
z
.
object
(
{
apiKey
:
z
.
string
(
)
}
)
,
execute
:
async
(
{
city
}
,
{
context
}
)
=>
getWeather
(
city
,
context
.
apiKey
)
,
}
)
,
}
,
toolsContext
:
{
weather
:
{
apiKey
:
process
.
env
.
WEATHER_API_KEY
,
}
,
}
,
prompt
:
'What is the weather in SF?'
,
}
)
;
  • 提供者文件上传:uploadFile 一次上传大型输入,并在后续调用中重用提供者引用,减少在重复的 PDF、数据集、图像和多步骤工作流程中的冗余上传。
code
import
{
readFile
}
from
'node:fs/promises'
;
import
{
openai
}
from
'@ai-sdk/openai'
;
import
{
streamText
,
uploadFile
}
from
'ai'
;
const
{
providerReference
}
=
await
uploadFile
(
{
api
:
openai
.
files
(
)
,
data
:
await
readFile
(
'./brief.pdf'
)
,
filename
:
'brief.pdf'
,
}
)
;
const
result
=
await
streamText
(
{
model
:
'openai/gpt-5.5'
,
messages
:
[
{
role
:
'user'
,
content
:
[
{
type
:
'text'
,
text
:
'Summarize this brief.'
}
,
{
type
:
'file'
,
mediaType
:
'application/pdf'
,
data
:
providerReference
,
}
,
]
,
}
,
]
,
}
)
;
  • 提供者技能上传:uploadSkill 将相同的模式引入提供者管理的技能环境。
code
import
{
readFile
}
from
'node:fs/promises'
;
import
{
anthropic
,
type
AnthropicLanguageModelOptions
,
}
from
'@ai-sdk/anthropic'
;
import
{
streamText
,
uploadSkill
}
from
'ai'
;
const
{
providerReference
}
=
await
uploadSkill
(
{
api
:
anthropic
.
skills
(
)
,
files
:
[
{
path
:
'my-skill/SKILL.md'
,
content
:
await
readFile
(
'./SKILL.md'
)
,
}
,
]
,
displayTitle
:
'My Skill'
,
}
)
;
const
result
=
await
streamText
(
{
model
:
anthropic
(
'claude-sonnet-4-6'
)
,
prompt
:
'Use my-skill to complete the task.'
,
providerOptions
:
{
anthropic
:
{
container
:
{
skills
:
[
{
type
:
'custom'
,
providerReference
}
]
,
}
,
}
satisfies AnthropicLanguageModelOptions
,
}
,
}
)
;
  • MCP 应用:MCP 支持现在包括模型可见的工具与仅限应用的工具、应用元数据、沙盒 iframe 渲染以及用于工具、资源、日志和显示更新的 JSON-RPC 通信。
code
import
{
experimental_MCPAppRenderer
as
MCPAppRenderer
}
from
'@ai-sdk/react'
;
import
{
isToolUIPart
}
from
'ai'
;
{
messages
.
map
(
message
=>
message
.
parts
.
map
(
part
=>
isToolUIPart
(
part
)
?
(
<
MCPAppRenderer
key
=
{
part
.
toolCallId
}
part
=
{
part
}
sandbox
=
{
{
url
:
'/mcp-app-sandbox'
}
}
loadResource
=
{
app
=>
fetch
(
`
/api/mcp-apps?uri=
${
app
.
resourceUri
}
`
)
}
handlers
=
{
{
allowedTools
:
[
'refreshDashboard'
]
}
}
/
>
)
:
null
,
)
,
)
;
}
  • 终端代理开发:@ai-sdk/tui 在交互式终端 UI 中运行 AI SDK 代理,使您可以在构建完整应用之前测试推理、工具和 Markdown 输出。
code
import
{
ToolLoopAgent
}
from
'ai'
;
import
{
runAgentTUI
}
from
'@ai-sdk/tui'
;
const
agent
=
new
ToolLoopAgent
(
{
model
:
'openai/gpt-5.5'
,
}
)
;
await
runAgentTUI
(
{
agent
}
)
;

链接到标题:在生产环境中运行代理

AI SDK 7 添加了代理在离开本地演示后所需的原始功能。

  • 工具批准:generateText、streamText 和 ToolLoopAgent 可以在调用或代理级别定义批准策略。策略可以要求用户批准、自动批准、自动拒绝或委托给有类型批准函数。
code
import
{
generateText
}
from
'ai'
;
const
result
=
await
generateText
(
{
model
:
'openai/gpt-5.5'
,
tools
:
{
deleteFile
}
,
toolApproval
:
{
deleteFile
:
'user-approval'
,
}
,
prompt
:
'Remove stale temporary files.'
,
}
)
;
  • 强化审批重放:高风险的审批流程可以在继续之前重新验证工具输入和策略,使用 WorkflowAgent 审批验证,并选择启用 HMAC 签名。HMAC 签名将原始工具输入与审批令牌加密绑定,防止在审批请求和恢复之间篡改工具参数。
  • 持久化执行:@ai-sdk/workflow 引入了 WorkflowAgent 用于长期运行的代理。执行状态在步骤之间持久化存储到持久存储中,因此代理可以存活部署、进程重启、中断和延迟审批。如需了解更多内容,请参阅 WorkflowAgent 文档。
code
import
{
WorkflowAgent
}
from
'@ai-sdk/workflow'
;
const
agent
=
new
WorkflowAgent
(
{
model
:
'openai/gpt-5.5'
,
tools
,
runtimeContext
:
{
userId
:
'user_123'
,
}
,
}
)
;
  • 与工作流兼容的代理功能:WorkflowAgent 支持流式传输、工具、审批、类型化的运行时和工具上下文、生命周期回调、稳定的遥测、由提供方执行的审批恢复,以及工具结果转换。
  • 一流的超时机制:文本生成和代理 API 可以定义总超时、每步超时、每块超时、默认工具超时和每工具超时预算。超时中止使用 TimeoutError,并且中止原因通过流和 UI 协议传递。
code
import
{
generateText
}
from
'ai'
;
const
result
=
await
generateText
(
{
model
:
'openai/gpt-5.5'
,
timeout
:
{
totalMs
:
60_000
,
stepMs
:
10_000
,
chunkMs
:
2_000
,
toolMs
:
5_000
,
}
,
prompt
:
'Research this issue and summarize it.'
,
}
)
;
  • 沙箱执行:沙箱抽象支持命令执行、流式输出、工作目录、环境变量、中止信号和步骤级沙箱覆盖。
code
import
{
generateText
,
tool
}
from
'ai'
;
import
*
as
z
from
'zod/v4'
;
const
result
=
await
generateText
(
{
model
:
'openai/gpt-5.5'
,
tools
:
{
runCommand
:
tool
(
{
inputSchema
:
z
.
object
(
{
command
:
z
.
string
(
)
}
)
,
execute
:
async
(
{
command
}
,
{
experimental_sandbox
}
)
=>
{
if
(
experimental_sandbox
==
null
)
{
throw
new
Error
(
'Sandbox is not available'
)
;
}
return
experimental_sandbox
.
run
(
{
command
}
)
;
}
,
}
)
,
}
,
experimental_sandbox
:
sandbox
,
prompt
:
'Run the tests and summarize the result.'
,
}
)
;

Link to heading Integrate Agent Harnesses

AI SDK 7 引入了一个用于将已建立的代理引入 AI SDK 生态系统的 harness 层。将 Claude Code、Codex、Deep Agents、OpenCode 和 Pi 等 harness 通过 SDK 其余部分使用的相同代理接口进行封装。

  • HarnessAgent:通过 AI SDK Agent 接口运行外部代理 harness,使用标准的生成和流式结果。
code
import
{
HarnessAgent
}
from
'@ai-sdk/harness/agent'
;
import
{
claudeCode
}
from
'@ai-sdk/harness-claude-code'
;
import
{
createVercelSandbox
}
from
'@ai-sdk/sandbox-vercel'
;
const
agent
=
new
HarnessAgent
(
{
harness
:
claudeCode
,
sandbox
:
createVercelSandbox
(
{
runtime
:
'node24'
}
)
,
instructions
:
'Review the repository and make a small, safe fix.'
,
}
)
;
const
result
=
await
agent
.
generate
(
{
prompt
:
'Fix the failing unit test.'
,
}
)
;
  • 代理适配器:Claude Code、Codex、Deep Agents、OpenCode 和 Pi 的适配器让团队可以将现有的代理运行时插入到 AI SDK 应用中。
  • 可配置的运行时:Harness 代理可以接收沙箱、指令、自定义技能和工具,因此相同的运行时可以适应不同的产品和工作流程。
  • 耐用且可恢复的会话:工作流工具、会话桥接和中断轮次继续的 API 使 Harness 运行时适合处理更长时间的任务。
  • 准备好网关的认证:Harness 适配器支持 Vercel OIDC 用于 AI 网关,简化了托管和沙箱化代理的执行。

链接到标题 Observe Agents

  • 全局遥测集成:只需注册一次遥测,即可在模型调用、步骤、工具、嵌入、重排序和代理执行过程中接收结构化事件。
code
import
{
generateText
,
registerTelemetry
}
from
'ai'
;
import
{
LangfuseVercelAiSdkIntegration
}
from
'@langfuse/vercel-ai-sdk'
;
registerTelemetry
(
new
LangfuseVercelAiSdkIntegration
(
)
)
;
const
result
=
await
generateText
(
{
model
:
'openai/gpt-5.5'
,
prompt
:
'Write a launch announcement.'
,
telemetry
:
{
functionId
:
'launch-copy-agent'
,
}
,
}
)
;
  • 专用的 OpenTelemetry 包:OpenTelemetry 支持现在位于 @ai-sdk/otel 中,包含 GenAI-semantic 约定的跨度和指标、补充的 AI SDK 属性以及跨度丰富钩子。如需了解更多,请参阅 @ai-sdk/otel 文档。
code
import
{
generateText
,
registerTelemetry
}
from
'ai'
;
import
{
OpenTelemetry
}
from
'@ai-sdk/otel'
;
registerTelemetry
(
new
OpenTelemetry
(
)
)
;
const
result
=
await
generateText
(
{
model
:
'openai/gpt-5.5'
,
prompt
:
'Write a launch announcement.'
,
}
)
;
  • Node.js 跟踪通道:AI SDK 7 通过 Node.js 跟踪通道发出结构化遥测,使可观测性提供者可以一次订阅,同时在流式传输和工具执行过程中保留异步上下文。
code
import
{
tracingChannel
}
from
'node:diagnostics_channel'
;
import
{
AI_SDK_TELEMETRY_TRACING_CHANNEL
,
type
TelemetryTracingChannelMessage
,
}
from
'ai'
;
tracingChannel
(
AI_SDK_TELEMETRY_TRACING_CHANNEL
)
.
subscribe
(
{
start
(
message
)
{
const
{
type
,
event
}
=
message
as
TelemetryTracingChannelMessage
;
console
.
log
(
`
AI SDK
${
type
}
started
`
,
event
)
;
}
,
}
)
;
  • 敏感上下文控制:运行时和工具上下文可以有意识地包含在遥测中,同时有控制措施防止默认情况下暴露秘密。
code
import
{
generateText
}
from
'ai'
;
const
result
=
await
generateText
(
{
model
:
'openai/gpt-5.5'
,
prompt
:
'Write a launch announcement.'
,
runtimeContext
:
{
userId
:
'user_123'
,
feature
:
'launch-copy'
,
}
,
telemetry
:
{
includeRuntimeContext
:
{
userId
:
true
,
feature
:
true
,
}
,
}
,
}
)
;
  • 生命周期回调:回调在核心函数、代理、工具、嵌入、重排序、结构化输出和 UI 流中更加一致。回调负载携带更丰富的数据用于步骤、使用情况、内容、文件、来源、警告、工具、模型调用和错误事件。
code
import
{
generateText
}
from
'ai'
;
const
result
=
await
generateText
(
{
model
:
'openai/gpt-5.5'
,
prompt
:
'What changed in AI SDK 7?'
,
onStart
(
{
callId
,
modelId
}
)
{
console
.
log
(
'started'
,
{
callId
,
modelId
}
)
;
}
,
onStepEnd
(
{
stepNumber
,
finishReason
,
usage
}
)
{
console
.
log
(
'step finished'
,
{
stepNumber
,
finishReason
,
usage
}
)
;
}
,
onEnd
(
{
usage
,
finishReason
}
)
{
console
.
log
(
'finished'
,
{
usage
,
finishReason
}
)
;
}
,
}
)
;
  • 性能统计:步骤结果会暴露时间及吞吐量指标,包括响应时间、总步骤时间、工具执行时间、首次输出时间,以及每秒输出的令牌数。
code
import
{
streamText
}
from
'ai'
;
const
result
=
streamText
(
{
model
:
'openai/gpt-5.5'
,
prompt
:
'用两段话解释部分预渲染。'
,
onLanguageModelCallEnd
(
{
usage
,
performance
}
)
{
console
.
log
(
{
totalTokens
:
usage
.
totalTokens
,
responseTimeMs
:
performance
.
responseTimeMs
,
outputTokensPerSecond
:
performance
.
outputTokensPerSecond
,
}
)
;
}
,
}
)
;

链接到标题 构建超越文本

AI SDK 7 扩展了 SDK,覆盖实时、视频、语音、转录、图片、文件、嵌入和结构化输出。

  • 实时(实验性):通过 WebSocket 会话实现浏览器到提供商的连接,支持 OpenAI、Google 和 xAI,具备音频/文本对话、客户端驱动的工具调用,以及通过 AI Gateway 的标准化路由。
code
import
{
gateway
}
from
'@ai-sdk/gateway'
;
import
{
experimental_useRealtime
}
from
'@ai-sdk/react'
;
const
realtime
=
experimental_useRealtime
(
{
model
:
gateway
.
experimental_realtime
(
'openai/gpt-realtime-2'
)
,
api
:
{
token
:
'/api/realtime/setup'
,
}
,
}
)
;
  • 视频生成(实验性):视频生成支持 AI Gateway、Google AI Studio、Google Vertex、fal、Replicate、ByteDance Seedance、Kling AI、Prodia 和 xAI,支持长期运行的 SSE 响应和更安全的有界下载。
code
import
{
fal
}
from
'@ai-sdk/fal'
;
import
{
experimental_generateVideo
}
from
'ai'
;
const
{
video
}
=
await
experimental_generateVideo
(
{
model
:
fal
.
video
(
'luma-dream-machine/ray-2'
)
,
prompt
:
'A cat walking on a treadmill'
,
}
)
;
  • 稳定的语音和转录:generateSpeech、transcribe、SpeechResult 和 TranscriptionResult 是稳定的导出项。
code
import
{
readFile
}
from
'node:fs/promises'
;
import
{
openai
}
from
'@ai-sdk/openai'
;
import
{
generateSpeech
,
transcribe
}
from
'ai'
;
const
speech
=
await
generateSpeech
(
{
model
:
openai
.
speech
(
'tts-1'
)
,
text
:
'欢迎使用 AI SDK 7。'
,
}
)
;
const
{
text
}
=
await
transcribe
(
{
model
:
openai
.
transcription
(
'whisper-1'
)
,
audio
:
await
readFile
(
'meeting.mp3'
)
,
}
)
;
  • 图像作为文件:图像部分正朝着与其他媒体相同的规范文件模型发展。工具输出可以使用单一文件结构,用于内联数据、URL、提供商引用和文本支持的内容。
  • 更丰富的媒体和模型支持:提供商增加了图像生成、图像编辑、多模态嵌入、语音、转录、重排序、文件引用、推理文件和提供商特定的媒体元数据。
  • 结构化输出的可靠性:对于 Zod 和标准模式输入,JSON Schema 后处理更加严格,结构化输出和工具调用可以进行错误 JSON 提取和修复,数组输出模式保留转换、强制转换、默认值和管道。

链接到标题 UI、流和消息处理

v7 的 UI 和流式传输工作重点在于使代理流正确、可组合且可靠。

  • 直接代理传输:DirectChatTransport 可以直接从 UI 代码调用代理。
code
import
{
DirectChatTransport
,
useChat
}
from
'@ai-sdk/react'
;
const
{
messages
,
sendMessage
}
=
useChat
(
{
transport
:
new
DirectChatTransport
(
{
agent
}
)
,
}
)
;
  • UI 流中的工具批准:UI 消息支持自动批准响应和改进的批准重放行为。
  • 框架改进:React useChat 回调会根据当前的 props/state 更新;sendAutomaticallyWhen 支持异步条件;Vue 获得了一个符合习惯的 useChat 可组合函数;Angular API 与当前 AI SDK 模式对齐。
  • 更可靠的流:在 finish chunk 之前结束的提供者流被视为错误,工具执行错误会以可预测的方式发出并清理,流式推理的边界情况处理得更加一致。
  • 提供者元数据保留:提供者元数据在文本生成、UI 流、工具调用和多轮提供者 ID 映射中都会保留。
  • 多步骤结果:顶级内容、工具调用/结果、文件、来源、警告和使用情况现在代表完整的运行。仅最终步骤的详细信息可通过 finalStep 获取。
code
const
finalStep
=
await
result
.
finalStep
;
console
.
log
(
{
totalUsage
:
await
result
.
usage
,
finalStepUsage
:
finalStep
.
usage
,
}
)
;

链接到标题 配置 MCP

MCP 包从一个工具传输层成长为一个更丰富的集成表面,用于代理工具和应用程序 UI。

  • 协议和元数据:MCP 客户端支持协议版本 2025-11-25、服务器元数据、服务器指令、ping 响应、协商的协议头和公开的 listTools()。
  • 类型化的工具输出:MCP 工具可以暴露 outputSchema 和 structuredContent,工具定义可以与可执行工具分离。
  • 资源内容:工具结果和提示消息可以包含 MCP resource_link 内容。
  • 应用渲染:MCP 应用使用工具元数据在沙盒 iframe 中渲染特定于应用的 UI,同时保持模型可见和仅应用的工具分离。
  • 传输可靠性:HTTP、SSE 和 OAuth 传输支持自定义 fetch、重定向配置、OAuth 刷新去重、状态验证、异步客户端身份验证、更丰富的错误和更好的 SSE 帧处理。

链接到标题 配置运行时和打包

  • Node.js 22 最低要求:AI SDK 包需要 Node.js 22 或更高版本。
  • 需要 ESM 导入:AI SDK 7 需要 ESM 导入(import 语法或 .mjs 文件)。请更新 package.json 以包含 "type": "module" 或将单个文件迁移到 .mjs。
  • 提供迁移技能:有一个专用的迁移技能,开发者可以安装并请求其代理使用,用于 AI SDK v6 到 v7 的升级。
  • 提供 codemods:v7 的 codemods 覆盖了大多数重命名和清理迁移。

终端

code
npx skills
add
vercel/ai
--skill
migrate-ai-sdk-v6-to-v7
npx @ai-sdk/codemod v7

将此提示发送给您的 AI 编程代理以开始:

AI 提示

code
使用 migrate-ai-sdk-v6-to-v7 技能,将我的应用从 AI SDK v6 迁移到 v7。

链接到标题 退出实验阶段

以下亮点涵盖了最显著的提升:

  • experimental_customProvider 变为 customProvider
  • experimental_generateImage 变为 generateImage
  • experimental_output 变为 output
  • experimental_prepareStep 变为 prepareStep
  • experimental_telemetry 变为 telemetry

链接到标题 重命名的 API

以下重点涵盖了最具影响力的重命名:

  • system option 变为 instructions
  • 在提示或消息中的系统消息需要设置 allowSystemInMessages: true
  • onFinish 变为 onEnd
  • StreamTextResult.fullStream 变为 stream
  • CallSettings 被拆分为模型生成选项和请求/传输选项

链接到标题 已弃用的 API

以下重点涵盖了最具影响力的弃用内容:

  • 工具批准:tool() 和 dynamicTool() 上的 needsApproval 已弃用。将批准逻辑移动到 generateText、streamText 或 ToolLoopAgent 上的 toolApproval。
  • 流式响应助手:如 result.toUIMessageStreamResponse() 和 result.toTextStreamResponse() 的 Result 方法已弃用。改用顶级助手如 createUIMessageStreamResponse 和 createTextStreamResponse。
  • Vue 聊天:Vue Chat 类已弃用。改用 useChat 可组合函数。

链接到标题 其他迁移主题

  • 推理配置集中化:顶级的 reasoning 选项取代了重叠的特定提供者推理设置,除非有意进行特定提供者的覆盖。
  • OpenTelemetry 移动到 @ai-sdk/otel:OpenTelemetry 跨度收集不再内置于 ai 包中。遥测信息全局注册,自定义追踪器移动到 OpenTelemetry 构造函数中。
  • 请求和响应正文保留是可选的:文本生成结果默认排除请求和响应正文。
  • 多步骤结果现在代表完整的运行:顶级使用情况、内容、工具调用/结果、文件、来源和警告会跨所有步骤累积;仅最终步骤的数据位于 finalStep 下。
  • 消息部分更加标准:旧版媒体和图像特定部分正向具有媒体类型的文件部分靠拢。
  • 包特定行为已更改:MCP HTTP/SSE 重定向被视为错误,OpenAI 响应推理摘要默认为详细,Anthropic 缓存创建令牌元数据移动到标准使用字段中。

链接到标题 升级路径

按照以下步骤将现有项目迁移到 AI SDK 7:

  • 将 Node.js 更新到 22+:在升级包之前,请确认您的运行时和 CI 环境满足最低要求。
  • 更新包:在 package.json 中将 ai 和所有 @ai-sdk/* 包升级到它们的 v7 版本。
  • 运行 v7 的 codemods:codemods 会自动完成大部分重命名、导入更改和 API 移动。提交之前请查看差异。
  • 迁移 OpenTelemetry:如果您使用了追踪,请将设置迁移到 @ai-sdk/otel 并全局注册遥测。请参考 @ai-sdk/otel 文档和 OpenTelemetry 跨度模式以获取属性详细信息。
  • 手动审查语义更改:codemods 无法完全决定运行时需求、ESM 导入、指令/消息行为、运行时/工具上下文分离、批准策略位置、流式助手使用和多步骤结果形状。请参阅完整的 v7 迁移指南。
code
npx @ai-sdk/codemod v7

对于指导性迁移,请安装 AI SDK v7 迁移技能,并要求您的代理将其应用到您的应用程序中:

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