乐于分享
好东西不私藏

AI SDK 总览:一个 TypeScript 工具包,如何把"接大模型"这件事变简单

AI SDK 总览:一个 TypeScript 工具包,如何把"接大模型"这件事变简单

本文是《读懂 Vercel AI SDK》系列的第 0 篇——总览。后面会逐个拆它的核心能力,这一篇先回答最基本的问题:它是什么、解决什么问题、由哪几块组成。


一、先说痛点:接大模型,烦在哪

如果你亲手对接过大模型,一定踩过这些坑:

  • 每家API都不一样。OpenAI、Anthropic、Google、xAI……请求格式、字段名、流式返回的结构各不相同。想从 GPT 换成 Claude,业务代码可能要大改。
  • 流式输出要自己解析。想要"打字机"效果,得手动处理 SSE、拼接分片、处理中断。
  • 工具调用、结构化输出各写各的。让模型稳定吐一段 JSON、让它去调一个函数,每家的玩法都要单独适配。
  • 前端还得再缝一遍。后端流出来的数据,前端要自己接、自己拼、自己管状态。

这些都是重复的、和业务无关的胶水代码。AI SDK 想干的事,就是把这层胶水一次性抹平。


二、AI SDK 是什么

一句话:

AI SDK 是 Vercel 出的一个开源 TypeScript 工具包,用一套统一的 API 帮你调用各家大模型、构建 AI 应用和 agent。

官方定义是:"帮助开发者用 React、Next.js、Vue、Svelte、Node.js 等构建 AI 应用和 agent 的 TypeScript 工具包。"

它的核心理念只有一个词:统一(unified)。不管你背后用哪家模型、做文本还是图片、跑单次对话还是多步 agent,面对的都是同一套 API。

最典型的体现——换模型只改一行:

// 今天用 OpenAI
const result = await generateText({ model: 'openai/gpt-5.2', prompt: '你好' });

// 明天想换 Claude?改这一处就行,其余业务代码一个字不动
const result = await generateText({ model: 'anthropic/claude-opus-4', prompt: '你好' });

三、它由三大块组成

理解 AI SDK,记住这三个 surface(官方叫法)就够了:

🧠 AI SDK Core —— 和模型对话的那一层

后端/服务端用的核心 API。你要"让模型干活"的一切,都在这里:

  • 生成文本、流式文本
  • 生成结构化对象(稳定的 JSON)
  • 工具调用(让模型去调你的函数)
  • embedding、rerank、图片/语音/转写/视频等多模态
  • 以及构建 agent 的底座

它屏蔽了各家 provider 的差异,对上只暴露 generateTextstreamTextgenerateObject 这样一组干净的函数。

💬 AI SDK UI —— 前端接数据的那一层

框架无关的一组前端 hook,帮你几行代码就做出一个聊天界面:

  • useChat / useCompletion:自动处理请求、流式接收、消息状态
  • 消息持久化、生成式 UI(让模型的输出直接驱动组件渲染)
  • 内置好了和 Core 之间的通信协议(就是本系列已经单独写过的 Stream Protocol)

支持 React、Vue、Svelte 等,后端甚至可以不是 JS——只要遵守它的流式协议就行。

🤖 AI SDK Harnesses —— 跑现成 agent 的那一层

较新的一块,提供统一 API 去运行已有的 agent harness(比如 Claude Code、Codex)。让你把这些"成品 agent"当成标准组件来编排。

一张图记住三者关系:

        你的 AI 应用
   ┌─────────┴─────────┐
 前端                  后端
AI SDK UI  ──协议──→  AI SDK Core ──→  各家大模型
(useChat)           (streamText)      (OpenAI/Claude/...)
                         │
                   AI SDK Harnesses
                (跑 Claude Code / Codex)

四、它到底能做哪些事

把 Core 的能力铺开,你会发现它覆盖的场景相当全:

能力

一句话说明

文本生成

一次性出结果 or 流式打字机

结构化输出

让模型按 schema 稳定吐 JSON

工具调用

模型自己决定调哪个函数、串成多步

MCP 集成

接入 Model Context Protocol 的外部工具

Embedding / Rerank

做检索、做 RAG 的底层能力

多模态

图片、语音、转写、翻译、视频生成

Agents

循环控制、工作流、记忆、工具审批

中间件 / 可观测性

middleware、telemetry、测试工具

也就是说,从"最简单的问答"到"多步自主 agent",它用一套心智模型全接住了。


五、为什么是它:生态与规模

技术选型不能只看设计漂亮,还得看有没有人用。AI SDK 目前:

  • 周下载量约 2000 万+
  • GitHub 26k+ star、680+ 贡献者
  • 支持 100+ 模型、16+ provider(OpenAI、Anthropic、Google、xAI 等)
  • 官方支持 React / Next.js / Vue / Svelte / Node.js,Python 版在 beta

在 JS/TS 生态里,它基本是做 AI 应用的事实标准。生态成熟还带来一个隐性好处:遇到问题,大概率别人已经踩过、已经有答案。


六、这个系列接下来写什么

这一篇是全景地图,后面每一篇钻进一个具体能力,依然是"讲清原理 + 少量示意代码"的路子:

  1. 快速上手 —— 从零跑通第一个例子,再升级成流式聊天应用
  2. 文本生成与流式 —— generateText / streamText,最核心的两个 API
  3. 结构化输出 —— generateObject / streamObject,让模型稳定产出 JSON
  4. 工具调用与 MCP —— 让模型学会"调用外部能力"
  5. Agents —— 从单次调用到多步自主
  6. AI SDK UI —— 前端如何几行代码接上
  7. 流式协议 Stream Protocol —— (已发布)前后端如何"边想边说"
  8. AI SDK Harnesses —— 直接跑 Claude Code / Codex 等成品 agent
  9. 多模态与 Provider 抽象 —— 图片/语音/embedding、以及"一行换模型"背后的机制

小结

  • 接大模型的痛点是重复的胶水代码:各家 API 不一、流式要自己拼、前端还要再缝一遍。
  • AI SDK 用一个词解决它——统一:一套 API,换模型只改一行。
  • 记住三大块:Core(和模型对话)、UI(前端接数据)、Harnesses(跑现成 agent)。
  • 能力覆盖从问答到多步 agent,加上成熟的生态,是 TS 世界做 AI 应用的默认选择。

下一篇,我们不谈概念,直接动手:5 分钟跑通第一个例子


参考:AI SDK 官方文档 · Introduction · AI SDK 官网