关于 ai-sdk
ai-sdk 是用于构建 AI 应用的 TypeScript 工具包,支持文本生成、结构化输出、工具调用、Agent、嵌入和 UI 集成。此指导技能强调查阅与已安装版本匹配的文档,而非依赖记忆。
主要功能
- 01文本与结构化生成
- 02工具调用和 Agent 抽象
- 03嵌入与 UI 集成
- 04匹配版本的文档指导
- 05用于本地调试的 AI SDK DevTools
适用场景
- 01构建 TypeScript AI 应用
- 02实现带工具调用的 Agent
- 03调试请求、响应和 Agent 运行
- 04根据已安装的 SDK 版本核对 API
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ marcioaltoe/ 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 钩子是最常变更的 API 之一,因此编写客户端代码时尤其要谨慎。
切勿凭记忆编写 AI SDK 代码。 务必根据项目中实际安装版本的文档和源代码,核实每个 API、选项和模式。
使用随包提供且版本匹配的文档
ai 包会将完整文档和源代码打包在 node_modules 中。这些内容始终与已安装的版本匹配,因此应优先参考它们,而不是依赖记忆。
- 确认已安装
ai。检查node_modules/ai/,或在依赖ai的 monorepo 中定位工作区包(例如apps/<name>/node_modules/ai/)。如果项目中任何位置都未安装ai,请使用项目的包管理器,将仅ai包安装到目标包中(例如pnpm add ai --filter <pkg>或npm install ai)。等任务需要时,再安装提供商包(例如@ai-sdk/openai)和框架包(例如@ai-sdk/react)。 - 阅读并搜索随包提供的文档
node_modules/ai/docs/(或<package>/node_modules/ai/docs/)以及源代码node_modules/ai/src/。 - 提供商包和框架包会在
node_modules/@ai-sdk/<name>/docs/(或<package>/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/,尤其是 agents 部分)或 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 已发生变化;遇到此类错误时,请重新检查当前文档和源码。