站点图标 高效码农

AI代理不再“聪明不办事”!手把手教你玩转Google Antigravity Agent Skills

Google Antigravity 现已推出 Agent Skills:让你的 AI 代理真正“会做事”

摘要
Google Antigravity 中的 Agent Skills 是一种开放标准,用于扩展 AI 代理能力。通过在特定文件夹放置包含 YAML 前置元数据和详细指令的 SKILL.md 文件,开发者可以创建可复用的知识包。技能支持工作区专用(.agent/skills/)和全局(~/.gemini/antigravity/skills/)两种作用域,代理会在对话开始时看到技能列表,根据任务相关性自动读取并执行对应指令,实现渐进式能力增强。

近年来 AI 代理(Agent)越来越强大,但很多人发现:光靠通用大模型的对话能力,在面对重复性强、领域专精或团队规范的任务时,仍然显得“聪明但不靠谱”。Google Antigravity 最近推出的 Agent Skills 功能,正好解决了这类痛点。

今天我们就来完整拆解这项功能:它到底是什么?怎么创建?代理如何使用?应该遵循哪些最佳实践?全文基于官方文档和公告内容,带你一步步搞清楚。

(图:Google Antigravity 官方发布风格图,彩色光点构成的螺旋象征能力不断扩展)

什么是 Agent Skills?一句话说清楚

Agent Skills 是 Google Antigravity 引入的一种开放标准,允许开发者把针对特定任务的知识、流程、最佳实践甚至辅助脚本“打包”成一个文件夹,让 AI 代理在需要时自动调用。

简单比喻:
以前你得每次都长篇累牍地提示代理“请按照我们团队的代码规范来审代码”;
现在你只要写好一个 code-review 技能,代理以后一看到类似任务,就会主动去读这个技能的完整说明,然后按你写好的 checklist 来执行。

这不是简单地把提示词存档,而是结构化、可发现、可复用的能力扩展方式。

Skills 到底包含什么?

每个 Skill 至少包含一个核心文件:SKILL.md

这个 Markdown 文件由两大部分组成:

  1. YAML 前置元数据(Frontmatter) —— 代理靠这个决定要不要用你这个技能
  2. 正文指令 —— 真正指导代理该怎么做事

最简结构示例:

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

# My Skill

在这里写详细的指导语……

## 什么时候使用这个技能

- 当……的时候
- 需要处理……场景时

## 如何使用

1. 第一步……
2. 第二步……

必填字段只有 description,name 如果不写就默认用文件夹名(建议显式写,便于管理)。

技能存放位置与作用域对比

Antigravity 设计了两种存放路径,满足不同场景需求:

存放路径 作用域 典型使用场景 优先级
<workspace-root>/.agent/skills/<skill-folder>/ 当前工作区专用 团队专有部署流程、项目特定代码规范、内部工具链 高(优先读取)
~/.gemini/antigravity/skills/<skill-folder>/ 全局(所有工作区) 个人常用工具、通用测试模板、语言风格偏好

经验建议:
先把技能写在工作区里,跑通了、觉得好用再考虑提炼到全局。这样可以避免全局污染,也方便团队协作。

(图:典型的技能文件夹结构示意)

推荐的技能目录结构(非强制,但强烈建议):

.agent/skills/my-skill/
├── SKILL.md               # 必须存在
├── scripts/               # 可选:辅助脚本
│   └── lint.sh
├── examples/              # 可选:参考样例
│   └── good-pr.md
└── resources/             # 可选:模板、配置文件
    └── template.py

代理到底是怎么使用 Skills 的?(核心机制)

Antigravity 采用 渐进式披露(progressive disclosure) 策略,避免一次性塞给代理太多信息:

  1. 发现阶段(Discovery)
    每次新对话开始时,代理会获得当前可用的所有技能列表,只包含:

    • 文件夹名 / name
    • description
  2. 激活阶段(Activation)
    当用户任务出现时,代理根据 description 判断“这个技能看起来很相关”,才会去读取完整的 SKILL.md 内容。

  3. 执行阶段(Execution)
    读取后就把里面的指令当作高优先级上下文,严格遵循来完成任务。

关键点:
不需要在提示词里写“请使用 code-review 技能”,代理自己会判断。
但如果你明确写“用 code-review 技能帮我看这段代码”,可以强制激活。

(图:渐进式披露机制的概念示意)

如何创建第一个有价值的 Skill?手把手示例

我们用文档里给出的 code-review 技能来实际走一遍。

步骤 1:在工作区根目录创建文件夹

mkdir -p .agent/skills/code-review

步骤 2:创建 SKILL.md 并写入内容

---
name: code-review
description: Reviews code changes for bugs, style issues, and best practices. Use when reviewing PRs, checking code quality, or auditing implementation.
---

# Code Review Skill

当你被要求审查代码时,必须严格按照以下流程执行,不要跳步。

## 审查检查清单(必须逐项覆盖)

1. **正确性**:这段代码是否真正实现了需求描述的功能?
2. **边界情况**:空输入、极大/极小值、并发访问、超时、网络中断等异常是否被正确处理?
3. **风格一致性**:是否遵循项目已有的编码规范?(缩进、命名、注释位置等)
4. **性能与资源**:是否存在明显的 O(n²) 嵌套循环?是否频繁创建大对象?锁粒度是否过大?
5. **可维护性**:魔法值是否被常量替代?复杂逻辑是否抽取成小函数?是否有足够的单元测试保护?
6. **安全性**:是否存在注入点?密钥是否硬编码?依赖库版本是否已知漏洞?

## 反馈原则

- **具体**:不要写“这里有问题”,要写“第23行变量未初始化,可能导致空指针”
- **讲原因**:每次指出问题都要说明为什么重要(崩溃、性能、安全、可读性……)
- **给建议**:尽可能给出修改后的代码片段或重构方向
- **语气专业且建设性**:避免“你怎么这么写”“这太烂了”等评价性语言

## 优先级排序建议

高危问题(崩溃、安全、数据丢失)→ 中危(性能、并发隐患)→ 低危(风格、可读性)

保存后,重新开始一个新对话,贴一段代码并说“帮我 review 这段代码”,代理大概率会主动调用这个技能。

最佳实践:让你的 Skill 被代理真正“爱用”

  1. 保持专注
    一个 Skill 只解决一类问题。宁可拆成 5 个专注的小技能,也不要写一个“万能瑞士军刀”。

  2. Description 是生死线
    这是代理判断是否读取你的唯一依据。写得越精准越好。
    好例子:
    “Generates pytest unit tests following Google Python style guide and coverage >85% target.”
    差例子:
    “帮你写测试”(太泛)

  3. 脚本当作黑盒
    如果放了 scripts/lint.sh,在 SKILL.md 里写:
    “先运行 ./scripts/lint.sh --help 了解用法,再根据需要执行,不要直接阅读全部源码。”

  4. 加入决策树
    复杂任务建议写明“If … then … else …” 逻辑,帮助代理在上下文里快速选择路径。

  5. 持续迭代
    实际用几次后,把代理反馈里反复出错的地方补充到 SKILL.md,形成闭环。

常见问题 FAQ

Q1:我必须自己写所有技能吗?
不需要。官方和社区未来可能会共享一些通用技能,你也可以直接 fork 别人的仓库后放在自己全局目录。

Q2:技能之间会冲突吗?
有可能。如果两个技能的 description 都很匹配同一个任务,代理会根据相关性排序或综合使用。建议 description 写得足够特异。

Q3:可以放二进制文件或大模型权重吗?
文档未明确支持,建议只放文本、脚本、小模板。大文件会严重影响上下文加载效率。

Q4:全局技能和项目技能同时存在时,哪个优先?
项目技能(.agent/skills/)优先级更高,会覆盖同名全局技能。

Q5:代理真的会主动用技能,还是我得一直提醒?
设计目标就是让代理主动判断。只要 description 写得好,任务特征明显,代理会在绝大多数情况下自动激活。

小结:为什么 Agent Skills 很重要?

在 AI 代理从“能聊天”向“能落地”演进的当下,Skills 提供了一种轻量、标准、可组合的扩展方式。它让个人和团队把最宝贵的资产——流程知识、经验教训、最佳实践——变成可复用的“肌肉记忆”,从而大幅降低重复提示成本,提高交付一致性。

如果你已经在用 Google Antigravity,不妨现在就去 .agent/skills/ 目录下建第一个技能文件夹,写一个你每天都在重复教代理的事情。很可能用几次之后,你就会发现:原来 AI 也可以这么“懂事”。

退出移动版