关于 ai-sdk
ai-sdk 是 Vercel 提供的 TypeScript 工具包,供开发者构建 AI 应用,涵盖文本生成、结构化输出、工具调用、Agent、嵌入和界面集成。此技能强调依据项目安装版本的文档和源码核实 API,避免使用过时用法。
主要功能
- 01统一接入多家模型提供方
- 02生成文本与结构化输出
- 03调用工具并构建 Agent
- 04集成框架界面
- 05查阅与安装版本匹配的文档
- 06使用 DevTools 检查调用
适用场景
- 01在 TypeScript 项目中开发 AI 应用
- 02基于工具调用构建 Agent
- 03为应用添加模型生成与嵌入
- 04排查生成、工具调用及令牌用量
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ pedronauck/ skills --skill ai-sdk安装后在 Claude Code 中输入/ai-sdk确认已加载。
详细介绍
AI SDK 是什么
Vercel 的 AI SDK(npm 上的 ai 包)是一个用于构建 AI 应用的 TypeScript 工具包。它为文本生成、结构化输出、工具调用、Agent、嵌入和框架 UI 集成提供统一的 API。
重要:不要相信自己的记忆
你对 AI SDK 的记忆很可能已经过时。SDK 会随版本频繁变化——API 会重命名、移除和新增。你的训练数据几乎肯定包含已过时的 API、已弃用的模式,以及不再存在的模型 ID。useChat 等 UI hook 是变化最频繁的 API 之一,因此客户端代码尤其需要谨慎。
绝不要凭记忆编写 AI SDK 代码。 务必依据项目中实际安装版本的文档和源代码,核实每个 API、选项和模式。
使用随包提供且版本匹配的文档
ai 包在 node_modules 中附带完整的文档和源代码。它们始终与已安装的版本匹配,因此应以它们为准,而不是相信自己的记忆。
- 确保已安装
ai。如果node_modules/ai/不存在,请使用项目的包管理器(例如pnpm add ai)只安装ai包。等到任务需要时,再安装提供商包(例如@ai-sdk/openai)和框架包(例如@ai-sdk/react)。 - 阅读并搜索随包提供的文档
node_modules/ai/docs/和源代码node_modules/ai/src/。 - 提供商包和框架包会在
node_modules/@ai-sdk/<name>/docs/中附带各自的文档。 - 如果随包提供的文档中没有相关内容,请搜索 https://ai-sdk.dev/docs。可以在任意文档页面 URL 后附加
.md,以获取其 Markdown 内容;也可以通过https://ai-sdk.dev/api/search-docs?q=your_query搜索。 - 如果无法在文档或源代码中找到支持某个答案的内容,请明确说明——不要猜测。
AI Gateway:最快的入门方式
Vercel AI Gateway 是开始使用 AI SDK 的最快方式。它通过单一 API 提供对 OpenAI、Anthropic、Google 和其他提供商模型的访问,无需安装提供商包或管理多个 API 密钥。
设置步骤:
- 使用 OIDC 进行身份验证(适用于 Vercel 部署),或获取 AI Gateway API 密钥。
- 通过
AI_GATEWAY_API_KEY环境变量将其提供给应用。 - 使用
provider/model字符串引用模型。
有关确切的设置、身份验证和用法,请阅读随包提供的指南和 AI Gateway 文档。
选择模型
绝不要凭记忆使用模型 ID——模型会频繁发布和退役。编写引用模型的代码前,先获取当前列表。不要截断列表(例如使用 head),以便找到最新模型:
# All available models
curl -s https://ai-gateway.vercel.sh/v1/models | jq -r '.data[].id'
# Filter by provider (e.g. anthropic, openai, google)
curl -s https://ai-gateway.vercel.sh/v1/models | jq -r '[.data[] | select(.id | startswith("anthropic/")) | .id] | reverse | .[]'
如果同一模型有多个版本,请优先选择版本号最高的版本。
构建和使用 Agent
请使用 SDK 内置的 Agent 抽象(例如 ToolLoopAgent),而不是自行编写工具调用循环。为了实现端到端类型安全,客户端使用 Agent 时(例如通过 useChat),请从 Agent 定义推断 UI 消息类型。Agent 的使用方式因框架而异:检查 package.json 以确定技术栈,然后按照匹配的快速入门指南操作。
请在随包提供的文档(node_modules/ai/docs/,尤其是 Agent 相关章节)或 https://ai-sdk.dev/docs 中查找当前的 Agent、工具和类型安全 API。
DevTools
AI SDK DevTools 会捕获 AI SDK 调用——请求、响应、工具调用、令牌用量和多步运行——让你可以准确检查 Agent 的行为。开发时可使用它来调试生成过程。它是独立的包,仅供本地开发使用。
设置说明请参阅随包提供的 DevTools 文档。
保持 SDK 为最新版本
过时的安装版本是错误最常见的来源。请将已安装的版本与最新版本进行比较:
- 已安装版本:
node_modules/ai/package.json中的version字段。 - 最新版本: 运行
npm view ai version。
如果已安装的版本比最新版本落后一个或多个主版本,请告知用户当前使用的是旧版本,并建议在继续之前升级。迁移指南位于 https://ai-sdk.dev/docs/migration-guides。
完成更改后
运行项目的类型检查器。尽量精简——仅设置与默认值不同的选项,并查阅文档或源码确认默认值,不要过度指定。大多数类型错误都源于记忆中已经变更的 API;出现此类错误时,请重新查阅当前文档和源码。