在 TypeScript 生态里做 LLM 应用,长期存在一个尴尬:模型 SDK 各写各的,前端框架各接各的,流式、工具调用、结构化输出往往要自己拼一层胶水。vercel/ai(AI SDK)正是冲着这个缝隙来的——官方定位是 provider-agnostic 的 TypeScript 工具包,由 Vercel 与 Next.js 团队成员创建,用于构建 AI 应用与 Agent,目标运行时包括 Node.js,目标 UI 框架覆盖 Next.js、React、Svelte、Vue、Angular。
从 GitHub 元数据看,它的 topics 同时包含 language-model、llm、generative-ai、generative-ui、nextjs、react、svelte、vue、openai、anthropic、gemini 等方向。这个组合本身就说明了它的切入方式:不是做模型,而是做模型与前端之间的统一层。
统一 Provider 架构是它的第一层抽象。官方 README 给出的用法有两种:默认走 Vercel AI Gateway,直接传模型字符串,例如 'anthropic/claude-opus-5.5'、'openai/gpt-6-astra'、'google/gemini-3.8-flash';也可以安装 @ai-sdk/openai、@ai-sdk/anthropic、@ai-sdk/google 等包,用 provider 函数显式指定模型。两种写法共用同一个 generateText 调用形态,这意味着切换 provider 时业务代码改动面被压到最小。对需要多模型兜底或按成本路由的团队,这是最直接的选型理由。
第二层是输出形态。generateText 除了返回文本,还支持通过 Output.object 配合 zod schema 生成结构化数据。README 中的示例用 zod 描述一个菜谱对象(name、ingredients、steps),模型直接产出符合 schema 的 output。这把“让模型返回 JSON”从提示词技巧变成了类型层面的约束,对需要把模型输出喂给下游业务逻辑的 TypeScript 项目尤其关键。
第三层是 Agent。官方提供了 ToolLoopAgent,示例中构造了一个带 shell 工具的 sandboxAgent:system 提示声明可访问 shell 环境,tools 里用 openai.tools.localShell 定义执行逻辑,内部调用 Vercel Sandbox 的 runCommand 并返回 stdout。这里能看出 AI SDK 对 Agent 的处理思路——把工具定义、循环执行和模型调用收进一个类,而不是让开发者手写 while 循环。另一个示例 imageGenerationAgent 则用 openai.tools.imageGeneration 并设置 partialImages: 3,说明工具本身可以带流式中间态。
第四层是 UI 集成,也是它和纯后端 SDK 最大的区别。AI SDK UI 提供一组 hooks,官方强调这些 hooks 是 framework agnostic 的,可用于 Next.js、React、Svelte 和 Vue,按框架安装对应包(如 @ai-sdk/react)。README 给出的完整链路值得注意:
- Agent 侧用 InferAgentUIMessage 从 agent 类型推导出消息类型,供前端复用;
- 路由侧在 Next.js App Router 中写 POST handler,用 createAgentUIStreamResponse 把 agent 和 messages 转成流式响应;
- 组件侧用 UIToolInvocation 接收工具调用,按 invocation.state 分支渲染,例如 'input-available' 显示“Generating image...”,'output-available' 渲染 base64 图片;
- 页面侧用 useChat 拿到 messages、status、sendMessage,遍历 message.parts,按 part.type 区分 'text' 和 'tool-generateImage' 分别渲染。
这条链路把“生成式 UI”落到了具体机制上:模型输出的不是纯文本,而是带类型的 parts,工具调用状态直接驱动组件渲染。对做聊天机器人、图像生成、多步工具编排的前端团队,这是可复用的模式。
安装与前置条件方面,官方要求 Node.js 22+ 和 npm(或其他包管理器),核心包为 npm install ai。如果使用编码 Agent(如 Claude Code、Cursor),官方建议执行 npx skills add vercel/ai 把 AI SDK skill 加入仓库。此外官方提供了覆盖不同用例、provider 和框架的 templates,社区讨论在 Vercel Community。
选型时需要留意的边界:README 展示的是 API 形态与用法,并未展开流式协议细节、错误重试策略、provider 能力差异矩阵、Agent 循环的终止条件与成本控制。这些属于需要进一步从源码或官方文档验证的工程机制。另外,默认走 Vercel AI Gateway 意味着接入路径与 Vercel 生态有较强关联,若团队已有自建网关或合规要求,需要评估直连 provider 包的成本。
总体判断:vercel/ai 的切入点是“统一 Provider + 类型化输出 + Agent 抽象 + 框架无关 UI hooks”四件套,适合以 TypeScript 为主、前端框架为 Next.js/React/Svelte/Vue、希望减少模型切换与流式 UI 重复劳动的团队。是否采用,建议先验证三件事:目标 provider 是否在支持列表内、结构化输出能否满足业务 schema 复杂度、Agent 工具循环在真实负载下的可控性。