Skip to content

Gemini CLI Skills 是存储在 .gemini/skills/~/.gemini/skills/ 目录下的 Markdown 文件夹,通过 /skills 命令或对话触发,为代理提供专门的工作流指令。推荐用内置 skill-creator 自动生成框架;手动创建时,SKILL.md 的 frontmatter 必须包含 namedescription 字段,正文即为代理执行技能时的指令。

创建自定义 Skills

Skills 让你为 Gemini CLI 添加专属的工作流和领域知识。每个 Skill 是一个包含 SKILL.md 的文件夹,可以附带脚本、参考文档和资源文件。

用 skill-creator 快速创建(推荐)

直接告诉 Gemini CLI 创建新 Skill:

创建一个叫 "code-reviewer" 的 skill

Gemini CLI 会自动:

  1. 生成 my-new-skill/ 目录
  2. 创建带有 YAML frontmatter 的 SKILL.md 文件
  3. 创建标准资源目录:scripts/references/assets/

手动创建

如果偏好手动控制:

  1. 创建一个目录(如 my-new-skill/
  2. 在该目录内创建 SKILL.md 文件

Skill 目录结构

SKILL.md 是唯一必须的文件,但推荐以下完整结构:

my-skill/
├── SKILL.md          (必须)指令和元数据
├── scripts/          (可选)可执行脚本
├── references/       (可选)静态参考文档
└── assets/           (可选)模板和其他资源

SKILL.md 文件格式

SKILL.md 使用 YAML frontmatter 定义元数据,正文是 Markdown 格式的指令内容:

markdown
---
name: code-reviewer
description: >
  用此 skill 进行代码审查,支持本地改动和远程 Pull Request 两种模式。
---

# 代码审查助手

此 skill 指导代理进行彻底的代码审查。

## 工作流

### 1. 确定审查目标

- **远程 PR**:如果用户提供了 PR 编号或 URL,对远程 PR 进行审查。
- **本地改动**:如果是本地未提交的改动,使用 git diff 获取变更内容。

### 2. 审查维度

- 代码逻辑和潜在 Bug
- 安全漏洞(注入、认证、授权)
- 性能问题
- 代码风格和可读性

字段说明

字段说明
name唯一标识符,应与目录名保持一致
description告诉 Gemini 何时使用此 skill,描述越清晰越容易被自动触发
正文代理执行 skill 时遵循的指令,支持完整 Markdown 格式

Skill 的存储位置

位置路径作用范围
项目级.gemini/skills/当前项目,可与团队共享
用户级~/.gemini/skills/所有项目个人使用

管理 Skills

bash
# 查看所有已发现的 skills
/skills list

# 启用/禁用
/skills enable code-reviewer
/skills disable code-reviewer

# 重新加载(修改后不需要重启 CLI)
/skills reload

在对话中调用 Skill

Skills 可以自动触发(代理判断场景匹配),也可以手动调用:

# 手动触发
使用 code-reviewer skill 审查 src/auth.ts 的改动

# 列出可用 skills
/skills list

详细的 Skills 使用教程见 Skills 工作流Skills 入门教程

常见问题

Q: Skill 和子代理(Subagent)的区别是什么?

A: Skill 是工作流指令文件,代理读取后在主会话中执行;子代理是拥有独立上下文的专家代理实例。Skill 适合固化常用工作流,子代理适合需要隔离上下文的复杂任务。

Q: 如何让 Skill 调用外部脚本?

A: 在 SKILL.md 正文的指令中,告诉代理运行 scripts/ 目录下的脚本即可,例如 "运行 bash scripts/analyze.sh 来完成分析步骤"。代理会通过 run_shell_command 工具执行。

Q: 一个 Skill 可以引用另一个 Skill 吗?

A: 不可以直接嵌套调用,但你可以在 SKILL.md 的指令中提示代理"完成此步骤后使用 X skill",代理会根据描述判断是否调用。