
AI SDK 7.x 演进全解读从 v7.0.0 大版本重构到批量 API 与视频异步生成的能力地图【免费下载链接】aiThe AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and agents项目地址: https://gitcode.com/GitHub_Trending/ai/ai本文以 packages/ai/CHANGELOG.md 为骨架结合ai包AI SDK 核心包当前版本 7.0.97的源码目录与 package.json 配置系统梳理 AI SDK 7.x 从大版本重构到最近补丁的完整演进脉络帮助开发者在升级、迁移与选型时快速定位每一项能力变化。一、CHANGELOG 是什么ai包的版本演进档案ai是 Vercel AI SDK 的核心 TypeScript 包负责文本生成、结构化输出、Agent 循环、批量请求、图像/视频/语音生成、UI 消息流等核心能力。仓库中的 packages/ai/CHANGELOG.md 累计超过一万行完整记录了该包从7.0.0-canary到7.0.97的每一次发布。从文件结构看这份 Changelog 遵循 Changesets 格式每个版本分为### Major Changes破坏性变更与### Patch Changes补丁/新特性并用 commit 哈希前缀标注每次变更。它是理解 AI SDK 7.x 演进的第一手档案其中版本节奏7.0.0是正式大版本里程碑此前是7.0.0-beta.*与7.0.0-canary.*预发布序列之后是7.0.1到7.0.97的快速迭代依赖联动每个版本都会列出ai-sdk/provider、ai-sdk/gateway、ai-sdk/provider-utils等底层包的更新哈希说明ai包是建立在 provider 抽象与网关转发之上的薄封装层。这与 packages/ai/package.json 中声明的依赖完全一致ai-sdk/gateway、ai-sdk/provider、ai-sdk/provider-utils均为workspace:*工作区依赖且peerDependencies要求zod ^3.25.76 || ^4.1.8。二、v7.0.0 大版本重构主线破坏性变更的完整清单Changelog 中7.0.0一节集中列出了该版本的所有Major Changes这些是升级到 v7 时必须注意的变更点。1. 全面转向 ESM-onlyef992f8: Remove CommonJS exports from all packages. All packages are now ESM-only (type: module).所有包移除了 CommonJS 导出统一为 ESM-only。这与 packages/ai/package.json 中type: module的设置一致且engines.node要求 22。使用require()的消费者必须切换到import语法。2. 回调与选项命名统一旧名称新名称说明onFinishonEnd文本生成结束回调onStepFinishonStepEnd单步结束回调onObjectStepFinishonObjectStepEnd对象生成单步结束回调stepCountIsisStepCount步骤计数断言experimental_contextruntimeContext运行时上下文streamTextresult 的fullStreamstream完整流属性ToolCallOptionsToolExecutionOptions工具执行选项类型旧导出被移除experimental_prepareStepprepareStep步骤前钩子同时streamText结果对象上迁往finalStep的属性被标记为 deprecatedusage现在报告所有步骤的总用量旧的totalUsage被废弃。3. 提示词体系instructions取代system7.0.0将instructions作为主要提示词选项废弃system同时新增allowSystemInMessages选项控制是否允许在messages/prompt中出现role: system消息。默认拒绝 system 消息是为了降低提示注入风险const agent new ToolLoopAgent({ model, allowSystemInMessages: true, // 显式放行 system 消息 }); await agent.generate({ messages: [ { role: system, content: Server context }, { role: user, content: Hello }, ], });该选项同样支持在prepareCall中动态返回实现按调用粒度配置。4. 遥测Telemetry正式化7.0.0将experimental_telemetry提升为稳定能力命名从*TelemetryIntegration统一为*Telemetry并把 OpenTelemetry 集成拆分为独立的ai-sdk/otel包实现ai核心函数与 OTEL 的解耦。7.0.56进一步把 provider 元数据暴露到语言模型调用结束回调与遥测 span 中。5. 结构化输出的行为修正数组输出返回校验后的值此前数组输出模式校验每个元素但返回模型原始输出现在返回经过 Zod transforms、coercions、defaults、pipes 处理后的值与对象输出保持一致streamObject/generateObject的repairText在7.0.39由experimental_repairText提升为稳定选项。三、Batch API 的完整演进从引入到批量取消与查询批量Batch能力是 7.x 中期引入的重头戏Changelog 记录了它的逐步丰满版本变更7.0.55feat: add batch APIs首次引入批量请求能力7.0.88feat: add tool calling support to batch批量请求支持工具调用7.0.94feat: support per-request models in batch支持批量内按请求指定不同模型7.0.79experimental_startTextBatch接受webhookUrl通过 gateway 的callbackUrl契约注册批量完成回调Anthropic/OpenAI 直连时返回 unsupported 警告7.0.96feat: add batch cancel and list APIs新增批量取消与列表查询7.0.97再次补充批量取消与列表 API并同步更新ai-sdk/provider4.0.13、ai-sdk/gateway4.0.78、ai-sdk/provider-utils5.0.397.0.85Anthropic 直连批量请求保留原生消息批次数并支持完整语言模型选项面在源码层面packages/ai/src/batch 目录承载批量相关实现并由 packages/ai/src/index.ts 的export * from ./batch对外导出。批量 API 的价值在于以更低的成本处理大量非实时任务如离线打分、数据标注、内容归类配合 webhook 实现异步完成通知配合 cancel/list 实现任务治理。四、视频生成的异步化轮询、Webhook 与幂等视频生成是 7.x 后期持续打磨的能力Changelog 记录了从同步生成到异步 start/status 模型的演进。1. 异步 start/status 规范7.0.50experimental_generateVideo新增poll与webhook选项视频模型接口VideoModelV4允许实现doStart、doStatus、handleWebhookOption替代或补充doGenerate从而通过轮询或 webhook 编排完成轮询配置支持自定义 delay 实现兼容 durable workflow。2. fire-and-forget 包装7.0.75新增experimental_startVideo与experimental_videoStatus作为视频模型doStart/doStatus的用户面向包装采用与generateVideo相同的精简选项 DX。3. 幂等启动7.0.56generateVideo会重试doStart而doStart创建可计费的生成任务响应丢失后的重试可能启动第二个任务。修复方案是每次逻辑启动在重试闭包外铸造一个幂等令牌并通过idempotency-key请求头转发让支持去重的 providerVercel AI Gateway在每次尝试中看到相同 key。4. 自适应宽高比7.0.58aspectRatio类型扩展为${number}:${number} | adaptive适用于VideoModelV3CallOptions、VideoModelV4CallOptions与experimental_generateVideo。部分视频模型如 BytePlus Seedance 2.5 的首帧、首末帧、编辑与扩展任务会从输入推导输出比例并拒绝显式宽高比adaptive让这类调用无需类型断言支持程度因 provider 而异。5. 视频 webhook 接收器7.0.97最新补丁修复了视频 webhook 接收器在生成开始前的 rejection 观察问题在失败的 start 期间或之后避免未处理的 rejection保留 start 错误优先级并确保自定义接收器只被同化一次。这些能力在源码中对应 packages/ai/src/generate-video 目录。五、Agent 体系ToolLoopAgent 的治理与安全加固Agent 能力集中在 packages/ai/src/agent 目录ToolLoopAgent是核心类。Changelog 中围绕它的更新贯穿整个 7.x。1. 工具审批Tool Approval安全闭环7.0.36工具审批 HMAC 载荷改用JSON.stringify序列化修复此前用\n拼接字段导致的可注入性问题toolName、toolCallId可含换行符可能让不同字段元组序列化出相同字节7.0.82手动审批状态可携带reason并跨 core、model、UI 审批请求保留OPArequires-approval决策将原因展示给人工审批者UI 消息保留approval.requestReason字段7.0.83审批被拒达到output-denied状态后聊天可自动继续7.0.86WorkflowAgent支持签名工具审批signed tool approvals7.0.93prepareCall与ToolLoopAgentSettings类型正式纳入已支持的onLanguageModelCallStart、onLanguageModelCallEnd。2. 运行时校验补全7.0.0ToolLoopAgentSettings.callOptionsSchema此前虽已声明但从未在tool-loop-agent.ts中执行导致调用方编码的不变量被静默绕过现在prepareCall会先通过safeValidateTypes校验options失败时抛出InvalidArgumentError7.0.60对齐prepareCall类型与实际运行时被尊重和使用的 settings7.0.54prepareCall回调可读取并覆盖顶层reasoning选项7.0.58尊重 agent settings 中配置的 timeout7.0.70当模型调用以不安全的 finish reason 结束时阻止自动执行工具provider 执行工具存在延迟结果时也停止为客户端工具审批进行多步生成7.0.78审批通过但工具输入重校验无效时以模型可见的工具错误继续generateText/streamText/WorkflowAgent轮次7.0.84允许在ToolLoopAgentsettings 与prepareCall中使用工具审批秘密tool approval secrets为签名审批提供密钥基础。六、streamText 流式体验错误恢复、平滑流与回调防护流式文本生成是 AI SDK 的高频路径Changelog 中的相关修复体现了对生产环境稳定性的持续投入。1. 流式重试7.0.91为streamText增加可配置的 provider 错误恢复显式配置streamRetries可启用隔离的重试尝试包括通过StreamTextOnErrorRetryCallback在streamRetries: 0下的一次受控回调驱动恢复恢复后的结果与元数据只反映成功的那次尝试既有的StreamTextOnErrorCallback契约与仅日志观察行为保持兼容。2. 平滑流smoothStream7.0.84处理有状态与空匹配的正则表达式7.0.92文档隐藏时跳过smoothStream的延迟避免后台标签页无意义等待从空平滑流 delta 中保留 provider 元数据。3. 回调异常隔离7.0.71流式onChunk与onError回调中的异常不再终止流也不会掩盖 provider 错误——回调出错与 provider 出错被明确区分。4. 超时语义修正7.0.0streamText的timeout.stepMs此前在步骤流注册后同步清除定时器导致步骤在产出内容前停滞时不会被中止现在步骤定时器存活到流结束或中止与generateText行为一致。5. 结束回调暴露结构化输出7.0.84streamText的 end 回调现在可以拿到解析后的结构化输出parsed structured output。6. 结果对象瘦身7.0.0generateText/streamText结果默认排除请求与响应体以降低内存占用。七、Embedding 与图像生成的边界校验7.x 后期对非文本模态的输出质量做了严格校验7.0.95拒绝不含任何 embedding 的 embedding 模型响应7.0.93拒绝 embedding 响应数量与输入值数量不匹配的情况7.0.80OpenAI 与 Azure OpenAI 的 embedding 请求按聚合 token 限额保守估算 UTF-8 字节预算进行拆分而不仅是按输入数量拆分7.0.94对未分类的空图像结果进行重试保留重试次数记账并新增 provider 无关的结果可重试性分类将 Google 与 Google Vertex 的 prompt blocks 标记为终态7.0.85Gateway 图像生成成本跨拆分请求求和并暴露单次图像生成调用7.0.93未生成图像时保留图像调用诊断信息。八、安全加固清单SSRF、DNS 与运行环境兼容Changelog 中的安全修复值得单独梳理版本修复内容7.0.0downloadBlob与download在跟随 HTTP 重定向后校验最终 URL防止通过开放重定向绕过 SSRF 防护7.0.42Node.js 上的受校验下载通过连接时校验并固定每个解析地址防止经 DNS 别名或 DNS rebinding 到达私有/内部服务7.0.36工具审批 HMAC 载荷改为 JSON 序列化见上文7.0.0默认拒绝 system 消息降低提示注入风险7.0.96atob调用不带 receiver兼容 Cloudflare Workers 环境7.0.93当全局AbortSignal不是构造函数时仍支持 abort signals7.0.41系统信息横幅路由到 stderr避免污染写入 stdout 的应用输出九、UI 消息流与聊天状态机细节7.x 对 packages/ai/src/ui-message-stream 与 UI 消息的处理也持续修复7.0.93sendMessage替换消息时使用新消息 ID保留工具部分的标题转换失败工具调用时保留 provider 元数据7.0.87UI 消息流中保留审批描述符approval descriptors7.0.83持久化的类型化工具调用会针对当前输入/输出 schema 校验schema 不兼容的空/错误输入与不可用工具的终态历史以动态工具部分加载7.0.79合并的 UI 消息流完成一个 step 时保留活动文本与推理部分并让 workflow 流规范化对齐显式 part-end 块7.0.76防止重复的文本与推理部分 ID允许 branded ID 的 UI 消息使用可空元数据 schema7.0.66聊天状态保持 submitted 直到响应内容开始流式输出7.0.65readUIMessageStream避免反复克隆累积文本同时保留可变嵌套值的独立快照7.0.62Completion API 支持类型化自定义 bodies7.0.61停止聊天时取消仍在准备中的消息resumeStream不再把上一条 assistant 消息复制进恢复响应7.0.0新增独立的toUIMessageChunk、toUIMessageStream、toTextStream流转换助手streamText结果上的toUIMessageStreamResponse、pipeUIMessageStreamToResponse等被标记 deprecated。十、如何从 CHANGELOG 落到源码验证Changelog 是索引源码是证据。按以下路径可以在仓库内逐条验证导出面packages/ai/src/index.ts 集中列出了全部对外导出export * from ./batch、./generate-video、./agent等与 Changelog 中的能力演进一一对应功能目录packages/ai/src 下的agent/、batch/、generate-video/、generate-text/、embed/、rerank/、translate/、transcribe/、upload-file/等目录即为 Changelog 各条目的实现载体版本与依赖packages/ai/package.json 可核对当前版本号7.0.97、type: module、Node 22 要求以及 zod peer 依赖范围测试仓库提供vitest.node.config.js与vitest.edge.config.js两套测试配置分别覆盖 Node 与 Edge 运行环境对应 Changelog 中大量Cloudflare Workers 兼容Edge 环境修复类条目类型声明internal.d.ts与test.d.ts分别暴露内部 API 与测试辅助 API。结语从 packages/ai/CHANGELOG.md 可以看出AI SDK 7.x 的演进呈现出三条清晰主线大版本规范化ESM-only、命名统一、遥测稳定、能力纵深扩展Batch 批量、视频异步生成、Agent 治理、以及生产级可靠性流式重试、超时语义、SSRF/DNS 安全、embedding 边界校验。对使用者而言这份 Changelog 既是升级迁移的检查清单也是理解ai包设计取舍的第一手资料——每次修复背后的 commit 都能在仓库源码与测试中找到对应实现。【免费下载链接】aiThe AI Toolkit for TypeScript. From the creators of Next.js, the AI SDK is a free open-source library for building AI-powered applications and agents项目地址: https://gitcode.com/GitHub_Trending/ai/ai创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考