换模型只改一行代码?Vercel AI SDK 让这事成了

为什么你的 AI 应用换模型要改三处代码?

做 AI 应用最烦的事是什么?好不容易接好了 OpenAI,结果甲方说「我们要用 Claude」——你一看,三处 import、两处 API 调用、一处 response parse,全要改。这种硬编码耦合,让换模型变成了一场体力劳动。

Vercel AI SDK 解决的就是这个问题。它是一个provider-agnostic 的 TypeScript 工具包,你用同一套 API 调用 OpenAI、Claude、Gemini、Llama……换模型只需要改一行字符串。

核心能力一览

  • 统一 APIgenerateTextstreamText 一个函数走天下,底层自动路由到对应 provider
  • 多 provider 支持:OpenAI、Anthropic、Google、Meta、Mistral 等 20+ 主流模型厂商
  • AI Gateway:通过 Vercel AI Gateway 开箱即用,不需要自己配代理
  • 结构化输出:集成 Zod schema validation,让模型输出直接就是 typed object,不用再手写正则解析
  • Tool Calling / Agent:内置 ToolLoopAgent,几行代码搭起一个带工具调用的 AI Agent
  • 多框架 UI Hooks:React、Svelte、Vue、Angular 都有对应的 useChat hook
  • 图像生成:集成了 OpenAI 的图像生成能力,直接在 Agent 里调用

最小化上手

安装:

npm install ai

调用不同模型,只需要换 model 字符串:

import { generateText } from 'ai';

const { text } = await generateText({
  model: 'anthropic/claude-opus-4-6', // 换成 'openai/gpt-5.4' 一样跑
  prompt: 'Give me a recipe for lasagna',
});

结构化输出也很干净:

import { generateText, Output } from 'ai';
import { z } from 'zod';

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.',
});

搭一个 Agent 也只需要几十行:

import { ToolLoopAgent } from 'ai';

const agent = new ToolLoopAgent({
  model: 'openai/gpt-5.4',
  system: 'You are a helpful coding assistant.',
  tools: {
    calculator: /* ... */,
    fileReader: /* ... */,
  },
});

谁在用?

这个库来自 Vercel + Next.js 核心团队,GitHub 26.1k stars,829 个 open issues,923 个 open PR——社区活跃度相当高。如果你用 Next.js、React Svelte 或 Vue 做 AI 应用,AI SDK 是目前最省心的集成方案。

唯一的门槛:需要 Node.js 22+。

GitHubhttps://github.com/vercel/ai


GitHub: https://github.com/vercel/ai

评论区

0 条评论

登录后可评论。

陈一铭 13 阅读