Vercel AI SDK 是什么、怎么用:安装、generateText、切换模型与智能体入门

Vercel AI SDK 是什么、怎么上手?按官方 README 讲清它的定位、安装命令、用模型字符串走 AI Gateway 与安装各家 provider 包直连的两种接法、generateText 的最小示例、结构化输出、ToolLoopAgent 智能体,以及前端用的 useChat。

NNathaniel bigo··原创首发·AI 辅助撰写
7 分钟读完
资料核对于 2026-10-11 · 依据官方文档与公开资料整理 其他 账号
本文根据 Vercel AI SDK 官方仓库的 README 整理,资料核对于 2026-10-11。文中代码取自官方 README,没有在本机运行验证。

适用于谁

  • 搜「vercel ai sdk 是什么」「vercel ai sdk 教程」「vercel ai sdk 中文文档」的人;
  • 用 TypeScript、Next.js 或 Node.js 做应用,想接入大模型又不想被某一家的 SDK 绑住的人;
  • 想做聊天界面,在找现成的前端 hook 的人。

结论先说

  1. AI SDK 是一个与模型厂商无关的 TypeScript 工具包,用来构建 AI 应用和智能体,可以配合 Next.js、React、Svelte、Vue、Angular 等界面框架,也可以在 Node.js 等运行时里单独用。
  2. 安装:npm install ai,需要 Node.js 22 及以上。
  3. 换模型只改一处。同一个 generateText,模型可以写成 '厂商/模型' 这样的字符串(走 Vercel AI Gateway),也可以装各家的 provider 包直连。
  4. 两个主要部分:ai 包是核心(生成文本、结构化输出、工具、智能体);@ai-sdk/react 等是界面层(useChat 这类 hook)。
  5. 智能体用 ToolLoopAgent:给模型一组工具,由它循环调用直到完成任务。

一、安装

shell
npm install ai

用 pnpm、yarn、bun 的写对应的安装命令即可。

二、两种接模型的方式

方式一:模型字符串,走 Vercel AI Gateway(默认)

README 说明:不做额外设置时,SDK 通过 Vercel AI Gateway 转发请求,由它提供对主流厂商模型的访问。写法是直接给一个 '厂商/模型' 字符串:

ts
import { generateText } from 'ai';

const { text } = await generateText({
  model: 'openai/gpt-6-astra', // use Vercel AI Gateway
  prompt: 'What is an agent?',
});

方式二:安装 provider 包,直连厂商

shell
npm install @ai-sdk/openai @ai-sdk/anthropic @ai-sdk/google
ts
import { anthropic } from '@ai-sdk/anthropic';

const result = await generateText({
  model: anthropic('claude-opus-5-5'), // or openai('gpt-6-astra'), google('gemini-3.8-flash'), etc.
  prompt: 'Hello!',
});

怎么选:

模型字符串(Gateway)provider 包(直连)
需要的密钥Vercel AI Gateway 的各家自己的 API Key
换模型改字符串换导入的 provider 函数
适合想用一个入口试多家模型已经有某家的 Key,或对请求链路有要求

各家 Key 的获取见《OpenAI API Key 怎么获取》、《Claude API Key》、《Gemini API Key》。密钥放在环境变量里,不要写进前端代码。

三、生成文本

上面的 generateText 就是最基本的用法:给模型和提示词,拿回 text。它是一次性返回完整结果的函数,适合后端任务、脚本和不需要逐字显示的场景。

四、结构化输出

README 说明 generateText 可以通过 Output.object 返回带类型的数据,它接收一个 Zod schema,官方的例子是生成一份包含名称、配料表和步骤的菜谱。

这样拿到的是可以直接在代码里使用的对象,而不是需要自己解析的一段文字。为什么这比在提示词里写「请输出 JSON」可靠,见《如何让大模型稳定输出 JSON》。

五、智能体:ToolLoopAgent

README 的智能体示例定义了一个带终端工具的智能体:

ts
import { ToolLoopAgent } from 'ai';

const sandboxAgent = new ToolLoopAgent({
  model: 'openai/gpt-6-astra',
  system: 'You are an agent with access to a shell environment.',
  tools: {
    shell: openai.tools.localShell({
      execute: async ({ action }) => {
        const [cmd, ...args] = action.command;
        const sandbox = await getSandbox(); // Vercel Sandbox
        const command = await sandbox.runCommand({ cmd, args });
        return { output: await command.stdout() };
      },
    }),
  },
});

说明:README 的这段代码省略了 openai 的导入和 getSandbox 的定义,不能原样运行,这里引用它是为了看结构。

三个要素:

  • model:用哪个模型;
  • system:系统提示词,说明智能体的角色和边界;
  • tools:一组工具,每个工具有一个 execute 函数。模型决定调用哪个,SDK 负责执行并把结果交回模型,如此循环。

注意示例里命令是在沙箱中执行的,而不是直接在服务器上。让模型执行命令或代码时,这一层隔离不要省,沙箱是什么见《E2B 是什么》。

六、做聊天界面:AI SDK UI

shell
npm install @ai-sdk/react

@ai-sdk/react 里的 useChat hook 负责管理聊天消息,并把用户输入发到你的聊天接口。前端调用这个 hook,后端的路由里用 ai 包调用模型并流式返回,两边由 SDK 约定好的格式对接。核心包里还导出了 createAgentUIStreamResponse 等与界面对接相关的函数,用法见官方文档。

README 称 SDK 可以配合 Svelte、Vue、Angular 等框架使用,各框架对应的包名以官方文档为准。

七、模块一览

包作用
ai核心函数和类型:generateText、Output、ToolLoopAgent 等
@ai-sdk/react界面 hook,如 useChat
@ai-sdk/openai、@ai-sdk/anthropic、@ai-sdk/google 等各家模型的 provider 包

README 还提到官方提供了按用途、厂商和框架分类的模板,可以直接起步。

常见问题

Q:只做后端、不用 Next.js 能用吗?

能。ai 包可以在 Node.js 等运行时里单独使用,界面包是可选的。

Q:和各家官方 SDK 相比有什么好处?

统一的接口。同一段业务代码换个模型字符串或 provider 函数就能切换厂商,流式、工具调用、结构化输出的写法也统一。代价是各家最新的专有功能,可能要等 SDK 跟进。

Q:和 OpenAI Agents SDK、Mastra 怎么选?

语言和侧重点不同:AI SDK 是 TypeScript 的基础工具包;OpenAI Agents SDK 的 Python 版见《OpenAI Agents SDK 教程》;Mastra 是 TypeScript 的智能体框架,见《Mastra 是什么》。

Q:网上教程的写法和这里不一样?

AI SDK 更新很快,不同大版本之间的接口有变化。以官方仓库 README 和文档的当前版本为准,升级时看官方的迁移说明。

参考资料

  • vercel/ai(官方仓库):https://github.com/vercel/ai
  • AI SDK README:https://github.com/vercel/ai/blob/main/packages/ai/README.md

Nathaniel 的更多内容

  1. 01

    用 AI 写简历与模拟面试:对照岗位改简历、STAR 法整理经历、语音模拟面试的流程

    AI 写简历、AI 模拟面试怎么做才有用?给出五步流程:整理经历素材库、对照岗位描述找差距、用 STAR 法改写要点、生成针对性的面试题、用语音模式做模拟面试并复盘;附可复制提示词,并提醒不能让 AI 编造经历、简历上的个人信息怎么保护。

    ChatGPTClaude0
  2. 02

    通义万相怎么用:万相 3.0 生视频与生图入口、灵感值和官方提示词公式

    通义万相怎么用、万相 3.0 在哪生成视频?本文按万相官网和阿里云百炼的官方提示词指南讲清入口、创作框里的几种模式、灵感值与会员的区别,以及文生视频、图生视频、带声音、多镜头和文生图各自的提示词公式。

    通义千问0
  3. 03

    DeepSeek API Key怎么获取:申请、充值、余额查询与泄漏处理

    DeepSeek API Key 在哪里申请、要不要实名、怎么充值和查余额、Key 泄漏了怎么办?本文按官方开放平台文档和常见问题,一步步讲清从创建 Key 到看用量、开发票、退款的完整流程。

    其他 AI 工具0
  4. 04

    Claude Code VS Code 插件使用教程:安装、登录与常用操作

    在 VS Code(及 Cursor 等)里用 Claude Code:扩展安装、登录、@ 引用文件和选中代码、审阅改动、切换模型与权限模式、快捷键、和命令行版的区别,以及图标不见、没反应等常见问题。

    Claude0
  5. 05

    腾讯元宝怎么用:网页版入口、电脑版下载、登录方式与常用功能上手

    腾讯元宝怎么用、网页版入口在哪、电脑版怎么装?本文按元宝官网和 App Store 官方页面讲清三种登录方式、网页版界面、搜索问答、读文档、拍题、录音转写、图片视频创作等功能从哪开始,以及模式选择的注意点。

    其他 AI 工具0
  6. 06

    ChatGPT Atlas 浏览器停用了:还能下载吗、数据怎么迁移、现在用什么替代

    ChatGPT Atlas 浏览器已于 2026 年 8 月 9 日停止运行。本文按官方帮助中心讲清 Atlas 为什么停用、书签和历史记录能否迁移、怎么把书签导入 Chrome,以及现在要用 AI 浏览网页该选新版桌面 App 内置浏览器、云端浏览器还是 Chrome 扩展。

    ChatGPT0

同产品的其他教程

  1. 01

    Hugging Face 怎么下载模型:hf 命令行下载单个文件、指定目录与受限模型申请

    Hugging Face 怎么下载模型?本文按官方文档讲清网页下载、hf download 命令行(单个文件、整个仓库、按通配符筛选、下载到指定目录)、访问令牌怎么建、受限模型怎么申请权限,以及缓存目录和超时怎么调。

    其他 AI 工具0
  2. 02

    扣子工作流怎么搭建:入口在哪、节点类型、变量引用、试运行与发布

    扣子工作流怎么搭建、入口在哪?本文按扣子官方文档讲清两种做法:新用户在扣子编程里用一段话生成工作流,老用户在旧版低代码画布上拖节点;并说明大模型、代码、选择器节点的配置要点、变量引用写法、试运行和官方限制。

    其他 AI 工具0
  3. 03

    Ollama API 调用教程:本地接口地址、Python 调用与 OpenAI 兼容写法

    Ollama API 怎么调用、要不要 API Key?本文按官方文档讲清本地接口地址 localhost:11434、原生接口与 OpenAI 兼容接口两种写法、Python 示例、keep_alive 与上下文设置,以及连不上的排查。

    其他 AI 工具0
  4. 04

    AI角色一致性怎么做:角色设定表、参考图与各工具的官方方法

    做绘本、漫画、IP 形象、短视频,怎么让 AI 画出的同一个角色每张都长得一样?本文按 OpenAI、Google、Midjourney 官方指南,总结「固定描述 + 定妆参考图 + 逐张迭代」的通用流程,并给出各工具的具体入口。

    Gemini其他 AI 工具0
  5. 05

    Devin Desktop 使用教程(原 Windsurf):安装、Devin Local、Plan 模式、规则与权限

    Windsurf 改名 Devin Desktop 后怎么用?按官方文档讲清安装与导入设置、默认智能体从 Cascade 换成 Devin Local、Code / Plan / Ask 三种模式、规则放在 .devin/rules、用 worktree 隔离改动、权限规则,以及老用户迁移。

    其他 AI 工具0
  6. 06

    SKILL.md 怎么写:格式规范、frontmatter 字段与范例(按 Agent Skills 官方规范)

    SKILL.md 是什么格式、怎么写?按 agentskills.io 官方规范讲清 frontmatter 的六个字段、name 与 description 的硬性限制、正文该写什么不该写什么,附一份可以照着改的范例和校验命令。

    Claude其他 AI 工具0

0 条评论

登录 后参与评论

还没有评论,来抢沙发~