AI 编程教程中文版
官方教程中文版Agents & Skills

创建 Skills

Gemini CLI 创建 Agent Skill 的判断标准:什么时候应该沉淀、结构如何保持小、如何避免把一次性任务过度工程化。

创建 Skill 的前提不是“这个功能很酷”,而是“这个任务会重复出现,而且每次都需要同一套步骤和约束”。

先跑通流程,再沉淀 Skill。没验证过的流程写进 Skill,只会把一次性混乱变成长期混乱。

创建前检查

问题如果答案是 no
这个任务会重复吗不要建 skill
流程已经跑通过吗先手工跑一次
输入输出能固定吗先整理契约
风险边界清楚吗先补安全说明
比 custom command 更复杂吗简单任务用 custom command

推荐目录

SKILL.md 是唯一必需文件,但真实 Skill 通常需要把确定性部分拆出来:

my-skill/
├── SKILL.md
├── scripts/
├── references/
└── assets/
  • scripts/ 放可重复执行的检查、转换、采集脚本。
  • references/ 放长规范、schema、API 说明、示例报告。
  • assets/ 放模板、样例文件、非执行资源。

Skill 激活后,模型会获得整个目录的读取权限。目录里不要放凭据、客户原始数据或本机专属路径。

官方发现层级包括 built-in、extension、user 和 workspace。个人长期能力放 ~/.gemini/skills/~/.agents/skills/;项目共享能力放 .gemini/skills/.agents/skills/。团队教程里要明确 scope,否则读者可能把个人 Skill 误提交到项目仓库。

SKILL.md 最小结构

SKILL.md 使用 YAML frontmatter。name 要和目录名一致,description 是触发器,必须写“什么时候用”,而不是泛泛描述能力。

---
name: code-reviewer
description: Review local code changes for correctness, security, and style. Use when the user asks to review a diff or PR.
---

# Code Reviewer

1. Inspect the changed files.
2. Run the bundled deterministic checks when available.
3. Report bugs first, then risks, then missing tests.

一个好的 description 应该包含触发词、任务边界和不该触发的边界。模型在激活前只看得到这段元数据。

官方也提供校验和打包脚本思路:先 validate,再 package。实际团队不一定直接使用官方脚本,但必须保留同等验收:frontmatter 可解析、name 与目录一致、description 能触发正确任务、目录里没有凭据和本机路径。

Skill 应该小

一个 skill 只解决一类任务。不要把“写文章、发站点、配图、SEO、GitHub 发布”塞进一个 skill。复杂流程交给工作流编排。

Skill 和 command 的取舍

情况建议
只需要一条固定 promptCustom command
需要脚本、模板、参考资料Skill
需要外部 API 或服务MCP / Extension
需要多个阶段和人工验收工作流 + Skill
还没复用超过 3 次先不要建 Skill

Skill 的价值在于按需加载完整能力包。越是低风险、短流程、单输入输出的任务,越应该先用 command 或普通文档,不要过度工程化。

创建方式

最快方式是让 Gemini CLI 使用内置 skill-creator 生成骨架。手工创建时,把 Skill 放到 .gemini/skills/<name>/.agents/skills/<name>/。如果是团队共享,放工作区目录并进入版本管理;如果只是个人能力,放 ~/.gemini/skills/~/.agents/skills/

本地开发独立 Skill 仓库时,用 gemini skills link . 链接测试。要分发给别人,可以作为 extension、单独 Git 仓库,或工作区内共享目录。

安装第三方 Skill 时不要直接跳过 consent。终端安装命令可能提供 --consent 这类跳过确认的选项,它适合自动化受控环境,不适合普通教程默认使用。

验收方式

创建后重启或执行 /skills reload,再运行 /skills list 检查是否被发现。触发测试要覆盖两类输入:一个应该激活 Skill,一个不应该激活 Skill。能区分这两类,说明 description 才算写对。

接下来去哪

官方来源

本页目录