AI 编程工具正在经历「npm 时刻」——但 npm 踩过的坑一个没少

AI 编程工具正在经历「npm 时刻」——但 npm 踩过的坑一个没少

过去半年,AI 编程圈子最热的赛道是什么?Agent、长上下文、MCP 协议——大家都在争「谁的模型更强」、「谁的上下文更长」。

但 Vercel 的选择不一样。

今年 1 月,Vercel 创始人 Guillermo Rauch 在 X 上扔出一个 CLI 工具:npx skills add。你说不出这算模型升级还是架构突破,它做的事很简单——一行命令,给你的 AI 编程助手装一套能力包。

发布五个月,这个名为 vercel-labs/skills 的开源仓库在 GitHub 上拿到了 2.4 万星标。skills.sh 上的头号技能包 find-skills,安装量冲到 230 万次。

而它支持的工具已经超过 68 个:Claude Code、Cursor、Codex、Gemini CLI……几乎所有主流 AI 编程助手,都在它的安装列表里。

这不是一个功能更新。这是 AI 编程工具层正在经历的一次结构性迁徙——从「提示词工程」到「能力工程」。但历史也告诉我们,每一次「npm 化」的浪潮,便利总是和安全风险打包寄到。

一、它到底干了什么?——一行命令装一套「土规矩」

先看最直观的部分。

npx skills add vercel-labs/agent-skills,回车。几秒钟后,你的 Claude Code 就多了一套 React 和 Next.js 的工程规范,外加一套设计准则。下次它写代码,自动按这套规矩来。

每套「技能包(skill)」本质上是一个文件夹。核心是一份带 YAML 头的 SKILL.md,写清楚两件事:这个技能是什么,什么时候该用。文件夹里还能放参考文档、模板和专门的 scripts/ 目录——里面是能直接执行的脚本。

它解决的痛点特别实在。

大语言模型懂通用的编程语言和框架,但它不懂你项目的「土规矩」:你的代码风格、命名习惯、踩过的坑。以前这些只能靠你每次开新对话一遍遍复述,现在打包成一个 skill,装一次,长期生效。

装完还能像管 npm 包一样管它:list 看装了哪些,update 一键更新,remove 删掉。底层是一套共享规范,你给 Claude Code 装的,换到 Cursor 照样跑。

要是连装都嫌麻烦,还有更轻的玩法:不装,直接用。一条 npx skills use,把技能临时拉过来,管道一接喂给 Claude,用完即走,连本地目录都不会「弄脏」。

听起来像极了 npm——只不过这次装的不是代码库,是「能力」。

二、拆解:这不是一个新功能,是一步生态棋

2.1 历史重演:Vercel 的老手艺

很多人会误以为这是 Anthropic 或 Cursor 的功能。但它来自 Vercel——一个以 Next.js 闻名、靠「开发者体验」卡住前端生态入口的公司。

当年 Vercel 靠 next.js 改变了前端部署的体验:写代码、预览、上线,一套命令搞定。开发者一旦用上,就很难走出这套体系。

今天的故事如出一辙。Claude Code、Cursor、Codex、GitHub Copilot、Windsurf……全是被支持的对象,不是竞争对手。skills CLI 把它们一股脑接进来,统一一个入口。

入口背后是什么?是 Vercel 在 AI 工具层复制它做过的事:先把碎片化的经验封装成可复用、可分发、可版本管理的模块,然后卡住分发入口。

当年它靠 Next.js 卡住了部署入口。如今它想在 AI Agent 这一层,把同样的故事再讲一遍。

2.2 从 prompt 到 package:能力工程取代提示词工程

更根本的变化在底层范式。

过去一年,AI 编程的核心交互是 prompt engineering——工程师把经验转化成语言,让模型在每次对话中理解。但这种方式有一个天花板:模型不会记住你上个月定下的编码规范,每次对话都是重新磨合。

Skills 的解法是把「经验」从语言中抽离出来,变成可安装、可版本管理的模块。AI 能力的边界,不再取决于你怎么描述,而取决于货架上能取下来哪些包。

这是一个根本性的变化:从「这一次怎么说」到「这件事以后都这么干」。

Vercel 还做了一个点睛的设计——Find Skills。这是一个「找技能的技能」。你说一句「帮我做 X」,它就替你跑完一整套流程:搜索、筛选、装上最匹配的那个。技能选择时会看安装量、比来源,热门的优先,来路不明的会提醒你注意。

AI 第一次有了自己的「能力搜索引擎」。你不必知道有哪些技能、叫什么名字,只管说要干嘛,剩下的交给它去找。

更值得注意的用户群是那些借 AI 写代码的设计师、产品经理、内容创作者——他们没有工程化的习惯,git 提交、文档规范全靠 AI 兜着,反而最需要现成的技能包。Find Skills 等于给了他们一个不用懂行也能调兵遣将的入口。

三、框架:「npm 化」的经典三层结构——和一层缺失

Vercel Skills 的架构可以抽象为三层模型,这也是过去二十年所有包管理生态的标准结构:

第一层:分发层(Package Manager)——skills CLI。提供 add、list、update、remove、use 等操作,统一管理能力的安装和更新。这一层解决的是「怎么装」的问题。

第二层:发现层(Registry + Search)——skills.sh 排行榜 + find-skills 能力搜索。让用户能发现技能、比较热度、找到匹配。这一层解决的是「装什么」的问题。

第三层:信任层(Trust)——缺失。没有任何内建的代码签名、安全审查或沙箱机制。这一层本该解决的是「能装吗」的问题。

而恰恰是第三层的缺失,让 Vercel Skills 的「npm 时刻」带上了一个危险的注脚。

四、推演:每一次「标准化」都伴随安全黑洞

4.1 npm 的教训:装的是代码,炸的是构建

2022 年,npm 生态爆发了供应链安全危机——恶意包通过 npm 分发,窃取凭证、植入后门,影响数千个项目。npm 用了将近十年才建立起 npm audit、code signing、2FA 验证等安全机制。

但 npm 装的是纯代码。数据和指令分得开,运行在隔离的构建环境中。

skill 把这条边界直接抹掉了。它是提示词、代码、完整权限三样捏在一起——一个 SKILL.md 就能改写智能体的行为,还直通你的文件系统、网络和 shell。

npm 的雷顶多炸构建产物,skill 的雷直通你的本地凭证和整个代码库。

4.2 Snyk 的数据:不是理论风险

Snyk 的 ToxicSkills 研究报告做了首次系统的生态审计:对 ClawHub 和 skills.sh 上的 3984 个技能进行扫描,发现 36.82%(1467 个)存在安全缺陷,其中 13.4%(534 个)是严重级——涵盖恶意软件分发、提示词注入、密钥泄露。

平均每七八个技能里就有一个能直接坑到你。

另一家机构 Koi Security 审计 2857 个技能,查出 341 个恶意载荷。

攻击路径主要有两条:一是走 scripts/ 目录,让 AI 跑去陌生 IP 下载东西就地执行,或偷读你的 SSH、AWS 配置;二是直接在 SKILL.md 的文本里下毒——AI 把攻击者的隐藏指令当成正经工作说明来读,照做不误。

最狠的还会专门偷智能体存着隐私对话的记忆文件。

注意一个重要的时间差:npm 生态在安全领域积累了近十年,而 AI skills 生态从爆发到第一次安全审计,只隔了几个月。

4.3 ClawHub 的呼应:这不是一家的事

Rauch 发布 skills 当天,ClawHub(另一套智能体技能市场)的创始人 Peter Steinberger 第一反应是:「酷!得跟 ClawHub 同步一下。」

不是竞争,是对齐。这说明行业已经意识到:技能包分发不是一个产品的功能,而是一个需要标准的基础设施层。

但基础设施的建设速度,远赶不上技能包的发布速度。Snyk 数据显示,技能包的日发布量从 1 月的不到 50 个飙升至 2 月的 500+,十倍的增速——恶意包的增长速度同样在加速。

五、落到行动

AI tooling 的「npm 时刻」已经到来。能力工程取代提示词工程,这个方向不可逆。但历史不会因为「方向正确」就跳过安全这一课。

三轮不同的行动者,面对的问题不同:

如果你是开发者——把技能当代码看。装前读一遍 SKILL.md,对 scripts/ 目录格外小心。一个查天气的技能张口要读你服务器的 SSH 密钥,它要这个干什么?下载量大不等于安全,真正该看的是来源和权限。

如果你是 AI 工具平台——马上建立安全基线。代码签名、沙箱执行、权限声明——这些 npm 花了十年建立的机制,你需要在几个月内做出来。而且你面对的局面更复杂:skill 的权限模型远宽于 npm package。

如果你是企业决策者——不要等生态成熟再入场。AI skills 的效率和标准化潜力是真实的。但在建立内部技能的白名单机制、执行安全审计之前,不要放开第三方技能包的安装权限。

——

一行命令装好能力,固然很爽。但这条路上,npm 踩过的坑一个都不会少,只会以更大的破坏力提前到来。

参考来源:
- GitHub - vercel-labs/skills
- skills.sh - The Agent Skills Directory
- Snyk - ToxicSkills Research Report

滚动至顶部