你的 agent 提示词现在散落在哪儿?大概率是这个状态:给 Claude Code 写的一套规范躺在某个项目的 .claude 目录,给 Cursor 写的那套复制到了另一台机器,给 Codex 配的那份干脆只存在于聊天记录里。改一个规范要手动同步四五个地方,换个 agent 就得把提示词重新背一遍——这些明明是最该被版本管理、最该能一键安装的资产,却一直以复制粘贴的形态存在。
Vercel Labs 出手收了这股散劲。vercel-labs/skills 的定位一句话说得清楚:"The open agent skills tool - npx skills"——把存放在 Git 仓库里的可复用指令包(skill)变成可安装、可更新、可分发的依赖。仓库地址:github.com/vercel-labs/skills。
先摆实测数据(GitHub API,2026-10-14 实测):34,494 星、2,952 个 fork,MIT 许可(LICENSE 原文为 MIT License, Copyright (c) 2026 Vercel, Inc.),主语言 TypeScript,npm 包名就叫 skills。仓库创建于 2026 年 1 月 14 日,最近一次代码推送是 2026 年 10 月 9 日,官网 skills.sh,GitHub Trending 日榜在榜(10-14 实测单日新增约 190 星)。有媒体直接把它称作 "npm for agent skills"(mangodeveloper 标题口径)——这个类比不算夸张,它做的正是 npm 对 JavaScript 包做过的事,只不过包的内容是提示词。
和站内已有内容划个界限:我们此前写过 MCP 协议、MCP 客户端横评、MCP server 开发 SOP 与 Claude Code 子代理 等 agent 基建;本文角度不同——讲的是 skill 作为跨 agent 可移植层的分发基建(安装、更新、发现与生态标准之争),不重复协议本身。
skill 是什么:仓库里的可复用指令包
所谓 skill,本质是一份存放在 Git 仓库里的指令包:一份 SKILL.md 写清楚这个技能是什么、什么时候用、怎么用,再配上按需加载的参考资源。它不绑定任何一家 agent,也不绑定某个会话——而是像代码库一样有版本、有仓库、有作者。问题在于,skill 的内容形态早就在各家 agent 目录里自发存在,缺的从来不是写提示词的人,而是一个统一的安装与更新通道。skills 这个 CLI 补的正是这一层。
它的覆盖面说明了这层定位:README 口径覆盖 79 个 coding agents,OpenCode、Claude Code、Codex、Cursor 等加上其余 75 个。注意它的策略不是统一 agent 本身,而是统一 skill 这一层——厂商中立的分发层,谁家 agent 都能挂上来。
它和"提示词文件"的区别也值得说清。散落在 .cursor/rules 或某个 markdown 里的规则,本质是本地文本,没有作者、没有版本、没有依赖关系,别人想用得靠复制。skill 的形态是仓库加清单:一份 SKILL.md 说明用途与用法,配套资源按需加载,整包放进 Git 就有版本可回溯。从"文本"到"包",差的正是这一层基础设施。
命令全家桶:从 add 到 init
这个工具的命令表读起来就像一个包管理器该有的样子:
add:安装。默认装成项目级 symlink,--copy改为复制,-g装到用户级全局,-a指定目标 agent,--all -y是无人值守模式,适合 CI。use:写入临时目录,只把生成的 prompt 打印到 stdout,可以管道进任何 agent;也可以--agent claude-code直接交互启动。list/ls:列出已安装的 skill。find:v1.1.1 新增,fzf 风格的交互式关键词搜索。remove:卸载。update:更新已安装的 skill。check:检查新版本。init:脚手架一份新的 SKILL.md。
其中 use 的设计值得单独说。它回答的是"先试后装"这个真实场景:面对陌生仓库的 skill,你不必先装进项目,就能看它生成的 prompt 长什么样、会不会和现有配置打架。打印到 stdout 还意味着这个 prompt 可以管道进任何 agent——工具本身不假设你用哪家。对一个把"厂商中立"写在简介里的分发层,这是态度最诚实的一个命令。
一个典型工作流:从发现到更新
把命令串起来,日常使用是一条完整的链路。先在 skills.sh 的 24 小时 trending 里看最近什么被装得多,或者直接用 find 交互式搜索;看中了就 npx skills add owner/repo -a claude-code 装进指定 agent,-a 不写就按默认策略装;装完 list 确认落地情况。之后维护靠两个命令:check 看有没有新版本,update 批量更新已安装的 skill。放进 CI 更简单,--all -y 无人值守模式一条命令装齐全部。想评估一个陌生 skill 又不想弄脏项目,回到 use:临时目录里生成的 prompt 打印到 stdout,过一眼再决定装不装。发现、试用、安装、审计、更新——包管理器该有的闭环,这里一个不少。
symlink 与 --copy:安装机制的两个挡位
安装机制上,add 默认用 symlink 把仓库里的 skill 链进 agent 的技能目录。好处很直接:仓库一更新,各 agent 目录里链接指向的内容跟着变,多个 agent 共享同一份源,不用手动同步。但 symlink 有环境脾气——本文记录的诚实边界包括:在部分 Windows 与网络盘环境 symlink 会坏。所以 --copy 是标配兜底:宁可每个 agent 目录存一份副本,也不要一个装不上的链接。选链接还是选副本,本质是在"单源同步"和"环境健壮性"之间取舍,工具把两个挡位都给你了。
源格式与私有仓库:凭据复用,token 不落地
add 能识别的源格式覆盖了日常全部形态:GitHub shorthand(owner/repo)、完整 URL、直达仓库内某个 skill 的路径、GitLab、Azure DevOps、任意 git URL,以及本地目录。私有仓库则复用你机器上现有的 Git 凭据、GitHub CLI 或 SSH——不需要给这个工具单独配一套 token。文档还专门声明:所存的 GitHub CLI token 不会被读进工具进程(zendot 口径)。对一个要长期躺在开发机上的 CLI,这条声明比任何宣传语都实在。
限额:10MB、25MB 与 1000 个文件
下载侧有明确限额(mangodeveloper 口径):直接 URL 下载上限 10MB,解压后 25MB,归档最多 1000 个文件。超过可以用 SKILLS_DOWNLOAD_MAX_BYTES 等环境变量覆盖。这几个数字挡的不是正常 skill,而是"仓库里塞进整个模型权重"之类的滥用;对提示词包来说,10MB 本来就很宽裕。
skills.sh:遥测填充的发现平台
安装只是分发的一半,另一半是发现。官网 skills.sh 承担这个角色:目录由 CLI 安装时的匿名遥测填充,展示 24 小时 trending 与按 agent 的下载统计(dplooy 口径)。换句话说,这个目录不是编辑部精选,而是真实安装行为的聚合——哪个 skill 被装得多,一目了然。遥测默认开启,DISABLE_TELEMETRY=1 或 DO_NOT_TRACK=1 可关。默认开、手动关,这个组合见仁见智,但至少开关摆在明面上。
生态路线之争:GitHub 仓还是 .well-known
真正有意思的是水下的标准之争。Cloudflare 递交了一份竞争提案 agent-skills-discovery-rfc:用 RFC 8615 的 .well-known/skills/ 加 index.json,让机构在自有域名上发布 skill(dplooy 口径)。两条路线在渐进披露模式上是同构的——L1 索引元数据、L2 SKILL.md 正文、L3 按需资源,都分三层;分歧只在"东西放在哪儿被发现":Vercel 路线(GitHub 仓加 skills.sh)对独立开发者更轻,Cloudflare 路线(自有域名发布)对大机构更规范。而 Agent Skills 规范本身是开放的、与发现机制解耦——这场竞争争的是分发渠道,不是技能格式。对使用者这是好事:skill 写一次,两条路都能走。
渐进披露这三层值得多说一句,它解释了 skill 为什么"便宜"。L1 只把索引元数据放进上下文,agent 先知道"有哪些技能、各自管什么";命中了相关技能,才加载 L2 的 SKILL.md 正文;L3 的参考资源连读都不读,等真正需要时才按需取。上下文窗口是 agent 最贵的资源,一个 skill 常驻的成本因此被压到几乎为零,这也让"一个 agent 挂几十个 skill"在工程上成立。分发层解决装的问题,渐进披露解决用的问题,两者是配套的。
官方集合仓:五个 skill 的样板间
光有 CLI 不够,还得有示范性的 skill 内容。官方集合仓 vercel-labs/agent-skills 承担样板间角色。仓库地址:github.com/vercel-labs/agent-skills。数据同样实测(GitHub API,2026-10-14):32,367 星、2,825 个 fork,主语言 JavaScript,创建于 2025 年 12 月 8 日,最近一次推送 2026 年 8 月 28 日。需要说明:该仓库在 GitHub API 上未标注许可证、根目录也未检索到 LICENSE 文件,本文不断言其许可,引用其内容请以官网口径为准。
集合里的内容(agskills.dev/dplooy 口径)覆盖五块:
- react-best-practices:Vercel 工程团队的 React/Next.js 性能指南,40 多条规则分 8 类,按影响分级——Critical 级管消除请求瀑布流与包体优化,High 级管服务端与客户端取数,Medium-High 级管重渲染,Medium 级管渲染性能,Low-Medium 级管 JS 微优化。这种"按影响分级"的写法本身就是 skill 作者的范本:不是规则罗列,而是优先级排序。
- web-design-guidelines:100 多条 Web 界面规范审计,覆盖可访问性、性能与 UX。
- react-native-guidelines:16 条规则分 7 节。
- composition-patterns:复合组件、状态提升、避免布尔 prop 泛滥。
- vercel-deploy-claimable:在对话里直接部署,生成可"认领"的部署链接,所有权可以转移到用户自己的 Vercel 账号。
最后一条把 skill 的想象空间说全了:指令包不止能"教 agent 怎么写代码",还能"替用户把事办完"。
采用实证:联想词里的企业安装命令
一个分发工具成没成,看真实用户的安装命令。S1 联想词数据(2026-10-14 实测)里,"npx skills add" 的联想下拉出现了大量真实安装命令:wecomteam/wecom-unified、heygen-com/hyperframes、okx/agent-skills、tencent/wechatreading、alchaincyf/* 等。企业微信、腾讯、OKX 已经在通过这个 CLI 分发自家 skill——搜索联想不会凭空造出这些组合,它们来自真实发生过的安装行为。对"agent skills 生态"这个还不算老的概念,这是最硬的采用证据。
顺带交代背景:Vercel Labs 这个孵化器此前出过 v0;有作者(mangodeveloper,观点口径)评价 skills"是基建不是 demo",但也提醒项目年轻。34,494 星、九个多月、79 个 agent、几家大厂的安装命令——这些数字摆在一起,"基建"这个判断有支撑,但成色要留给时间。
还要给"npm for agent skills"这个类比本身泼一点冷水。它是媒体标题口径,不是官方定位;npm 用了十几年才建立起今天这样的注册表生态、安全审计与依赖解析体系,而 skills 才九个多月,注册表就是 skills.sh 一个目录,安全模型基本等于"git 仓加匿名遥测"。类比有助于理解定位,但不等于成熟度——把提示词当依赖管理的方向大概率是对的,这个具体实现还在早期。
诚实的边界
最后把边界说清楚,都是事实层面的:
第一,项目年轻。2026 年 1 月 14 日才建仓,至今九个多月,破坏性变更的风险真实存在,生产环境绑定前先锁版本。
第二,skill 的质量取决于作者与所配模型,CLI 只负责搬运,不负责内容优劣。一个写得含糊、和模型能力不匹配的 skill,装上去只会稳定地产出错误结果——分发层越顺滑,烂内容的传播也越顺滑。装之前先用 use 过一眼 prompt,比装完再卸载成本低。
第三,symlink 在部分 Windows 与网络盘环境会坏,遇到就换 --copy,这不是可选项而是必修课。症状通常是 agent 目录里链接指向空地址、skill 时有时无,换个环境复现不了——那基本就是链接在作怪。
第四,遥测默认开启,在意就设 DISABLE_TELEMETRY=1 或 DO_NOT_TRACK=1。
第五,集合仓 agent-skills 的许可证未明(API 未标注、根目录无 LICENSE 文件),商用其内容前自行核实。
延伸阅读
- MCP 协议资源篇:agent 与工具之间的标准语言
- Claude Code 子代理 SOP:多 agent 分工实战
- diagram-design SOP:在 Claude Code 里画编辑级图表
FAQ
Q1: skills 和 MCP 是什么关系,会互相取代吗?
不是一回事,也不互斥。MCP 统一的是 agent 与工具之间的调用协议,skill 统一的是提示词资产的分发。一个 agent 完全可以同时用 MCP 接工具、用 skills 装指令包。本文只讲后者,协议层可以参考站内 MCP 系列文章。
Q2: 用这个工具必须绑定 Vercel 生态吗?
不必。CLI 本身是 MIT 许可、厂商中立,装谁的 skill、用哪家 agent 都行。官方集合仓里有 Vercel 自家内容,但那是样板,不是强制。
Q3: symlink 和 --copy 到底怎么选?
单机、本地磁盘、多个 agent 想共享同一份源,用默认 symlink,仓库更新即全线更新;Windows 或网络盘环境 symlink 容易坏,或者想让每个 agent 的配置彼此隔离,用 --copy,代价是失去自动同步。
Q4: 私有仓库的 skill 怎么装?
add 支持 GitHub shorthand、完整 URL、仓库内路径、GitLab、Azure DevOps、任意 git URL 与本地目录。私有仓库复用机器上现有的 Git 凭据、GitHub CLI 或 SSH;按文档口径,所存 GitHub CLI token 不会被读进工具进程(zendot 口径)。
Q5: 怎么发现别人写的好 skill?
两个入口:skills.sh 的 24 小时 trending 与按 agent 下载统计(由安装遥测填充,可关),以及 find 命令的 fzf 风格交互搜索。注意目录排名反映的是安装热度,不等于质量认证。
结语
skills 真正改变的习惯是:提示词第一次有了包管理器。安装、卸载、更新、检查新版本、发现、脚手架——npm 对代码包做过的每一件事,它对着指令包又做了一遍。34,494 星是热度,联想词里企业微信、腾讯、OKX 的安装命令是采用,Cloudflare 的竞争提案是生态位。它还年轻,symlink、遥测、许可证这些坑都明明白白摆在面上。散落提示词的时代,该收编了。