AI SDK
由 Next.js 团队打造的厂商无关 TypeScript 工具包,用统一 API 构建 AI 应用与智能体。
- 源仓库
- vercel/ai
- Star 数
- ★ 27k
- 最近更新
- 今天
- License
- NOASSERTION
- 主语言
- TypeScript
- FA 评分
- 50/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台OpenAI API · Claude API
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 已经使用 Next.js 或 React 的团队,需要在自己的应用里加入多轮对话式聊天界面。
- 不适合
- 使用非 JavaScript/TypeScript 技术栈的项目
- 希望开箱即得完整聊天产品、不想自己写集成代码的用户
- 源码审查
- 50/100 · 缺口较多
这个 Agent 能做什么,适合哪些场景?
AI SDK 是一个厂商无关的 TypeScript 工具包,用于构建 AI 驱动的应用与智能体,可运行在 Next.js、React、Svelte、Vue、Angular 等前端框架以及 Node.js 等运行时中。它通过统一 API 接入 OpenAI、Anthropic、Google 等模型提供商,默认走 Vercel AI Gateway,也可以直连各家 SDK 包。核心能力包括 generateText 文本生成、基于 zod schema 的结构化数据输出、ToolLoopAgent 工具循环智能体,以及提供 useChat 等钩子的 AI SDK UI 模块。该库以 npm 包形式发布,需要 Node.js 22+,主要作为库被引入到你自己的代码或应用中。
调用 generateText 等函数,把模型字符串(如 'anthropic/claude-opus-5.5')或提供商标识(如 anthropic('claude-opus-5-5'))解析为具体模型并发起推理,返回 { text } 文本结果。借助 Output.object 与 zod schema,可以把模型输出约束为结构化对象,例如菜谱的字段与步骤数组。ToolLoopAgent 类接受 model、system 和 tools,驱动模型在工具循环中反复调用工具,示例中用 openai.tools.localShell 在沙箱中执行 shell 命令并回传 stdout。在前端,AI SDK UI 提供 useChat 等框架无关钩子管理消息与状态;服务端通过 createAgentUIStreamResponse 把智能体的 UI 流返回给前端;InferAgentUIMessage 与 UIToolInvocation 用于类型化消息与工具调用组件。
- 已经使用 Next.js 或 React 的团队,需要在自己的应用里加入多轮对话式聊天界面。
- 后端工程师需要从大模型拿到严格符合 zod schema 的 JSON,例如菜谱、表单或分类结果,而不是自由文本。
- 需要让模型调用外部工具(如执行 shell 命令、生成图片)并处理中间状态的开发者。
- 希望在同一套代码里切换 OpenAI、Anthropic、Google 等提供商的团队,避免被单一模型厂商锁定。
- 使用 Svelte 或 Vue 构建生成式 UI,需要一个框架无关的聊天状态钩子库的前端开发者。
如何安装或部署这个 Agent?
需要本地安装 Node.js 22+ 以及 npm 或其他包管理器。
安装核心包:
npm install ai如需直连某家提供商而非使用 Vercel AI Gateway,安装对应 SDK 包:
npm install @ai-sdk/openai @ai-sdk/anthropic @ai-sdk/google如需前端 UI 钩子,按所用框架安装:
npm install @ai-sdk/react若使用 Claude Code、Cursor 等编码智能体,可添加 AI SDK skill:
npx skills add vercel/ai如何使用这个 Agent?
最小可用调用,走默认的 Vercel AI Gateway:
import { generateText } from 'ai';
const { text } = await generateText({
model: 'openai/gpt-6-astra', // use Vercel AI Gateway
prompt: 'What is an agent?',
});或者直连提供商 SDK:
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!',
});定义带工具的智能体并通过 Next.js App Router 以流式响应暴露:
import { imageGenerationAgent } from '@/agent/image-generation-agent';
import { createAgentUIStreamResponse } from 'ai';
export async function POST(req: Request) {
const { messages } = await req.json();
return createAgentUIStreamResponse({
agent: imageGenerationAgent,
messages,
});
}前端使用 useChat 消费消息与工具调用状态:
'use client';
import { useChat } from '@ai-sdk/react';
export default function Page() {
const { messages, status, sendMessage } =
useChat<ImageGenerationAgentMessage>();
// render messages and tool parts
}注意:源文档未说明各提供商的 API Key 具体配置方式与计费细节,实际接入前需查阅对应提供商文档。
这个 Agent 有哪些优点和局限?
- 统一的提供商抽象:同一段 generateText 代码可在 Vercel AI Gateway、@ai-sdk/openai、@ai-sdk/anthropic、@ai-sdk/google 之间切换,只需改模型标识。
- 与前端框架深度契合:AI SDK UI 提供框架无关的 useChat 钩子,官方示例覆盖 Next.js App Router 的服务端流式响应与工具调用渲染。
- 结构化输出内建:Output.object 直接接受 zod schema,省去手写 JSON 解析与校验。
- 智能体抽象清晰:ToolLoopAgent 把工具定义、循环执行与 UI 消息类型(InferAgentUIMessage、UIToolInvocation)串成一条链路。
- 由 Vercel 与 Next.js 团队维护,提供官方模板与文档站点 ai-sdk.dev。
- 默认依赖 Vercel AI Gateway 才能“开箱即用”访问全部提供商,团队成员需评估是否接受这一默认路径。
- 要求 Node.js 22+ 运行时,旧版本 Node 环境需要先升级。
- 仓库许可证标注为 NOASSERTION,采用前需自行确认具体许可条款。
- 示例中的模型标识(如 gpt-6-astra、claude-opus-5-5)随提供商更新而变,需要持续跟随文档调整。
- 源文档未说明离线运行方式,模型调用本质上依赖网络与外部 API。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| AI SDK 当前 | 50 · 缺口较多 | 代码库 / SDK免费 + 模型费 | ★ 27k | 今天 | TypeScript | OpenAI API · Claude API |
| Open Generative UI | 44 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 3.6k | 7 天前 | TypeScript | Claude API |
| Strands Agents | 30 · 缺口较多 | 代码库 / SDK免费 + 模型费 | ★ 8.9k | 今天 | TypeScript | OpenAI API · Claude API |
| MiniCode | 50 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 1.1k | 11 天前 | TypeScript | Claude API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据仅显示 Apache-2.0 许可、changeset 校验脚本对符号链接的防护(CWE-59)以及依赖版本锁定;未见针对 Agent 运行时的最小权限、用户确认、数据流透明或敏感数据处理说明,故这些项仅给 1。依赖安全因有明确版本锁定与 CI 校验给 2。回滚仅靠 changeset/版本机制间接体现,给 1。来源归属有 LICENSE 与 repository 字段,给 2。
package.json 脚本、engines 约束与 changeset 校验逻辑自洽,失败信息具体(如缺少 changeset、非法版本号),给 2;依赖可用性有 pnpm 锁定与 workspace 引用,给 2。但未执行验证,故不高于 2。
示例覆盖 WebSocket 聊天、结构化输出、Zod schema 等多场景,受众与场景给 2;但能力边界与触发精度缺乏面向 Agent 的显式声明,仅给 1。环境适配有 Node 版本约束,给 2。
仓库结构、changeset 版本管理与示例较完整,信息架构与命名稳定性给 2;安装说明在 package.json 中较薄,给 1;已知限制缺乏集中说明,给 1;维护责任因发布者未验证仅给 1;许可与版本变更给 2。
示例输出可直接复用,边际价值较高给 2;但成本收益缺乏量化基准,仅给 1。
有测试文件与 CI 校验脚本可追溯部分声明,但缺乏对 Agent 行为的端到端证据,claim 追溯与交叉印证仅给 1;事实与推断分离在文件中未明确标注,给 1。
- 发布者身份未经 FollowAgents 验证,维护责任与更新路径不明确。
- 仓库为通用 AI SDK 框架,非专用 Agent 产品,Agent 相关能力边界与触发精度缺乏显式说明。
- 未执行任何测试,所有评分基于静态源码,置信度低。
- 许可证元数据为 NOASSERTION,需人工核对实际许可条款。