SuperAPI AI 工具集

ai-sdk

编程与开发

查看项目

更新于 10-16 04:06

技能介绍

用途

AI SDK 技能用于回答关于 AI SDK 的问题,并帮助开发者构建 AI 驱动的功能。当开发者询问 AI SDK 函数(如 generateText、streamText 等),或需要实现 AI 功能时,可使用该技能。

前置条件

在搜索文档之前,先检查 node_modules/ai/docs/ 是否存在。如果不存在,仅使用项目的包管理器安装 ai 包(例如 pnpm add ai)。

此阶段不要安装其他包。提供商包(例如 @ai-sdk/openai)和客户端包(例如 @ai-sdk/react)应在后续根据用户需求按需安装。

核心原则:不要信任内部知识

关于 AI SDK 的所有内部知识都可能已过时或错误。训练数据中包含过时的 API、已弃用的模式和错误的用法。

使用 AI SDK 时应遵循以下流程:

  1. 确保已安装 ai 包(见前置条件)。
  2. 在 node_modules/ai/docs/ 和 node_modules/ai/src/ 中搜索当前 API。
  3. 如果本地未找到,搜索 ai-sdk.dev 文档。
  4. 绝不依赖记忆,始终对照源代码或文档进行验证。
  5. useChat 已发生重大变化,编写客户端代码前先查看 Common Errors。

模型与提供商选择

在决定使用哪个模型和提供商(例如 OpenAI、Anthropic、Gemini)时,除非用户另有指定,否则使用 Vercel AI Gateway 提供商。

始终获取当前模型 ID,绝不使用记忆中的模型 ID。在编写使用模型的代码之前,运行以下命令获取完整列表(最新模型在前):

curl -s https://ai-gateway.vercel.sh/v1/models | jq -r '[.data[] | select(.id | startswith("provider/")) | .id] | reverse | .[]'

将 provider 替换为相关提供商,如 anthropic、openai 或 google。使用版本号最高的模型(例如 claude-sonnet-4-5 优于 claude-sonnet-4,优于 claude-3-5-sonnet)。

代码编写要求

  • 更改后运行类型检查以确保代码正确。
  • 保持最小化:只指定与默认值不同的选项。不确定默认值时,查阅文档或源代码,而不是猜测或过度指定。
  • 如果找不到支持答案的文档,明确说明这一点。

查找文档

ai@6.0.34 及以上版本

在 node_modules/ai/ 中搜索捆绑的文档和源代码:

  • 文档:grep "query" node_modules/ai/docs/
  • 源代码:grep "query" node_modules/ai/src/

提供商包在 node_modules/@ai-sdk/<provider>/docs/ 中包含文档。

更早版本

  • 搜索:https://ai-sdk.dev/api/search-docs?q=your_query
  • 从结果中获取 .md URL(例如 https://ai-sdk.dev/docs/agents/building-agents.md)

类型检查失败时

在搜索源代码之前,先在 Common Errors 中 grep 失败的属性或函数名。许多类型错误由已弃用的 API 引起,这些 API 记录在 common-errors.md 中。

如果在 common-errors.md 中未找到:

  1. 搜索 node_modules/ai/src/ 和 node_modules/ai/docs/
  2. 搜索 ai-sdk.dev(针对更早版本或本地未找到的情况)

构建和使用智能体

创建智能体

始终使用 ToolLoopAgent 模式。在 node_modules/ai/docs/ 中搜索当前的智能体创建 API。

  • 文件约定:参见 type-safe-agents.md 了解智能体和工具的保存位置。
  • 类型安全:使用 useChat 消费智能体时,始终使用 InferAgentUIMessage<typeof agent> 实现类型安全的工具结果。

消费智能体(框架特定)

在实现智能体消费之前:

  1. 检查 package.json 以检测项目的框架/技术栈。
  2. 搜索该框架的快速入门指南。
  3. 遵循框架特定的流式传输、API 路由和客户端集成模式。

参考资料

  • Common Errors:重命名参数参考(parameters → inputSchema 等)
  • AI Gateway:网关设置和使用
  • Type-Safe Agents with useChat:使用 InferAgentUIMessage 实现端到端类型安全
  • DevTools:设置本地调试和可观测性(仅开发环境)