ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

AI SDK 如何统一 OpenAI、Anthropic 与 Google 接入

AI SDK 如何统一 OpenAI、Anthropic 与 Google 接入 多模型接入的痛点在于每家模型提供方都有自己的请求协议和 SDK。业务要同时接 OpenAI、Anthropic、Google 三家工程上就得维护多套调用逻辑、错误处理与流式输出格式并且每家的模型版本更新还可能带来接口变动。AI SDK 的做法是用一层统一的 TypeScript API 来收拢这种差异让上层代码只依赖一套接口。官方将其定义为 provider-agnostic TypeScript toolkit由 Vercel 与 Next.js 团队成员创建定位是帮助开发者用 Next.js、React、Svelte、Vue、Angular 等 UI 框架以及 Node.js runtime 构建 AI 应用和 agent。需要先说明的是本文事实以官方 README 为准。README 没有解释统一抽象层的内部实现因此下面一部分是官方明确能力一部分是工程判断两者分开呈现。两条接入路径README 描述了两种接入模型的方式。第一条是默认路径AI SDK 默认使用 Vercel AI Gateway调用时直接传provider/model格式的模型字符串const result await generateText({ model: anthropic/claude-opus-4.6, prompt: Hello!, });anthropic/claude-opus-4.6是官方示例中的一个模型字符串指向 Anthropic 的 Claude 模型。OpenAI 对应openai/gpt-5.4Google 对应google/gemini-3-flash。对上层业务而言切换模型只是换一个字符串调用结构本身不变。第二条路径是与 provider SDK 直连。先安装对应包npm install ai-sdk/openai ai-sdk/anthropic ai-sdk/google再调用各 provider 的工厂函数import { anthropic } from ai-sdk/anthropic; const result await generateText({ model: anthropic(claude-opus-4-6), prompt: Hello!, });从工程角度看这两条路径各有适用场景。Gateway 路径开箱即用适合快速做模型对比选型直连路径依赖 provider 自己的 SDK 行为适合对网络出口、鉴权和单个 provider 深度能力有要求的团队。README 没有给出任何性能或成本数据所以哪条路径在实际业务中更优需要团队自己验证。不止文本生成结构化输出与 Agent 工具generateText是核心调用入口但不只是文本生成。官方示例显示通过Output.object配合 zod schema可以直接拿到结构化对象const { output } await generateText({ model: openai/gpt-5.4, output: Output.object({ schema: z.object({ recipe: z.object({ name: z.string(), ingredients: z.array(z.object({ name: z.string(), amount: z.string() })), steps: z.array(z.string()), }), }), }), prompt: Generate a lasagna recipe., });README 还给出了ToolLoopAgent用于构建带工具循环的 agentconst sandboxAgent new ToolLoopAgent({ model: openai/gpt-5.4, system: You are an agent with access to a shell environment., tools: { shell: openai.tools.localShell({ execute: async ({ action }) { // 官方示例中通过 Vercel Sandbox 执行命令 }, }), }, });注意openai.tools.localShell来自ai-sdk/openai说明 provider 包除了基础模型调用还附带针对该 provider 的工具扩展。README 示例中这个工具的 execute 实现借用 Vercel Sandbox 执行 shell 命令但这只是示例的实现方式。另一个官方示例是图片生成 agent工具定义为openai.tools.imageGeneration并传入partialImages: 3。UI 示例中工具调用在output-available状态下返回data:image/png;base64格式的图片数据可以直接用img渲染。README 没有解释partialImages的具体语义但 UI 示例展示的input-available与output-available状态暗示工具调用具备过程感知能力。生成式 UI类型安全从 agent 到组件AI SDK 的 UI 模块是官方重点展示的能力之一。它提供框架无关的 hooks可用于 Next.js、React、Svelte 和 Vue按框架安装对应包npm install ai-sdk/react官方示例展示了一个完整的链路在 Next.js App Router 下定义 agent 路由用createAgentUIStreamResponse把 agent 的输出转成流式响应前端页面通过useChathook 消费消息。这里真正值得关注的是类型安全在整个链路上的穿透。示例中先用InferAgentUIMessagetypeof imageGenerationAgent把 agent 的消息类型推断出来再把它作为useChatImageGenerationAgentMessage的泛型前端消息 part 就能识别tool-generateImage这种类型。UI 组件侧则用UIToolInvocation接收有类型的工具调用并依据 state 渲染界面switch (invocation.state) { case input-available: return divGenerating image.../div; case output-available: return img src{data:image/png;base64,${invocation.output.result}} /; }这种从 agent 逻辑到前端组件的类型穿透是 AI SDK 相比团队自己拼装多 provider SDK 的一个重要收益。后端定义一次 agent前端就能获得带类型的消息结构和工具调用状态联调时不需要反复猜测消息格式。环境要求与周边生态官方明确的环境要求是 Node.js 22安装命令npm install aiREADME 还提到一个面向编码 agent 的能力。如果你使用 Claude Code、Cursor 这类 coding agent可以通过以下命令把 AI SDK 的 skill 添加到仓库npx skills add vercel/ai这相当于把 AI SDK 的使用知识添加到仓库中让编码 agent 能直接参考。此外官方提供了多个 templates覆盖不同的 use case、provider 和 framework并在 Vercel Community 开设了 AI SDK 板块。对刚起步的团队模板是比文档更快的上手路径。选型时需要自行验证的部分按现有官方信息AI SDK 的默认路径依赖 Vercel AI Gateway。如果团队无法接受这个云链路需要评估直连模式是否能覆盖全部需求。以下问题 README 没有给出明确结论建议在真实项目中验证统一抽象层的流式、重试、超时等具体行为需要查阅 API Reference 或直接实验直连各 provider SDK 时provider 包升级是否会影响 AI SDK 的接口兼容性高并发场景下的性能和成本README 没有提供任何基准数据ToolLoopAgent在复杂工具依赖下的循环控制表现需要结合自己的场景测试。工程判断AI SDK 解决的是一个真实存在的工程问题多 provider 接入时的 API 分叉以及 AI 功能与前端框架集成时的成本。它的价值不在于新增模型能力而在于把模型调用、结构化输出和 UI 状态管理收拢到一套类型系统里。对需要在多个模型间快速对比、前端栈又以 React 或 Next.js 为主的团队这个 SDK 值得作为选型评估对象。反过来如果团队长期只绑定一个 provider并且深度依赖该 provider 的私有特性引入一层抽象可能并不划算——这正是选型时需要冷静判断的地方。
返回列表