ai

一个与提供商无关的 TypeScript 工具包,用于跨任意模型提供商和 UI 框架构建 AI 驱动的应用程序和智能体。

TypeScriptNOASSERTIONFramework
⭐ GitHubhttps://github.com/vercel/ai
25,892
Star 数
+0
Star 增速
2026年7月30日
最后更新
0
点击数

1. 项目概述

AI SDK (vercel/ai) 是一个与提供商无关的 TypeScript 工具包,由 Vercel 和 Next.js 团队创建,用于构建 AI 驱动的应用程序和智能体——为开发者提供单一统一的 API,以跨数十个模型提供商和 UI 框架生成文本、结构化数据和智能体工作流。

2. 背景与定位

AI SDK 的创建是为了解决 AI 应用开发中反复出现的痛点:每个模型提供商(OpenAI、Anthropic、Google 等数十家)都推出自己的 SDK、请求格式和流式传输协议,迫使开发者在每次切换模型或添加备用提供商时都要重写集成代码。AI SDK 的核心使命是将这种差异抽象到一个一致的接口之后——generateTextstreamTextgenerateObject 和智能体基元无论背后使用哪种模型,都以相同的方式工作。

与类似项目相比,AI SDK 的差异化优势在于:

  • 在客户端与框架无关(Next.js、React、Svelte、Vue、Angular),同时在服务端与运行时无关(Node.js、边缘运行时、无服务器函数)。
  • 内置网关(Vercel AI Gateway),通过单个模型字符串即可访问 16+ 家提供商的 100+ 个模型,无需安装单独的提供商包即可开始使用。
  • 智能体视为一等公民概念ToolLoopAgent),而不是对聊天补全的简单封装,原生支持工具调用、持久的长运行工作流和沙盒代码执行。
  • Core(服务端/边缘逻辑)、UI(客户端钩子)和 RSC(流式 React Server Components)之间保持严格分离,以便团队可以只采用他们需要的层级。

3. 功能分类

  • 🤖 模型提供商(40+ 个包)—— 将统一 API 连接到特定 LLM 供应商和推理平台的适配器。

    • @ai-sdk/openai@ai-sdk/anthropic@ai-sdk/google —— 三个最广泛使用的提供商。
    • @ai-sdk/xai@ai-sdk/mistral@ai-sdk/groq@ai-sdk/cohere —— 其他主要的托管模型提供商。
    • @ai-sdk/amazon-bedrock@ai-sdk/azure@ai-sdk/google-vertex —— 云平台原生模型访问。
    • @ai-sdk/openai-compatible —— 用于任何兼容 OpenAI 的推理端点(自托管或第三方)的通用适配器。
  • 🎙️ 语音与音频(7 个包)—— 用于转录和语音生成的提供商。

    • @ai-sdk/deepgram@ai-sdk/assemblyai@ai-sdk/revai@ai-sdk/gladia —— 语音转文本转录。
    • @ai-sdk/elevenlabs@ai-sdk/cartesia@ai-sdk/lmnt@ai-sdk/hume —— 文本转语音和语音合成。
  • 🎨 图像与视频生成(6 个包)—— 用于视觉媒体生成的提供商。

    • @ai-sdk/replicate@ai-sdk/fal@ai-sdk/black-forest-labs —— 图像生成和托管模型推理。
    • @ai-sdk/luma@ai-sdk/klingai@ai-sdk/minimax —— 视频和多模态生成。
  • 🖼️ UI 框架集成(5 个包)—— 用于构建聊天和生成式界面的客户端钩子。

    • @ai-sdk/react@ai-sdk/vue@ai-sdk/svelte@ai-sdk/angular —— 特定框架的聊天/补全钩子。
    • @ai-sdk/rsc —— 用于生成式 UI 的流式 React Server Components 支持。
  • 🧩 智能体基础设施(10+ 个包)—— 用于自主和持久智能体的构建块。

    • ai(核心 ToolLoopAgent)—— SDK 核心的工具调用智能体循环。
    • @ai-sdk/mcp —— 用于工具互操作性的模型上下文协议客户端/服务端支持。
    • @ai-sdk/workflow@ai-sdk/workflow-harness —— 持久的长运行智能体工作流。
    • @ai-sdk/sandbox-vercel@ai-sdk/sandbox-just-bash —— 用于智能体的沙盒代码执行环境。
    • @ai-sdk/harness-claude-code@ai-sdk/harness-codex@ai-sdk/harness-opencode —— 与流行的编码智能体框架的集成。
  • 🛠️ 开发者工具(6 个包)—— 用于构建和运行 AI SDK 应用的支持基础设施。

    • @ai-sdk/gateway —— 到 Vercel AI Gateway 的统一路由。
    • @ai-sdk/otel —— 用于可观测性的 OpenTelemetry 插桩。
    • @ai-sdk/devtools@ai-sdk/tui —— 调试和终端 UI 工具。
    • @ai-sdk/provider@ai-sdk/provider-utils —— 新提供商包实现的低级契约。

4. 核心亮点

  • 统一的模型 API —— 通过更改单个字符串即可在 OpenAI、Anthropic、Google 和 100+ 个其他模型之间切换,无需重写应用程序逻辑。
  • 默认使用 Vercel AI Gateway —— 开箱即用地访问主要提供商,无需安装单独的提供商 SDK,并提供集中式速率限制和备用路由。
  • ToolLoopAgent 基元 —— 一等公民的智能体抽象,具备推理控制、工具调用和运行时上下文,而不是手动的聊天补全循环。
  • 结构化输出生成 —— generateObject/Output.object 通过 Zod(或 Valibot)生成经过模式验证的 JSON,消除了脆弱的基于提示词的 JSON 解析。
  • 持久工作流和沙盒 —— 可在重启后存活的长运行智能体工作流,并为需要安全运行代码的智能体提供沙盒执行环境。
  • 与框架无关的流式 UI —— 相同的流式聊天/生成式 UI 钩子可在 Next.js、React、Svelte、Vue 和 Angular 中通用。

5. 按角色的使用场景

  • 普通开发者 —— 在 Next.js/React/Vue/Svelte 应用中使用一致的 API 构建聊天机器人、副驾驶和生成式 UI 功能,无论底层模型是什么。
  • DevOps/SRE —— 使用 @ai-sdk/otel 进行可观测性监控,使用 Vercel AI Gateway 进行跨模型提供商的集中式速率限制、备用路由和成本跟踪。
  • 数据/研究科学家 —— 使用 generateObjectToolLoopAgent 原型化结构化数据提取和多步推理流水线,无需手动编写特定于提供商的请求格式。
  • 项目经理 —— 通过其庞大的贡献者基础、每周下载量和活跃的发布节奏(AI SDK 6/7)来评估项目的成熟度,作为长期维护的信号。

6. 快速开始

找到你需要的内容 —— 浏览提供商目录API 参考,以确定符合你使用场景的提供商包或基元(generateTextstreamTextToolLoopAgent)。

安装并集成

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

const { text } = await generateText({
  model: 'openai/gpt-5.4', // 通过 Vercel AI Gateway 路由
  prompt: 'What is an agent?',
});

编码智能体用户还可以使用 npx skills add vercel/ai 将 AI SDK 技能直接添加到代码仓库中。

贡献 —— 阅读 CONTRIBUTING.md;该项目目前优先处理高质量的问题(清晰的复现步骤、失败的测试),而不是未经请求的大型拉取请求,因此在开始实质性工作之前,请先查看问题跟踪器。

7. 项目结构

ai/
├── packages/              # 所有已发布的包(核心、提供商、UI、智能体)
│   ├── ai/                 # 核心 SDK:generateText、streamText、ToolLoopAgent
│   ├── openai/ anthropic/ google/ ...  # 模型提供商适配器
│   ├── react/ vue/ svelte/ angular/ rsc/  # UI 框架集成
│   ├── mcp/ workflow/ sandbox-vercel/     # 智能体基础设施
│   └── provider/ provider-utils/          # 用于构建新提供商的契约
├── apps/
│   └── docs/               # ai-sdk.dev 文档站点
├── content/                # 文档源内容
├── examples/               # 可运行的示例应用程序
├── skills/                 # 编码智能体技能定义
├── tools/                  # 内部构建/开发工具
└── CONTRIBUTING.md

packages/ 下的每个文件夹都是一个独立版本控制的 npm 包;提供商包实现了 packages/provider 中定义的共享契约,因此它们可以插入相同的 generateText/streamText API。

8. 相关生态

  • Next.js —— AI SDK 伴随构建且最常部署在一起的框架。
  • Vercel AI Gateway —— 默认的路由层,无需按提供商设置即可访问 100+ 个模型。
  • Vercel Sandbox —— @ai-sdk/sandbox-vercel 用于智能体代码执行的安全执行环境。
  • Zod / Valibot —— 用于结构化输出生成的模式验证库。
  • 模型上下文协议 (MCP) —— @ai-sdk/mcp 为跨智能体生态系统的工具互操作性而实现的开放协议。
  • LangChain / LlamaIndex —— 通过专用的适配器包作为可选的编排层提供支持。

9. 许可证

该项目在 Apache License 2.0 下分发。

  • ✅ 可免费使用、修改和分发,包括用于商业和闭源产品。
  • ✅ 包含来自贡献者的明确专利授权。
  • ❌ 不提供任何担保;贡献者对因其使用而产生的损害不承担责任。
  • ℹ️ 修改后的文件必须带有说明已进行更改的提示,并且在分发中必须保留许可证/版权声明。

10. 常见问题

问:我需要为每个模型提供商准备单独的 API 密钥吗?
答:不需要——默认情况下,AI SDK 使用单个模型字符串(例如 'anthropic/claude-opus-4.6')通过 Vercel AI Gateway 路由请求,不过你也可以安装特定的提供商包(如 @ai-sdk/anthropic)进行直接连接。

问:我可以获得结构化、经过模式验证的输出而不是原始文本吗?
答:可以——使用带有 Output.object(或 generateObject)的 generateText 和 Zod 模式,即可从模型获取类型化、已验证的 JSON。

问:AI SDK 支持哪些前端框架?
答:Next.js、React、Svelte、Vue 和 Angular 都有专用的 UI 钩子包,并且核心流式基元是与框架无关的。

问:如何构建一个可以运行代码或使用工具的智能体?
答:使用核心 ai 包中的 ToolLoopAgent,直接定义工具或通过 @ai-sdk/mcp 为模型上下文协议工具服务器定义工具;将其与 @ai-sdk/sandbox-vercel 配对以进行沙盒代码执行。

问:贡献的最佳方式是什么?
答:请先查看 CONTRIBUTING.md——维护者目前优先处理清晰的错误报告、最小复现和失败的测试,而不是未经请求的完整实现拉取请求。

11. 快速链接

12. 总结

AI SDK 为 TypeScript 开发者提供了一种一致的方式来调用任何主流 LLM、生成结构化数据并构建使用工具的智能体——由庞大的提供商生态系统、原生框架集成以及 Vercel 的网关/沙盒基础设施提供支持。它最适合希望避免供应商锁定、通过一行代码更改切换模型,并从简单的聊天机器人扩展到持久、沙盒化的智能体工作流而无需切换工具包的构建生产级 AI 功能的团队。