在很多 TypeScript 全栈项目里,模型调用、工具调用和前端流式渲染往往散落在不同层:服务端拼 prompt,路由层处理流,前端再根据自定义事件渲染状态。vercel/ai 的 README 给出的一个完整链路,是把这些环节收进同一条类型化路径:从 ToolLoopAgent 定义工具,到 Next.js App Router 的 createAgentUIStreamResponse,再到 React 里用 useChatUIToolInvocation 渲染工具状态。

AI SDK 的官方定位是 provider-agnostic 的 TypeScript toolkit,用于构建 AI-powered applications 和 agents,目标 UI 框架包括 Next.js、React、Svelte、Vue、Angular,运行时提到 Node.js。安装要求是 Node.js 22+ 和 npm 或其他包管理器,包名是 ai。如果仓库里使用 Claude Code、Cursor 这类 coding agents,README 推荐执行 npx skills add vercel/ai 添加 AI SDK skill。这个细节说明它不只面向运行时,也考虑编码代理辅助开发的场景。

多 Provider 接入:README 明确给出两条路径。默认路径是使用 Vercel AI Gateway,直接传模型字符串即可访问主要 providers,例如 anthropic/claude-opus-4.6openai/gpt-5.4google/gemini-3-flash。另一条是直接安装 provider SDK 包,例如 npm install @ai-sdk/openai @ai-sdk/anthropic @ai-sdk/google,然后从对应包导入 provider,例如 import { anthropic } from '@ai-sdk/anthropic',以 anthropic('claude-opus-4-6') 形式传入 generateText。README 同时展示了统一 API 入口,说明抽象层试图把不同 provider 的调用差异收敛到 generateTextToolLoopAgent 等接口。

从工程角度看,这里真正值得关注的是默认 Gateway 与直连 provider 的边界。README 说明默认走 Vercel AI Gateway,也说明可以直连,但没有展开两者的鉴权、路由、计费、可观测性、故障切换和限流差异。因此团队在选型时,不能仅凭“都支持”就认为两者可互换;至少需要围绕环境变量、密钥管理、失败重试、调用日志和成本归集做验证。如果项目已经有自建模型网关,直连 provider 包可能更贴近现有基础设施;如果希望快速接入多个模型,字符串模型名的方式能减少初期接入代码。这个判断是分析性的,具体取舍仍取决于官方文档和实际环境。

使用入口方面,README 展示了 generateText 的基础调用:传入 model: 'openai/gpt-5.4'prompt,返回 { text }。结构化数据则通过 Output.object 与 zod schema 完成,示例中 generateText 返回 { output },schema 定义了 recipe 对象,包含 name、ingredients、steps。对 TypeScript 项目来说,这种模式把模型输出约束和类型推导放在同一个调用里,减少手写 JSON 解析和校验。需要注意,README 只展示了结构化输出示例,并未说明所有 provider 是否都支持相同 schema 能力,实际接入不同模型时应逐项验证。

Agent 部分是 README 的重点。ToolLoopAgent 接受 modelsystemtools。示例中的 shell agent 把 openai.tools.localShell 作为工具,execute 内通过 Vercel Sandbox 的 sandbox.runCommand 执行命令,并返回 stdout。另一个示例是 imageGenerationAgent,使用 openai.tools.imageGeneration({ partialImages: 3 }) 定义生成图片工具,并通过 InferAgentUIMessage 导出消息类型。README 没有解释 ToolLoopAgent 内部的循环终止条件、最大步数、错误恢复和并发控制,这些是 Agent 落地时必须验证的边界。否则很容易把“工具可调用”误解为“流程可控”。

UI 集成链路值得单独拆开。README 说 AI SDK UI 模块提供 hooks 构建 chatbots 和 generative user interfaces,这些 hooks 是 framework agnostic,可用于 Next.js、React、Svelte、Vue。要按框架安装包,例如 npm install @ai-sdk/react。在 Next.js App Router 示例中,路由使用 createAgentUIStreamResponse({ agent, messages }) 把 agent 和消息流返回给前端。页面侧 'use client' 下使用 useChat(),从 messagesstatussendMessage 驱动 UI。消息渲染不是简单文本,而是遍历 message.parts:文本 part 渲染文本,tool-generateImage part 交给 ImageGenerationView。工具视图组件用 UIToolInvocation 类型,按 invocation.state 分支处理 input-availableoutput-available,后者可直接把 invocation.output.result 放进 base64 图片 src。

这条链路的价值在于,工具调用状态和 UI 渲染状态被放在同一个消息 part 模型里。对开发团队而言,生成式 UI 不再需要自己发明一套事件协议;但也要注意 README 示例聚焦图片生成工具,其他工具类型、错误状态、部分输出和取消操作是否同样有稳定状态,需要查 API Reference 并做集成测试。README 还提到官方提供 templates,覆盖不同 use cases、providers 和 frameworks,可以作为验证起点。

选型上,AI SDK 的 README 信息量集中在“统一调用面 + 框架无关 UI hooks + Agent 工具循环”三层。它适合已经在 Next.js、React、Svelte、Vue 或 Angular 技术栈中,希望用 TypeScript 收敛模型调用与前端交互的团队。但当前资料没有提供性能基准、provider 覆盖清单、版本兼容矩阵或生产稳定性数据,因此不能仅凭 README 得出“所有场景都适合”的结论。更务实的做法是先选一条业务链路:用统一模型字符串跑通文本生成,再切到直连 provider 包验证鉴权与错误处理,最后用 ToolLoopAgent 和 UI hooks 验证工具调用状态。这样可以在不补造产品事实的前提下,快速判断 AI SDK 与现有架构的贴合度。