Appearance
Gemini CLI 的 Skills 系统让你把复杂的多步工作流打包成一个自描述的目录,AI 会在需要时自动激活。与总是加载的 GEMINI.md 不同,Skills 是"按需调用"的专业能力,不占用日常上下文。
Agent Skills 工作流技能
Skills 是 Gemini CLI 的可插拔专业能力系统。每个 Skill 是一个包含 SKILL.md 文件的目录,描述了一套专业工作流——例如"安全审计"、"数据库迁移"或"PR 代码审查"。
AI 会根据你的请求自动判断是否需要激活某个 Skill,而不是把所有技能内容一股脑塞进上下文。
技能发现层次(三级)
Gemini CLI 从三个位置按优先级加载 Skills:
| 级别 | 目录 | 范围 |
|---|---|---|
| 工作区 | .gemini/skills/ 或 .agents/skills/ | 当前项目(通常提交到 git) |
| 用户 | ~/.gemini/skills/ 或 ~/.agents/skills/ | 所有项目的个人技能 |
| Extension | Extension 安装目录 | 从 Extension 获取的技能 |
优先级:工作区 > 用户 > Extension。同名技能高优先级覆盖低优先级。
管理 Skills
REPL 内部命令
/skills list # 列出所有已发现的技能及状态
/skills reload # 从磁盘重新加载所有技能
/skills enable <name> # 启用某个技能
/skills disable <name> # 禁用某个技能
/skills link <path> # 通过软链接加载本地技能目录CLI 命令
bash
# 列出所有已发现的技能
gemini skills list
# 从 Git 仓库安装技能(安装到用户级别)
gemini skills install https://github.com/user/my-skill.git
# 安装到工作区级别
gemini skills install /path/to/skill --scope workspace
# 从 monorepo 的子目录安装
gemini skills install https://github.com/org/skills.git --path skills/security
# 通过软链接关联本地技能目录(开发用)
gemini skills link /path/to/my-skills-repo
# 卸载技能
gemini skills uninstall my-skill --scope workspaceSKILL.md 文件格式
每个技能目录必须包含一个 SKILL.md,格式示例:
markdown
---
name: security-audit
description: |
对代码库进行全面安全审计,检查 OWASP Top 10 漏洞、依赖安全性和敏感信息泄漏。
当用户提到"安全审计"、"检查漏洞"或"扫描安全问题"时激活。
---
# 安全审计技能
## 执行步骤
1. 扫描所有依赖的 CVE 漏洞...
2. 检查硬编码凭据...
3. 审查 SQL 查询注入风险...
(以下是详细的审计流程说明)关键:description 字段是 AI 决定是否激活这个技能的依据,要清晰描述适用场景。
技能目录结构
my-security-skill/
├── SKILL.md # 必须,包含 frontmatter 和详细说明
├── scripts/ # 可选,辅助脚本
│ └── scan.ts
└── templates/ # 可选,模板文件
└── report.md与 GEMINI.md 的区别
| 特性 | Skills | GEMINI.md |
|---|---|---|
| 加载时机 | AI 判断需要时按需加载 | 每次会话都加载 |
| 适合内容 | 专业工作流、复杂多步操作 | 项目背景、常规规范 |
| 作用范围 | 特定任务 | 全局背景 |
| 上下文消耗 | 按需,节省 token | 始终消耗 |
Skills 与 Claude Code Skills 的对比
Gemini CLI 和 Claude Code 的 Skills 系统基于同一个 Agent Skills 开放标准,SKILL.md 格式基本兼容:
| 特性 | Gemini CLI | Claude Code |
|---|---|---|
| 格式 | SKILL.md + frontmatter | SKILL.md + frontmatter |
| 用户级目录 | ~/.gemini/skills/ | ~/.claude/skills/ |
| 工作区目录 | .gemini/skills/ | .claude/skills/ |
| CLI 管理命令 | gemini skills | 通过 Claude Code 设置 |
| 互通性 | 基本可以共用 SKILL.md | 基本可以共用 SKILL.md |
常见问题
Q: AI 怎么决定要不要激活一个 Skill?
A: 完全根据 SKILL.md frontmatter 中的 description 字段。AI 会将你的请求与所有已知技能的 description 匹配,相关度高的会自动激活。所以 description 写得清楚、覆盖真实触发场景很重要。
Q: 技能激活了会影响上下文长度吗?
A: 会,但只在激活时才加载完整内容。每次会话开始时只加载技能的名称和简短描述(用于判断是否需要激活),全文只在 AI 决定使用时才注入。
Q: 已安装的社区技能安全吗?
A: SKILL.md 里的内容会直接作为 AI 的指令执行,来源不明的技能可能存在 prompt injection 风险。只安装信任来源的技能,并在安装前阅读 SKILL.md 内容。