AI Skill 从零开始

AI Skill是写给 AI 关于某项技能的说明书,让 AI 模型在需要这项技能时,自动加载和规范使用这项技能

什么是 AI Skill(技能)

AI Skill 简单来说,就是写给 AI 关于某项技能的说明书,让 AI 模型在需要这项技能时,自动加载和规范使用这项技能

要理解为什么需要 Skill,先要知道没有 Skill 前我们都可能遇到什么问题:

  • 相似任务没有复用,浪费 token
  • 实现缺乏规范和约束,产出结果不达预期
  • 相似任务需要重复编写提示词,同样浪费 token 和时间

举个简单的场景:让 Agent 帮忙压缩图片,不同的 Agent 可能处理的方法不一样,它可能会编写一段压缩脚本进行压缩,也可能调用外部工具进行压缩,而压缩图片这个任务可能在不同时间段内被多次调用,每一次 Agent 做出的选择都可能不一样,给出的压缩质量和结果也不一样

聪明的你会发现:这种重复性任务让长期失忆的 Agent 在多次分析思考中,浪费大量 Token,而且产出不稳定,想要达到比较稳定的结果,提示词就要花更多时间让它变得严谨,于是你把压缩图片的流程都写在一个文档,让 Agent 每次进行图片压缩时,都根据文档的流程执行,恭喜你发明了 Skill!

使用现成的 Skill

Skill 的概念爆火之后, 催生了大量现成的 Skill,以及 Skill 商城,我们可以跳过繁琐的 Skill 开发流程,直接使用别人提供的、经过市场验证的 Skill:

安装Skill

Skill 可以在不同 AI Agent 中使用,一般在 Agent 的使用文档中也会提供 Skill 的使用过程,不同 Agent 的 Skill 使用可能有一些细节上的不同,但使用规范一般都是统一的:

通过命令行执行 npx skills add 指令进行 skill 的安装,一般在 skill 商城中都会提供完整命令:

npx skills add https://github.com/vercel-labs/skills --skill find-skills

执行命令后,会问你全局安装还是局部安装?安装给哪些Agent 使用?再次确认安装

在不同的 Agent 中,Skills 存放的目录会有所不同,安装后可以在目录中看到具体的 Skill:

  • claude:.claude/skills/
  • cursor:.cursor/skills/
  • copilot:.copilot/skills/
  • 通用:.agents/skills/

调用

Agent 都会将 Skill 的描述,和当前用户的对话内容进行匹配,判断需要调用哪些 Skill,在Agent 思考过程中,会输出 Read(./agent/skills/xxx/SKILL.md) 或 Used xxx,这就代表 skill 被匹配上了:

自动调用

在 Skill 匹配不灵敏无法触发自动调用,或存在多个相似 Skill 希望调用指定某个时,就需要手动匹配 Skill,一般在对话框中通过输入 / 来触发 Skill 的手动选择,在不同的 Agent 调用方式可能不同,可以查阅对应 Agent 使用手册

手动调用

Skill 指令

指令 别名 用途 示例
npx skills add <source> 安装技能包,支持GitHub简写/URL/本地路径 npx skills add vercel-labs/agent-skills
npx skills list ls 查看已安装的技能列表 npx skills list -g
npx skills find [query] 交互式搜索或按关键词查找技能 npx skills find react
npx skills remove [skills] rm 卸载已安装的技能 npx skills remove frontend-design
npx skills check 检查已安装技能是否有可用更新 npx skills check -g
npx skills update 更新已安装技能到最新版本 npx skills update frontend-design
npx skills init [name] 创建新的 SKILL.md 模板 npx skills init my-skill

add 指令选项

选项 用途
-g, --global 安装到用户全局目录(跨项目生效)
-a, --agent <agents> 指定目标AI工具(如 claude-code、cursor、opencode)
-s, --skill <skills> 安装仓库中指定技能(* 表示全部)
-l, --list 仅列出仓库中可用技能,不安装
--copy 使用复制模式安装(默认为软链接)
-y, --yes 跳过所有确认提示(适合CI/CD)
--all 安装所有技能到所有AI工具

手写一个Skill

目录结构

一个技能放在一个单独的文件夹,文件夹中至少要有一个核心的、标准的 SKILL.md 文件,这个文件必须是全大写的 SKILL + 小写 .md 后缀,其他目录或文件可选,比如:

  • .cursor/
    • skills/
      • vue/
        • SKILL.md (核心文件,必备)
        • examples/ (示列文件夹,可选)
        • references/ (参考文档文件夹,可选)
        • scripts/ (可执行脚本文件夹,可选)
        • assets/ (skill 用到的资源文件夹,可选)

SKILL.md

身份信息

SKILL.md 作为入口文件,有固定的内容格式,在文件顶部通过 YAML 配置块包裹Skill 的核心信息:

  • name:技能名称,Skill 的唯一标识(必填)
  • description:技能描述/除非技能的条件(必填,AI 依靠它进行技能匹配)
  • license:许可证名称/指向 Skill 附带的许可证文件
  • compatibility:环境和依赖说明(系统、权限等等),最长 500 字符
  • metadata:自定义键值对,用户扩展元数据(作者、版本号等)
  • allowed-tools:允许使用的工具列表(多个值空格分割,实验性功能)

name 和 description 为必填字段,其规范和建议如下:

  • name:最多 64 个字符,只能包含小写字母、数字和连字符,推荐使用 动词 ing 形式进行命名,比如:processing-pdfs、analyzing-spreadsheets
  • description:包含两部分内容:这个 Skill 是做什么的?什么时候应该调用这个 Skill?

description

---
name: your-skill-name
description: Brief description of what this Skill does and when to use it
---

正文内容

Skill.md 的正文可以包括以下内容,至少包含 Instructions 内容,其他内容可视情况编写:

  • Instructions:逐步说明,告诉 AI 每一步具体的执行步骤
  • Examples:示例,帮助 AI 理解场景、边界和期望的输出
  • Background:技能背景和约束、环境依赖、注意事项、限制条件等
  • 附加资源文件:脚本、模板、字体等

skill 示例

优秀案列

在技能商店中,热门的技能描述文件非常复杂和严谨,如果靠用户手动编写 SKILL.md 文件,不仅耗费大量时间,而且还不够严谨,所以一般都会让 AI 自己编写 AI Skill

自动编写 Skill

skill-creator 是一个用于创建 Skill 的 Skill,其核心完成了这几件事情:

  • Decide what you want the skill to do and roughly how it should do it(弄清楚用户想要创建一个什么技能,以及这个技能的大概实现逻辑)
  • Write a draft of the skill (写一份技能的草稿)
  • Create a few test prompts and run claude-with-access-to-the-skill on them(根据技能草稿,编写几个 Prompt 提示词,并调用 AI 运行这些提示词)
  • Help the user evaluate the results both qualitatively and quantitatively(帮助用户对运行结果进行评估)
  • Rewrite the skill based on feedback from the user's evaluation of the results (and also if there are any glaring flaws that become apparent from the quantitative benchmarks)(根据用户对结果的反馈/发现的明显缺陷,来重写技能)
  • Repeat until you're satisfied(一直重复直到满意)
  • Expand the test set and try again at larger scale(扩大测试范围,并进行更大规模的尝试)

skill 示例

尝试编写

  1. 安装 skill-creator
npx skills add https://github.com/anthropics/skills --skill skill-creator
  1. 在 AI Agent 中调用:

帮我实现一个Skill:检查用户指定网址的 SEO 情况,并生成 SEO 报告,报告需包含性能指标、SEO 最佳实践等,报告中需对有待改进的内容进行清晰描述以及具体调整建议。

Agent 的思考过程中,会看到调用了 skill-creator:

skill生成

  1. 等待任务完成后,测试新 Skill

skill目录

skill调用

Skill 的工作原理

Skill 采用「渐进式披露」的方式,让 Agent 在不同阶段加载 Skill 不同程度的信息,让 Agent 可以尽可能管理更多 Skill 的同时,减少上下文的空间消耗

Skill 的渐进式披露分为三个阶段:

  • 发现阶段:对话开始时,Agent 扫描所有可用的 Skill 文件夹,读取每个 Skill 身份信息(name 和 description)等,Agent 通过这些信息可以知道这个 Skill 用来做什么,以及什么时候应该调用
  • 激活阶段:当 Agent 执行时判断需要调用某个技能时,就会将对应 SKILL.md 文件内容都加载到上下文中,并进行分析
  • 执行阶段:Agent 按照 Skill 的说明执行任务,执行过程中,Agent 可能会根据说明调用附带的脚本、阅读案列、参考资料等等,最终完成任务