Vercel AI SDK Smithery Skill:一个教你不信自己记忆的 AI 开发 Skill

写 AI SDK 代码最让人崩溃的是什么?API 变了。你照着三个月前的教程敲完,跑不起来。你让 AI 帮你写,AI 用训练数据里旧版本的 API 给你生成一段看起来正确的代码,编译报错,改了两轮还是不对。Vercel AI SDK 月下载量突破两千万,从 v4 到 v6,几乎每个大版本都在改 API 签名,社区教程根本追不上版本号。

Smithery 上有个叫 ai-sdk 的 Skill,由 Vercel 官方发布,专门解决这个问题。它的 SKILL.md 开头就是一句在 Skill 里极少见到的话:“不要相信你自己的记忆。你记住的关于 AI SDK 的一切很可能已经过时了。”没有功能炫耀,没有版本号罗列,上来先把你最依赖的东西拆了,你自己的知识。

这个 Skill 的策略很直接:它不教你怎么用 AI SDK,它教你怎么查 AI SDK。它内置了一套严格的信息获取流程,要求 AI 在写任何一行代码之前,先去读 node_modules/ai/docs/ 里版本匹配的文档。不做推断,不靠记忆,不编 API。这意味着你和一个加载了这个 Skill 的 AI 对话时,它给出的代码不是从训练数据里捞出来的,而是从你项目里实际安装的那个版本的文档里推导出来的。

说真的,这篇文章的重点不是给你翻译这个 Skill 的功能列表。我想聊的是它背后的设计哲学,为什么“不信记忆”这个策略在 AI 工具链里可能比任何技术能力都重要。你品,一个 Skill,核心价值不是“知道什么”,而是“承认自己不知道什么”,这件事本身就很值得写一篇。

环境准备

前置条件不复杂。你需要一个 Node.js 项目,并且装了 ai 这个核心包。Smithery 平台上的 Skill 本身不需要额外安装,在对话界面里直接调用就行。但要让这个 Skill 真正发挥作用,你的项目必须先有 node_modules/ai/ 目录,因为它查文档的唯一入口就是这里。

安装就是标准的包管理器操作。用什么包管理器取决于你的项目,pnpm、npm、yarn 都行。注意一点:不要一上来就把所有 provider 包都装了,这个 Skill 的建议是按需安装,用到哪个 provider 再加哪个,避免 node_modules 膨胀。

前置条件整理下来就这几项:

条件 要求
Node.js 18+
包管理器 npm / pnpm / yarn 任一
ai 核心包 npm install ai(或用 pnpm/yarn)
Smithery 平台 已加载 ai-sdk Skill

初始化验证也简单,跑一行版本检查确认 ai 包已经就位。命令不用复杂,看一眼 node_modules/ai/package.json 里的 version 字段就行。这个版本号后面会反复用到,Skill 的每一次文档查询都以它为准。

Vercel AI SDK Smithery Skill:一个教你不信自己记忆的 AI 开发 Skill

常见的卡点主要在版本不匹配。你项目里装的是 v5,教程讲的是 v6,API 签名完全不一样。这个 Skill 的设计恰好就是针对这种情况的,它的文档读取策略始终绑定项目实际安装的版本,不会出现“教程是新版的,代码是旧版的”这种错位。

操作流程

这个 Skill 使用起来不像一条流水线,更像一个循环。你提出需求,它不急着写代码,先查文档,确认 API 签名和参数,然后再生成代码,最后跑类型检查验证。如果类型报错,回到查文档那一步重新来。整个过程的核心原则就一条:任何时候都不要凭记忆写 AI SDK 代码。

把它的操作流程拆开来,核心就五步:

  1. 确认文档可用。 ai 包已安装并且 node_modules/ai/docs/ 目录存在。这个目录是 AI SDK 自带的,npm install 时跟着包一起下来的,里面是完整的使用文档和 API 参考。Skill 会直接 grep 这个目录里的 .md 文件来找答案。如果文档里找不到,它再去 ai-sdk.dev/docs 官网搜,搜不到就明确告诉你“找不到”,不会编。
  2. 接入 AI Gateway(可选但推荐)。 如果你不想自己管理一堆 provider 的 API key,直接用 Vercel AI Gateway。一个环境变量搞定,模型用 provider/model 字符串引用。Skill 强调查可用模型必须用 curl 实时拉取,不要凭记忆写 model ID。
curl -s https://ai-gateway.vercel.sh/v1/models | jq -r '.data[].id'
  1. 用 ToolLoopAgent 构建 Agent。 Skill 不让手写 tool-calling 循环,跟 v6 的设计方向完全一致。Agent 定义好 model、instructions、tools 之后,可以在 API route、Server Action、streaming UI 里复用到同一个实例。类型安全是自动的,从 agent 定义到前端的 useChat 一路贯通。

Vercel AI SDK Smithery Skill:一个教你不信自己记忆的 AI 开发 Skill

  1. 用 DevTools 调试。 AI SDK DevTools 是单独的包,启动后打开 localhost:4983。你能看到每一次 LLM 调用的完整上下文:
    • 模型输入和输出
    • token 消耗
    • 工具调用链
    • 每步耗时

    多步 agent loop 出问题的时候,这个工具比打日志管用太多。Skill 特别提醒这是本地开发工具,不要部署到生产环境。

  2. 跑类型检查器验证。 Skill 有句话说得挺实在:大部分类型错误来自 AI 记忆里已经过时的 API,重新查文档就行。它还强调只设与默认值不同的选项,不要过度指定,代码越精简越不容易在版本升级时出问题。

关键设计

这个 Skill 最核心的设计决策可以归结为一句话:知识的权威来源不是模型的训练数据,而是项目中实际安装的包文件。 这个判断如果放到两年前,可能没什么特别的。但在 2025 年底 AI SDK v6 发布、API 大改的背景下,它成了区分“能用”和“能用对”的关键分水岭。

具体来看,Skill 把信息获取的优先级设计成了三层漏斗。

第一层:node_modules/ai/docs/,版本精确匹配,零歧义。

第二层:ai-sdk.dev/docs 官网,补充 bundled docs 没覆盖的内容。

第三层:明确承认不知道。这个漏斗的巧妙之处在于,它把“找不到”当成一个合法的输出状态,而不是一个需要用幻觉来填补的缺口。

大部分 AI 开发 Skill 的设计思路是“知道得越多越好”,这个 Skill 反其道而行,“知道得越精确越好,宁可少说也不错说”。

AI Gateway 的快速启动路径是另一个值得琢磨的取舍。装 provider 包、管理多套 API key、跟踪每个 provider 的 SDK 更新,这些操作在原型阶段全是摩擦。Gateway 把它们全部抽象掉,一个环境变量接入十几个 provider。代价是你依赖了 Vercel 的网关服务,极端场景下可能有延迟和可用性的顾虑。但对于 80% 的 AI 应用开发场景来说,这个 trade-off 是值的。

从设计角度看,这个 Skill 有一个明显的可改进点:它对 AI SDK 本身有极强的路径依赖。如果你的项目不用 Vercel AI SDK,这个 Skill 完全没有用武之地。它不是一个“帮你写 AI 代码”的通用助手,而是一个深度绑定单一技术栈的工具。但换个角度想,正是这种不追求通用性的专注,让它能在自己擅长的领域做到其他通用 Skill 做不到的精确度。

Vercel AI SDK Smithery Skill:一个教你不信自己记忆的 AI 开发 Skill

使用场景

这个 Skill 最适合的场景是你从零开始,用 Vercel AI SDK 搭一个 AI 应用,不管是 chatbot、content generation pipeline,还是后台 agent。你自己可能对 AI SDK 的 API 有个大概印象,但记不清最新版的参数顺序和类型签名。这时候让加载了 ai-sdk Skill 的 AI 来写代码,它不会跟你争论“我记得 v4 是这么用的”,而是直接去你的 node_modules 里翻文档。

第二个高频场景是给已有项目加 agent 能力。AI SDK v6 的 ToolLoopAgent 把 tool-calling 循环封装得很干净,但配置项很多。stopWhen 的条件怎么写,needsApproval 在什么场景下该设为 true,多个 tool 之间的执行顺序怎么控制,这些问题在 bundled docs 的 agents 章节里都有答案,Skill 知道去哪找。

调试多步 agent loop 是第三个典型场景。一个 agent 跑了 15 步,中间某一步的工具调用返回了预期之外的格式,后面全乱了。你不可能靠 console.log 逐个排查。AI SDK DevTools 能让你回放每一步的完整上下文,每一步的视图里至少能看到这四个维度的信息:

  • 模型输入和实际输出
  • tool 调用的参数和返回值
  • token 消耗明细
  • 每一步的耗时分布

Skill 引导你启动 DevTools 并定位问题步骤,效率比盲查高一个数量级。

这个 Skill 的边界也很清楚。如果你的技术栈不是 TypeScript、不用 Vercel AI SDK,它帮不上忙。如果你要的是“AI 帮我设计一个 agent 架构”这类高层次的架构讨论,而不是具体的 API 使用问题,它的价值也有限。它的定位非常窄:在 AI SDK 的版本迭代快到你靠记忆写不出正确代码的前提下,确保 AI 写的每一行代码都有据可查。

洞察与反思

聊完功能和设计,我想说一个可能有点反直觉的判断:这个 Skill 真正的价值,不在于它让你写 AI SDK 代码更快,而在于它暴露了当前 AI 辅助编程的一个结构性缺陷。我们习惯了让 AI“知道一切”,但现实是,快速迭代的开源项目的 API 每天都在变,AI 的训练数据永远是落后的。ai-sdk Skill 没有试图解决这个矛盾,它选择承认矛盾,并通过“强制查文档”来绕过它。

放在更大的背景下看,这其实触及了一个更深的问题:Skill 的设计到底应该追求“知识广度”还是“信息精确度”。大部分 AI 开发 Skill 走的是广度路线,覆盖面越宽越好,什么问题都能接。但代价是回答的精确度随版本迭代快速衰减。这个 Skill 走的是另一条路:窄到只覆盖一个技术栈,但在覆盖范围内做到零幻觉,至少在 API 签名这个层面上。

对比 LangChain、LlamaIndex 等框架的类似 Skill,你会发现一个有趣的现象。那些框架的 API 变化频率其实比 AI SDK 低,但它们的 Skill 反而更容易给出过时代码。原因很简单:覆盖面越宽的 Skill,越不可能强制 AI 在每次回答前都去查一遍文档。而 ai-sdk Skill 把“查文档”写成了硬约束,不是建议,是铁律。

我个人从这个 Skill 里看到的最大信号,不是技术层面的。是 Skill 设计的范式在悄悄转变:从“让 AI 更像一个全知全能的专家”,转向“让 AI 更像一个知道去哪找答案的工程师”。后者可能没那么炫,但在真实的生产环境里,知道自己的知识边界在哪、并且愿意承认不知道的 AI,比一个什么都敢编的 AI 有用得多。

资源地址

资源 地址
Smithery Skill 页面 https://smithery.ai/skills/vercel/ai-sdk
Vercel AI SDK 官网 https://sdk.vercel.ai
AI SDK GitHub https://github.com/vercel/ai
AI SDK 文档 https://ai-sdk.dev/docs
AI SDK v6 发布博客 https://vercel.com/blog/ai-sdk-6

总结

回到开头那个问题:写 AI SDK 代码最烦的是什么。答案是版本迭代带来的知识过期。这个 Skill 给出的解法不是帮你记住更多 API,而是让你从根本上换一种方式获取信息,信文档,不信记忆。这个思路放在 2026 年的 AI 开发生态里,适用范围可能远不止 Vercel AI SDK 一个工具。

如果你的日常工作里大量使用 Vercel AI SDK,这个 Skill 值得加到你的 Smithery 工具箱里。它不会让你写代码的速度变快,但会让你写出来的代码变对。对于生产环境来说,这两件事的优先级不需要我再多说。

换个角度想,如果未来每个快速迭代的开源项目都配一个这样的 Skill,AI 辅助编程的可靠性会提升一个量级。问题不在于 AI 能不能写出正确的代码,而在于它被问到的时候,是先查文档,还是先翻记忆。这个 Skill 选择了前者。我觉得这是对的。

skills资源

develop-ai-functions-example:Vercel AI SDK 的示例工厂

2026-7-13 12:37:55

skills资源实战分享

万字干货!Agent Skills从入门到精通

2026-4-13 22:45:37

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧