update-provider-models
作者 vercelupdate-provider-models 用于更新 vercel/ai 中的 provider model ID。适合在新增模型或移除废弃模型时使用,支持精确匹配搜索、顺序校验,以及对相关文件进行完整代码库更新。
该技能评分为 78/100,对于维护 Vercel AI SDK 内部模型目录的用户来说,是一条质量较稳健的目录条目。它的范围清晰,聚焦于新增和移除 provider model ID,提供了触发短语和工作流指引,相比通用提示词,能让 agent 在执行时减少猜测。不过,用户仍应预期这是一种仅基于文档说明的工作方式,不包含现成自动化能力,也没有针对安装的具体上手指导。
- 触发场景清晰:描述中明确覆盖了“add model”“remove model”“new model ID”等请求及相近表达。
- 执行层面实用:技能分别定义了新增和移除 model ID 的流程,并给出了精确匹配、保持排序、按顺序处理等具体规则。
- 基于仓库结构提供指引:内容提到需要搜索代码库以及受影响的 provider package 位置,给 agent 提供了比泛泛建议更明确的执行方向。
- 未附带支持文件或脚本,因此实际执行依赖 agent 正确理解并遵循文字说明,而不是直接运行打包好的自动化工具。
- SKILL.md 中没有提供安装命令或快速开始配置指引,这会降低目录用户对其“拿来即用”程度的判断清晰度。
update-provider-models 技能概览
update-provider-models 是做什么的
update-provider-models 是一套聚焦维护场景的工作流,用来在 Vercel AI SDK 代码库中新增模型 ID,或移除已经废弃的模型 ID。它适用于代码编辑任务,因为仅仅一句“更新这些 models”风险太高:模型 ID 往往会同时出现在多个 package、类型列表、测试和示例里。
谁适合使用这个技能
这个 update-provider-models skill 特别适合以下人群:在 vercel/ai 中维护 provider 支持的贡献者、根据 issue 处理 provider 模型变更的维护者,以及需要修改模型列表、但又不能漏掉次级更新位置的 agent。
这个技能真正解决的问题
大多数用户需要做的,并不只是一次简单的字符串替换。真正的任务是:找出某个模型的所有精确引用,更新正确的 provider package 和共享暴露面,保持原有排序,避免误改相似子串,并且在处理下一个模型之前,把当前这个模型的变更完整做干净。
为什么它比通用编辑提示更好
update-provider-models for Code Editing 的核心价值,在于减少靠猜的空间。这个技能提供了一套带明确约束的工作流,比如只做精确匹配搜索、多个模型请求按顺序逐个处理、示例文件命名规则等。之所以重要,是因为这里的错误通常都很隐蔽:改错 provider 暴露面、破坏字母排序,或者误改了名称相近的模型。
最适合与不适合的使用场景
适合在这些情况下使用:
- 给现有 provider 新增模型 ID
- 移除已废弃的模型 ID
- 处理包含多个模型新增/删除的 provider issue
不要指望它从零开始设计一个新的 provider 集成。这个技能的目标是更新已有 provider 的模型清单,而不是搭建新的 adapter 架构。
如何使用 update-provider-models 技能
如何安装 update-provider-models
一个实用的 update-provider-models install 命令如下:
npx skills add vercel/ai --skill update-provider-models
如果你的环境已经可以识别已安装的 skills,之后就可以直接点名这个 skill,并传入具体的 provider 和模型变更请求来调用它。
这个技能需要哪些输入
要让这个 skill 发挥最好效果,建议提供:
- provider 名称
- 每个模型是新增还是移除
- 精确的模型 ID
- 可信来源,比如 issue、changelog 或 provider 官方文档
- 这是单个变更还是批量变更
较弱的输入示例:
- “Update OpenAI models”
较强的输入示例:
- “Use
update-provider-modelsto addgpt-4.1-minito the existing provider model lists and examples invercel/ai. Check all exact matches only, preserve existing ordering, and show me every file changed.”
把模糊需求改写成高质量提示
一个好的 update-provider-models usage 提示,通常会包含范围、校验方式和输出预期:
Use update-provider-models for Code Editing in vercel/ai.
Provider: [provider name]
Changes:
- add [exact-model-id]
- remove [exact-model-id]
Requirements:
- search for exact matches only
- update all relevant provider and shared locations
- preserve current sort/order conventions
- if examples are needed, use kebab-case filenames
- process one model completely before starting the next
- summarize why each file changed
这种格式能有效降低最常见的失败模式:只改了一处列表,却漏掉了另一个 package 或测试里的对应位置。
在仓库里应该先看什么
建议先看:
skills/update-provider-models/SKILL.md
从仓库现有信息来看,这个 skill 很可能是单文件实现,因此 SKILL.md 不只是概览,而是实际的操作规范。先看其中的 “Critical Rules” 部分,再看新增/删除流程。
使用 update-provider-models 时最重要的工作流规则
上游 skill 特别强调了几条会直接影响输出质量的规则:
- 必须使用精确匹配,因为一个模型 ID 可能只是另一个模型 ID 的子串
- 在数组、union 和表格中都要保持现有排序
- 示例文件必须使用 kebab-case,且把点号替换成连字符
- 多模型请求要按顺序处理,一次完整做完一个模型
- 必要时不仅要更新主 provider package,还要同步更新相关的 AI SDK 暴露面
这些细节正是通用提示词最容易忽略的地方。
如何分别处理新增与删除请求
对于新增,应把任务视为“发现 + 插入”:
- 确认精确的 provider package,以及所有模型列表相关暴露面
- 找到能保持原有排序的插入位置
- 如果仓库约定要求补充示例或文档模式,也要一并更新
对于删除,应把任务视为“清理”:
- 先确认该模型确实已废弃,并且只针对精确 ID 下手
- 删除引用时不要误伤名称相近的模型
- 检查示例、测试或 typed union 中是否还提到了它
如何安全处理批量变更
这个技能明确偏向顺序处理。如果一个 issue 里包含很多模型变更,应该先把一个模型的完整流程做完,再开始下一个。这样可以避免 diff 混杂,也更容易在搜索上下文还比较聚焦时发现漏改文件。
避免误改的实用搜索策略
使用 update-provider-models 时,不要只依赖简单的子串搜索。应先搜精确字符串,再逐条检查命中结果,确认它指向的是同一个模型、同一个 provider 上下文。像 grok-3 和 grok-3-mini 这种名称,如果直接快速替换,很容易把本来正确的相邻条目也改坏。
什么样的输出才算好
一个高质量的 update-provider-models guide 输出,通常应包括:
- 更新了所有相关文件,而不只是最显眼的那一处列表
- 每个被编辑结构中的排序都正确
- 没有误改相似的模型 ID
- 能按文件清楚总结新增/删除内容
- 如果仍有歧义,给出置信检查或说明
update-provider-models 在什么情况下最省时间
这个技能在以下场景价值最高:
- 同一个模型 ID 分布在多个类型相关暴露面中
- 你在 provider 更新 issue 的时间压力下做修改
- 你把任务委托给需要明确护栏的 agent
- 某个 provider 下面有很多名称高度相近的模型变体
update-provider-models 技能常见问题
update-provider-models 只能用于 vercel/ai 吗?
它是按照 vercel/ai 的仓库结构和约定编写的。工作流本身也可以迁移到别处,但最高置信度的使用场景,仍然是在这个代码库里更新模型 ID。
它比直接让 agent “search and replace” 更好吗?
是的,如果你在意正确性,就更适合用它。update-provider-models skill 的设计就是围绕仓库特有风险展开的:精确匹配校验、列表排序、跨暴露面更新,以及顺序处理。通用提示也许改得更快,但更容易漏掉依赖文件,或者误伤相似命名的条目。
update-provider-models 对新手友好吗?
友好,前提是你已经能基本浏览仓库并检查 diff。它的工作流比较聚焦,也足够具体。不过新手仍然需要确认 provider 范围,并仔细检查搜索结果,尤其是在模型名称高度相似时。
可以用它创建一个全新的 provider 吗?
通常不行。它不是从零创建 provider package 的首选工具。它的定位,是为已有 provider 集成更新模型 ID。
如果我只有一个 provider issue,没有精确文件列表怎么办?
这正是它适合处理的常见场景。这个技能默认你会通过搜索来发现受影响的位置。你只需要提供精确模型 ID,并说明每个模型是新增还是移除即可。
什么情况下不该使用 update-provider-models?
如果请求本质上是在做以下事情,就不适合用它:
- 设计 provider 架构
- 修改与模型 ID 无关的模型能力或行为逻辑
- 不涉及代码变更的大范围文档重写
- 模型名称尚未确认的推测性更新
如何把 update-provider-models 用得更好
提供精确模型 ID 和可信来源
想提升 update-provider-models 的结果质量,最快的方法就是提供精确的模型字符串,以及对应的 provider 公告、文档页面或 issue 链接。这样 agent 才能区分哪些是已确认的 ID,哪些只是猜测。
明确指出 provider package
如果你已经知道受影响的 provider,就直接说清楚。“Add model-x” 远不如 “Add model-x to the Anthropic provider surfaces in vercel/ai.” 有效。这样可以减少误报,也能避免不必要的搜索。
要求按文件输出变更摘要
提升输出质量最有效的方法之一,就是要求对每个变更文件给出简短原因说明。这样更利于 review,也能快速暴露不完整的修改,尤其是在某个本该更新的暴露面被漏掉时。
在提示词里强制要求精确匹配校验
可以直接加上一条要求:
- “Verify every search hit is an exact model match, not a substring variant.”
这能直接命中这个仓库里最大的正确性风险。
要求编辑后重新检查排序
因为这个技能依赖保持现有排序规则,所以最好明确要求 agent 在插入或删除后再次检查列表顺序。这样可以抓住那些在 diff review 中最容易滑过去、但又不太显眼的缺陷。
多模型更新要逐个完成
如果是批量 issue,明确要求 agent 先完整处理一个模型,再进入下一个。这样搜索上下文会更精准,回滚和 review 也会简单很多。
要求做遗漏暴露面的最终校验
一个很强的补充指令是:
- “After edits, do one final search for the exact model ID to confirm no outdated references remain and no unintended references were changed.”
这一步最终扫描,能显著提高结果可信度。
使用 update-provider-models 时常见的失败模式
update-provider-models usage 中常见的问题包括:
- 误改了子串匹配结果
- 只在一个列表里添加了模型,却没覆盖所有必需暴露面
- 破坏了字母排序或仓库特定排序规则
- 模型名里有点号时,示例文件命名不正确
- 把多个模型更新混在一次混乱的处理里完成
首稿不完整时该如何迭代
如果第一版输出看起来不完整,不要用模糊的话术重新提要求。应当直接发起有针对性的第二轮:
- “Re-run update-provider-models for
model-idand verify all exact matches across provider package, shared types, tests, and examples. List any files considered but intentionally unchanged.”
这种迭代方式,比一句 “double-check this” 要有效得多。
一份实用的 review 清单
合并前请确认:
- provider 是否正确
- 每个模型 ID 的变更是否都是精确匹配
- 排序是否仍符合本地约定
- 如果新增了示例或测试,文件名是否符合规则
- 删除后是否还有遗留的过时引用
想从 update-provider-models for Code Editing 获得高置信度结果,这套 review 模式是最稳妥的做法。
