在日常的 AI 辅助编程中,你是否厌倦了每次都要重复强调“请使用 Pytest”、“遵循 Google 代码规范”或“别忘了写注释”?Google Antigravity 推出的 Agent Skills 功能正是为了解决这一痛点。本文将带你从零开始,深入理解 Agent Skills 的工作原理,并通过实战案例教会你如何创建可复用的“技能”,让你的 AI 助手越用越顺手,成为真正懂你的结对编程伙伴。
1. 什么是 Agent Skills?
在 Antigravity(Google 的 Agent-First IDE)中,Agent 不再是一个无状态的聊天机器人,而是一个可以“学习”的助手。Agent Skills 本质上是一种结构化的上下文注入机制。
你可以把 Skill 想象成给 Agent 安装的“插件”或“员工手册”。当你在对话中提出需求时,Agent 会自动检索它所拥有的技能库,一旦发现某个技能的描述与你的需求匹配,它就会自动读取该技能中的详细指令、规则或代码模板,并应用到当前的上下文中。
核心优势:
- 无需显式调用:你不需要输入
/invoke skill,Agent 会根据语义自动判断何时使用。
- 渐进式加载:Agent 仅在需要时深入阅读技能详情,节省上下文窗口。
- 标准化:非常适合在团队中统一代码风格、测试规范或部署流程。
2. 技能的两种作用域 (Scopes)
在开始创建之前,我们需要决定技能“安装”在哪里。Antigravity 提供了两个层级:
2.1 项目级 (Workspace Specific)
适用于特定项目的规则,例如项目的架构文档、特定的数据库 Schema 或部署脚本。
- 路径:
<项目根目录>/.agent/skills/
- 场景:团队共享的开发规范。
2.2 全局级 (Global)
适用于个人的通用偏好,无论打开哪个项目都生效,例如你个人的 Python 编码习惯或调试偏好。
- 路径:
~/.gemini/antigravity/skills/ (用户主目录)
- 场景:个人专属的“外挂”配置。
3. 实战:创建一个“Pytest 测试规范”技能
让我们通过一个具体案例来演示。假设我们希望 Agent 在写 Python 测试时,严格遵守“使用 Fixtures 而不是 setUp”以及“文件命名必须以 test_ 开头”的规则。
第一步:创建目录结构
在你的项目根目录下,创建以下文件夹和文件:
.agent/
└── skills/
└── pytest-standards/
└── SKILL.md
第二步:编写 SKILL.md
这是核心部分。SKILL.md 文件由两部分组成:YAML Frontmatter (元数据头) 和 Markdown 正文。
将以下内容复制到你的 SKILL.md 文件中:
---
name: pytest-standards
description: Strict guidelines for writing Python unit tests. Apply this skill whenever the user asks to create, refactor, or fix tests.
---
# Pytest 最佳实践规范
当你在本项目中编写或修改 Python 测试代码时,必须严格遵守以下规则:
## 1. 框架选择
- **必须** 使用 `pytest` 框架。
- 严禁使用 Python 自带的 `unittest.TestCase` 类继承写法。
## 2. 代码风格
- 使用 `pytest.fixture` 进行数据准备 (Setup) 和清理 (Teardown)。
- 断言必须使用简单的 `assert` 语句,例如 `assert result == expected`,不要 use `self.assertEqual`。
## 3. 文件与命名
- 测试文件必须放置在 `tests/` 目录下。
- 测试文件名必须遵循 `test_<模块名>.py` 的格式。
- 测试函数必须以 `test_` 开头。
## 4. 覆盖率要求
- 生成测试时,请同时考虑“快乐路径 (Happy Path)”和至少一个“边界情况 (Edge Case)”。
关键点解析:
- YAML 头部的
description 至关重要:这是 Agent 决定是否启用该技能的唯一依据。描述写得越准确(包含关键词如 “writing unit tests”),触发概率越高。掌握如何编写有效的描述是 Prompt Engineering 的核心技巧之一,你可以在 云栈社区的技术文档板块 找到更多相关的深入讨论。
- 正文清晰度:使用 Markdown 的标题(H1, H2)和列表,能帮助大语言模型(LLM)更好地解析指令层级。
4. 验证效果
完成文件创建后,Agent Skills 会自动生效(对于新对话)。
- 在 Antigravity 中开启一个新的 Chat Session。
- 输入提示词:“帮我给
utils.py 里的 calculate_tax 函数写个测试。”
- 观察 Agent 的输出。
你会发现,即使你没有在提示词里提到“不要用 unittest”,Agent 也会自动遵循 SKILL.md 中的禁令,因为它在后台“阅读”了你的技能手册。这种自动化的上下文理解能力,正是现代 AI Agent 工作流的核心价值。
5. 进阶技巧:带脚本的技能
Agent Skills 不仅仅是纯文本规则,它还可以包含可执行的代码。你可以在 Skill 文件夹中放入 Python 脚本或 Shell 脚本。
场景:每次开始调试前,你希望 Agent 运行一个脚本来清理日志文件。
目录结构:
.agent/skills/clean-logs/
├── SKILL.md
└── cleanup.sh <-- 辅助脚本
SKILL.md 内容:
---
name: log-cleaner
description: Run this whenever the user complains about messy logs or starts a debugging session.
---
# 日志清理流程
在开始调试之前,请执行当前技能目录下的 `cleanup.sh` 脚本来重置环境。
当技能被触发时,Agent 能够识别并有权限运行同一目录下的脚本文件,从而实现从“建议者”到“执行者”的转变,极大地扩展了自动化能力边界。
总结与展望
Agent Skills 是 Google Antigravity 中连接人类意图与 AI 执行力的桥梁。通过将隐性的“经验知识”显性化为 SKILL.md 文件,我们不仅减少了重复劳作,更是在为 AI 编写“思维导图”。
回顾核心步骤:
- 确定技能作用域(项目级 vs 全局级)。
- 创建包含 YAML 描述的
SKILL.md。
- 通过自然语言对话触发技能。
未来,随着 Agent 能力的提升,我们可以预见 Skills 将变得更加复杂,甚至出现社区共享的“技能市场”(例如:一键安装“React 专家包”或“AWS 架构师包”)。如果你对构建更智能的 Agent 应用感兴趣,欢迎在 云栈社区 的 人工智能 板块与更多开发者交流探讨。
现在,就打开你的 Antigravity,尝试创建你的第一个 Skill 吧!