AI 编程教程中文版
官方教程中文版04 · Rules / Workflows / Skills

Skills 与渐进加载

基于官方 Skills 文档解释 Antigravity Skill 的目录结构、SKILL.md、description、workspace/global scope 和 progressive disclosure。

Antigravity Skills 是扩展 agent 能力的开放标准。官方文档把 skill 定义为一个包含 SKILL.md 的文件夹,里面写着 agent 在特定任务中应该遵循的说明。

Skill 和 Rule、Workflow 最大的区别是:Skill 可以携带说明、最佳实践、脚本、示例和资源,并且按需加载。它适合“某类专业任务”,不适合普通一句提示词。

阅读目标:读完本章,你应该能创建一个最小 Skill,并写出能让 agent 正确触发的 description。

1. Skill 解决什么问题

官方文档说明,Skills 是 reusable packages of knowledge,用来扩展 agent 能做什么。每个 skill 可以包含:

  • 特定任务的操作说明。
  • 应遵循的最佳实践和约定。
  • 可选脚本和资源。

适合做成 Skill:

任务原因
Code review有稳定检查清单和反馈格式
Unit test generation有语言、框架、目录约定
Release audit需要脚本、清单、风险边界
Design screenshot review需要视觉标准和 viewport 规则
Data migration需要步骤、脚本和回滚策略

不适合做成 Skill:

  • 一次性任务。
  • 很短的个人偏好。
  • 单个 slash workflow 就能表达的流程。
  • 没有明确触发场景的知识堆叠。

2. Workspace Skill 与 Global Skill

官方文档列出两个 skill scope。

类型路径适合
Workspace skill<workspace-root>/.agents/skills/<skill-folder>/团队项目专属部署、测试、代码规范
Global skill~/.gemini/antigravity/skills/<skill-folder>/个人跨项目通用工具

官方也说明 Antigravity 默认 .agents/skills,并保留 .agent/skills 向后支持。

团队项目优先 workspace skill,因为它能随项目进入版本控制。个人跨项目工具才放 global skill。

3. 最小目录结构

官方给出的最小结构是:

.agents/skills/
└── my-skill/
    └── SKILL.md

SKILL.md 是唯一必需文件,但可以扩展:

.agents/skills/my-skill/
├── SKILL.md
├── scripts/
├── examples/
└── resources/

官方说明 agent 可以在执行 skill 时读取这些文件。

4. SKILL.md frontmatter

官方文档要求 SKILL.md 顶部有 YAML frontmatter。

---
name: my-skill
description: Helps with a specific task. Use when you need to do X or Y.
---

# My Skill

Detailed instructions for the agent go here.

字段重点:

FieldRequired说明
nameNo唯一标识;没有写时默认使用文件夹名
descriptionYesagent 判断是否使用 skill 的关键信息

description 决定触发质量。写得太泛,agent 容易误用;写得太窄,agent 可能想不到加载。

5. Progressive disclosure

官方文档说明 Skills 遵循 progressive disclosure:

  1. Conversation 开始时,agent 看到可用 skills 的 name 和 description。
  2. 如果某个 skill 看起来和任务相关,agent 才读取完整 SKILL.md
  3. agent 按 skill 说明执行任务。
flowchart TD
  Start["Conversation starts"] --> List["Agent sees skill names + descriptions"]
  List --> Match{"Description matches task"}
  Match -->|yes| Read["Read SKILL.md"]
  Match -->|no| Ignore["Do not load full skill"]
  Read --> Execute["Follow instructions / scripts / resources"]

这解释了为什么 Skill 不应该把 description 写成广告语。它是路由条件,不是封面文案。

6. 官方最佳实践怎么落地

官方 Skills 文档给出几条关键实践:

官方建议中文落地
Keep skills focused一个 skill 做一类任务,不做万能包
Write clear descriptionsdescription 用第三人称,写清何时使用
Use scripts as black boxes有脚本时先让 agent 跑 --help,不要先读全部源码
Include decision trees复杂任务加决策树,帮 agent 选路径

示例 description:

Reviews local code changes for correctness, edge cases, project conventions, tests, and release risk. Use before accepting implementation diffs or preparing a pull request.

这个描述比 “A powerful code review skill” 更好,因为它明确了任务、检查维度和触发场景。

深读:Skill、Rule、Workflow 怎么分工

Rule 是长期约束,Workflow 是可触发步骤,Skill 是带知识和资源的能力包。

如果一句话每次都要遵守,写 Rule。如果一串步骤经常重复,写 Workflow。如果这个任务需要专门方法、检查清单、脚本、模板、示例或参考资料,写 Skill。

不要为了显得高级把所有东西都做成 Skill。Skill 越多,description 路由越重要,维护成本也越高。

本章自检

完成本章后,用这 3 个问题检查自己是否真正理解:

  1. SKILL.md 里哪个 frontmatter 字段决定 agent 是否会加载 Skill?
  2. Workspace skill 和 global skill 分别适合什么场景?
  3. 为什么复杂 Skill 应该包含 decision tree 或脚本 --help 路径?

通过标准:你能写出一个最小 Skill 目录,并用一句清晰 description 说明它什么时候应该被触发。

官方来源

接下来去哪

本页目录