使用 skills.sh 为 AI 智能体添加可复用能力
每次与 AI 编码智能体开启新对话时,你都是从零开始。智能体不了解你的目录结构、组件命名约定,也不清楚团队的部署规则。你不得不再次粘贴相同的上下文块,重复解释相同的约束条件。这既繁琐,又无法规模化。
skills.sh 提供了一个实用的解决方案:一个不断壮大的可复用智能体能力生态系统,安装一次即可在受支持的智能体和项目间使用。
核心要点
- 智能体技能(Agent Skills)是按需加载的可复用指令包,由一个包含 YAML frontmatter 和 Markdown 正文的
SKILL.md文件定义。 - 渐进式披露(Progressive disclosure)通过先加载技能名称和描述、仅在相关时才获取完整指令的方式,保持上下文窗口的精简。
skillsCLI 让你能够安装、限定作用域并在项目间搜索技能,无需编写任何自定义集成代码。- 技能与 MCP 服务器有所不同:技能用于可复用的基于提示词的工作流,而 MCP 适用于与外部系统进行类型化的、API 风格的交互。
- 在安装前务必检查第三方技能——尤其是包含脚本的技能——因为根据你的智能体配置,它们可能会在你的本地环境中执行。
什么是 AI 智能体技能?
智能体技能是一个结构化的指令包,AI 智能体可以按需加载。每个技能本质上都是一个目录,其中包含一个带有 YAML frontmatter 和 Markdown 正文的 SKILL.md 文件:
my-skill/
├── SKILL.md # Required: metadata + instructions
├── scripts/ # Optional: executable helpers
├── references/ # Optional: supplementary docs
└── assets/ # Optional: templates, configs
frontmatter 至少需要两个字段:
---
name: react-component-review
description: Reviews React components for performance issues, accessibility, and team conventions. Use when the user asks to review, audit, or check a component.
---
name 必须与目录名一致(小写字母,仅使用连字符)。description 是智能体用来判断是否激活该技能的依据——把它当作路由规则,而非标题。
渐进式披露如何让上下文保持精简
这是让技能能够大规模实用化的核心机制。智能体不会一次性加载所有技能内容,而是遵循三个步骤:
- 发现(Discovery) — 启动时,只有
name和description被加载到智能体的感知中。 - 激活(Activation) — 当用户请求在语义上与某个技能描述匹配时,智能体会读取完整的
SKILL.md正文。 - 执行(Execution) — 只有在指令需要时,才会获取技能内的脚本或参考文件。
这意味着你可以注册数十个技能,而不会让每次请求的上下文窗口臃肿不堪。
使用 Skills CLI 安装技能
skills CLI 是管理智能体技能的主要界面。你不需要构建任何集成——只需运行:
npx skills add vercel-labs/agent-skills
实际常用的选项:
# Install globally across all projects
npx skills add -g vercel-labs/agent-skills
# Install only specific skills from a repo
npx skills add vercel-labs/agent-skills --skill frontend-design
# List what's available before installing
npx skills add vercel-labs/agent-skills --list
# Search the ecosystem
npx skills find typescript
技能可以安装在项目作用域(与代码仓库一起提交,与团队共享)或全局作用域(仅供个人使用)。CLI 同样支持本地路径和完整的 Git URL。
Discover how at OpenReplay.com.
技能 vs. MCP 服务器和插件
技能不同于 MCP 服务器或智能体插件。MCP 服务器暴露的是带有结构化输入输出的类型化工具——当你需要对外部系统进行严格的 API 式控制时,它们非常合适。而技能则更简单:它们是纯 Markdown 指令,无需任何服务器基础设施即可引导智能体行为。
当你有一个目前以”复制粘贴提示词”形式存在的可复用工作流时,使用技能。当你需要智能体以受控、类型化的方式与外部 API 交互时,使用 MCP。
⚠️ 安全性提示
技能默认未经验证。skills.sh 平台会进行定期审计,但无法保证每个已发布技能的安全性。在安装任何第三方技能之前——特别是包含 scripts/ 目录的技能——请先阅读它。根据你的智能体或运行时环境,脚本可能在没有沙箱隔离的情况下在本地环境中执行。
正在形成的智能体技能标准
Agent Skills 格式最初源自 Claude,但现已在 agentskills.io 独立记录文档,并被多个平台支持,包括 OpenAI Codex、Spring AI 以及 Vercel 的工具链。它正在成为一种趋同的约定,虽然尚未成为最终确立的标准——但其核心结构(SKILL.md、YAML frontmatter、可选的支撑目录)已经足够稳定,可以在其基础上进行构建。
结论
如果你正在花时间反复向编码智能体解释相同的项目上下文,那么技能正是合适的工具。它们将复制粘贴的提示词转变为版本化、可共享的资产,仅在需要时才加载,从而让智能体的上下文保持精简,让你的工作流保持一致。运行 npx skills init 来搭建你的第一个技能,或浏览 skills.sh 寻找已经覆盖你工作流的现成技能。
常见问题
你需要一个支持 Agent Skills 约定的智能体或客户端。该格式本身只是带有 YAML frontmatter 的纯 Markdown,但只有当你的工具链实现了发现和激活模式时它才能工作。Claude 引入了这一概念,目前 Vercel 的工具链、Spring AI 以及 OpenAI Codex 等工具都已支持。
系统提示词始终被加载并应用于每次请求,这会在每一轮都消耗上下文。而技能仅在其描述与用户意图匹配时才会被加载。这种选择性激活让你可以维护数十种专门化行为,而无需预先支付 token 成本,使技能比单体式提示词更具可扩展性。
可以。skills CLI 接受本地路径和完整的 Git URL,因此你可以将技能托管在私有仓库中,并以与公共技能相同的方式进行安装。项目作用域的技能也可以直接提交到你的代码库中,这样它们就能与所支持的项目一起进行版本管理。
智能体根据与用户请求的语义相似度来决定激活哪个技能,因此重叠的描述可能导致路由不可预测。请将描述写成精确的路由规则——明确触发条件、文件类型或用户表达方式。如果两个技能确实存在重叠,可以考虑将它们合并,或者将其中一个的范围限定得更窄,以避免冲突。
Understand every bug
Uncover frustrations, understand bugs and fix slowdowns like never before with OpenReplay — the open-source session replay tool for developers. Self-host it in minutes, and have complete control over your customer data. Check our GitHub repo and join the thousands of developers in our community.