203 lines
5.9 KiB
Markdown
203 lines
5.9 KiB
Markdown
---
|
||
tags: [tools, cli, agent, skills, claude-code, cursor]
|
||
create time: 2026-04-24 10:00
|
||
---
|
||
|
||
# Skills 管理工具
|
||
|
||
## 概述
|
||
|
||
`skills` 是开源智能体技能生态的 CLI 管理工具([仓库](https://github.com/YishenTu/claudian)),用于在多种 AI 编程智能体(如 Claude Code、Cursor、Codex 等 40+ 种)之间统一安装、搜索、管理和创建 Agent Skills。
|
||
|
||
> **什么是 Agent Skill?** 它是一段可复用的指令集(定义在 `SKILL.md` 文件中),通过 YAML frontmatter 声明名称和描述,让 AI 智能体获得特定领域的专业知识。
|
||
|
||
**想一想:** 为什么需要一个统一的 skills 管理工具,而不是各智能体各自管理?
|
||
|
||
## 安装方式
|
||
|
||
```bash
|
||
# 从 GitHub 仓库安装
|
||
npx skills add vercel-labs/agent-skills
|
||
|
||
# 从完整 GitHub URL 安装
|
||
npx skills add https://github.com/vercel-labs/agent-skills
|
||
|
||
# 安装仓库中某个具体的 skill
|
||
npx skills add https://github.com/vercel-labs/agent-skills/tree/main/skills/web-design-guidelines
|
||
|
||
# 从 GitLab / 任意 git URL 安装
|
||
npx skills add https://gitlab.com/org/repo
|
||
npx skills add git@github.com:vercel-labs/agent-skills.git
|
||
|
||
# 从本地路径安装
|
||
npx skills add ./my-local-skills
|
||
```
|
||
|
||
## 核心概念
|
||
|
||
### 安装作用域
|
||
|
||
| 作用域 | 标志 | 存放位置 | 适用场景 |
|
||
|---------|------|----------|----------|
|
||
| **项目级** | (默认) | `./<agent>/skills/` | 提交到仓库,与团队共享 |
|
||
| **全局级** | `-g` | `~/<agent>/skills/` | 所有项目通用 |
|
||
|
||
### 安装方式
|
||
|
||
| 方式 | 说明 |
|
||
|------|------|
|
||
| **符号链接(推荐)** | 各智能体指向同一份文件,单一来源,更新方便 |
|
||
| **复制** | 每个智能体持有独立副本,适用于不支持符号链接的场景 |
|
||
|
||
```bash
|
||
# 全局安装
|
||
npx skills add vercel-labs/agent-skills -g
|
||
|
||
# 复制而非符号链接
|
||
npx skills add vercel-labs/agent-skills --copy
|
||
```
|
||
|
||
### 支持的智能体
|
||
|
||
工具支持 **40+ 种** 编程智能体,包括 Claude Code、Cursor、Codex、OpenCode、Windsurf、Copilot、Kiro CLI 等。安装时会自动检测已安装智能体,若无则提示选择。
|
||
|
||
> **注意:** Kiro CLI 用户需手动在 `.kiro/agents/<agent>.json` 中添加 `resources` 配置。
|
||
|
||
## 常用操作
|
||
|
||
```bash
|
||
# 列出仓库中可用技能(不安装)
|
||
npx skills add vercel-labs/agent-skills --list
|
||
|
||
# 安装指定技能
|
||
npx skills add vercel-labs/agent-skills --skill frontend-design --skill skill-creator
|
||
|
||
# 安装到指定智能体
|
||
npx skills add vercel-labs/agent-skills -a claude-code -a opencode
|
||
|
||
# 静默安装(CI/CD 友好)
|
||
npx skills add vercel-labs/agent-skills --skill frontend-design -g -a claude-code -y
|
||
|
||
# 一键安装所有技能到所有智能体
|
||
npx skills add vercel-labs/agent-skills --all
|
||
```
|
||
|
||
### 管理已安装技能
|
||
|
||
```bash
|
||
# 列出所有已安装的技能
|
||
npx skills list
|
||
npx skills ls -g # 仅全局
|
||
npx skills ls -a cursor # 仅指定智能体
|
||
|
||
# 交互式搜索技能(或按关键词搜索)
|
||
npx skills find
|
||
npx skills find typescript
|
||
|
||
# 更新技能
|
||
npx skills update # 全部更新
|
||
npx skills update my-skill # 单个
|
||
npx skills update -g # 仅全局
|
||
|
||
# 移除技能
|
||
npx skills remove # 交互式选择
|
||
npx skills remove web-design-guidelines # 指定名称
|
||
npx skills remove --all # 全部移除
|
||
npx skills rm my-skill # rm 别名
|
||
```
|
||
|
||
## 创建自定义 Skill
|
||
|
||
一个 Skill 就是一个包含 `SKILL.md` 的目录:
|
||
|
||
```markdown
|
||
---
|
||
name: my-skill
|
||
description: 这个技能做什么,何时使用它
|
||
---
|
||
|
||
# My Skill
|
||
|
||
智能体遵循的操作指令。
|
||
|
||
## 何时使用
|
||
|
||
描述适用场景。
|
||
|
||
## 步骤
|
||
|
||
1. 首先,做这个
|
||
2. 然后,做那个
|
||
```
|
||
|
||
**必填字段:** `name`(唯一标识,小写+连字符)和 `description`(简短说明)。
|
||
|
||
**可选字段:** `metadata.internal: true` 可将技能设为隐藏,仅 `INSTALL_INTERNAL_SKILLS=1` 时可见。
|
||
|
||
```bash
|
||
# 在当前目录创建 SKILL.md 模板
|
||
npx skills init
|
||
|
||
# 在子目录创建
|
||
npx skills init my-skill
|
||
```
|
||
|
||
### SKILL.md 的结构设计(教学者模式)
|
||
|
||
编写 skill 时,建议遵循以下结构让智能体更容易理解:
|
||
|
||
| 章节 | 目的 | 示例 |
|
||
|------|------|------|
|
||
| `name` + `description` | 告诉智能体这是什么 | "用于生成 Git 发布日志" |
|
||
| **何时使用** | 触发条件 | "在 `git log` 后使用" |
|
||
| **步骤** | 具体操作 | 分步指令 |
|
||
|
||
> **思考:** 为什么 description 需要写得简洁但具体?因为智能体依赖它来判断何时激活该 skill。
|
||
|
||
## 技能发现路径
|
||
|
||
CLI 会在仓库中按以下路径自动搜索 `SKILL.md`:
|
||
|
||
```
|
||
SKILL.md # 仓库根目录
|
||
skills/
|
||
.curated/ # 经过审核的技能
|
||
.experimental/ # 实验性技能
|
||
.system/ # 系统级技能
|
||
.agents/skills/
|
||
.claude/skills/
|
||
.cursor/skills/
|
||
...(各智能体专属目录)
|
||
```
|
||
|
||
也支持通过 `.claude-plugin/marketplace.json` 声明插件技能,兼容 Claude Code 插件市场生态。
|
||
|
||
## 跨智能体兼容性
|
||
|
||
所有技能遵循统一的 [Agent Skills Specification](https://agentskills.io),但部分特性仅部分智能体支持:
|
||
|
||
- **基础技能** — 所有智能体均支持
|
||
- **`allowed-tools`** — 大多数支持,Kiro CLI 和 Zencoder 不支持
|
||
- **`context: fork`** — 仅 Claude Code 支持
|
||
- **Hooks** — Claude Code 和 Cline 支持
|
||
|
||
## 环境变量
|
||
|
||
```bash
|
||
# 显示隐藏的 internal 技能
|
||
INSTALL_INTERNAL_SKILLS=1 npx skills add vercel-labs/agent-skills --list
|
||
|
||
# 关闭遥测
|
||
export DISABLE_TELEMETRY=1
|
||
# 或
|
||
export DO_NOT_TRACK=1
|
||
```
|
||
|
||
> **小贴士:** 在 CI 环境中遥测会自动禁用,无需额外配置。
|
||
|
||
## 相关资源
|
||
|
||
- [技能目录](https://skills.sh) — 发现和浏览公开技能
|
||
- [Agent Skills 规范](https://agentskills.io) — 统一规范文档
|
||
- [Vercel Agent Skills 仓库](https://github.com/vercel-labs/agent-skills) — 官方技能合集
|