Google Antigravity 使用入门

1. 简介

在此 Codelab 中,您将了解 Google Antigravity(在本文档的其余部分中简称为 Antigravity),这是一个智能体开发平台,可将 IDE 发展为智能体优先的时代。

与仅能自动补全代码行的标准编码助理不同,Antigravity 提供了一个“任务控制中心”,用于管理自主智能体,这些智能体可以规划、编码,甚至浏览网页来帮助您构建项目。

Antigravity 是一款以智能体为主的平台。它预设 AI 不仅是编写代码的工具,而且是能够自主规划、执行、验证和迭代复杂工程任务的行动者,几乎无需人工干预。

学习内容

  • 安装和配置 Antigravity。
  • 探索 Antigravity 的主要概念,例如代理管理器、编辑器、浏览器等。
  • 使用您自己的规则和工作流程自定义 Antigravity,并考虑安全性。

所需条件

目前,Antigravity 仅面向个人 Gmail 账号提供预览版。它还附带免费配额,可用于使用高级模型。

Antigravity 需要在您的系统上本地安装。该产品适用于 Mac、Windows 和特定 Linux 发行版。除了您自己的机器之外,您还需要以下设备:

  • Chrome 网络浏览器
  • Gmail 账号(个人 Gmail 账号)。

本 Codelab 适合不同水平的用户和开发者(包括新手)。

报告问题

在学习此 Codelab 并使用 Antigravity 时,您可能会遇到问题。

如果遇到与 Codelab 相关的问题(错别字、说明错误),请点击此 Codelab 左下角的 Report a mistake 按钮提交 bug:

b06b582bcd847f6d.png

如果遇到与 Antigravity 相关的 bug 或有相关的功能请求,请在 Antigravity 中报告问题。您可以在代理管理器中执行此操作,只需点击左下角的 Provide Feedback 链接即可:

281ac826fb44d427.png

您还可以通过个人资料图标下方的 Report Issue 链接前往编辑器:

e8afd782a8f92129.png

2. 安装

我们先从安装 Antigravity 开始。目前,该产品处于预览阶段,您可以使用个人 Gmail 账号开始使用。

前往下载页面,然后点击适合您情况的相应操作系统版本。启动应用安装程序,并在您的计算机上安装该应用。安装完成后,启动 Antigravity 应用。您应该会看到类似于以下内容的界面:

29fada39721093c.png

请每次都点击 Next 继续。关键步骤如下:

  • 选择设置流程:系统会显示一个选项,供您从现有的 VS Code 或 Cursor 设置中导入。我们将重新开始。
  • 选择编辑器主题类型:我们将选择深色主题,但完全取决于您。
  • 您想如何使用 Antigravity 代理?

7ca55560ec377130.png

下面我们来详细了解一下。请注意,您可以随时通过 Antigravity 用户设置 (Cmd + ,) 更改设置。

在深入探讨这些选项之前,我们先来看看一些具体的属性(您会在对话框的右侧看到这些属性)。

终端执行政策

这涉及授予代理在终端中执行命令(应用/工具)的能力:

  • 始终继续:始终自动执行终端命令(可配置的拒绝列表中的命令除外)。
  • 请求审核:在执行终端命令之前请求用户审核和批准。

查看政策

当智能体执行任务时,会创建各种制品(任务计划、实现计划等)。审核政策的设置方式可让您决定由谁来确定是否需要审核。您是否始终希望审核,还是让代理决定是否审核。因此,这里也有三种选项。

  • 始终继续:代理从不请求审核。
  • 代理决定:代理将决定何时请求审核。
  • 请求审核:代理始终请求审核。

JavaScript 执行政策

启用后,代理可以使用浏览器工具打开网址、读取网页内容并与浏览器内容互动。此政策用于控制 JavaScript 在浏览器中的执行方式。

  • 始终继续:代理不会停止,也不会请求在浏览器中运行 JavaScript 的权限。这可为代理提供最大的自主权,以便在浏览器中执行复杂的操作和验证,但同时也会面临最高的安全漏洞风险。
  • 请求审核:代理将始终停止并请求权限,以便在浏览器中运行 JavaScript 代码。
  • 已停用:代理将永远不会在浏览器中运行 JavaScript 代码。

现在,我们已经了解了不同的政策,左侧的 4 个选项无非是终端执行、审核和 JavaScript 执行政策的具体设置(其中 3 个选项是这样),第 4 个选项可供我们完全自定义控制。我们提供了这 4 个选项,以便您可以选择希望为代理赋予多大的自主权,让其在终端中执行命令并获取待审核的制品,然后再继续执行任务。

这 4 个选项如下:

  • 安全模式:安全模式可为代理提供增强的安全控制,让您能够限制代理对外部资源和敏感操作的访问权限。启用安全模式后,系统会强制执行多项安全措施来保护您的环境。
  • 以反馈为导向的开发(推荐):智能体将频繁征求反馈。
  • 代理驱动的开发:代理永远不会要求审核。
  • 自定义配置

由审核驱动的开发选项是一种不错的平衡方案,也是建议的方案,因为该选项允许代理做出决策,然后返回给用户以征求批准。

接下来是配置编辑器设置页面,您可以在其中选择以下方面的偏好设置:

  • 按键绑定:配置按键绑定。
  • 扩展程序:安装热门语言扩展程序和其他推荐的扩展程序。
  • 命令行:安装命令行工具,以便使用 agy 打开 Antigravity。

现在,您可以登录 Google 了。如前所述,如果您使用的是个人 Gmail 账号,则可以免费使用 Antigravity 的预览版。立即使用您的账号登录。系统随即会打开浏览器,以便您登录。成功完成身份验证后,您会看到类似以下内容的消息,并且系统会将您引导回 Antigravity 应用。随遇而安。

最后是使用条款。您可以决定是否要选择启用,然后点击 Next

这会带您进入关键时刻,届时 Antigravity 将等待与您协作。

3. Agent Manager

我们已准备好开始!

Antigravity 基于开源 Visual Studio Code (VS Code) 基础,但从根本上改变了用户体验,将代理管理置于文本编辑之上。界面分为两个不同的主窗口:EditorAgent Manager。这种关注点分离反映了个人贡献与工程管理之间的区别。

Agent Manager:任务管理中心

启动 Antigravity 后,用户通常不会看到文件树,而是看到代理管理器,如下所示:

d5ae91fc746e1bba.png

此界面充当 Mission Control 信息中心。它专为高级编排而设计,可让开发者生成、监控和与在不同工作区或任务中异步运行的多个代理进行交互。

在此视图中,开发者充当架构师。它们定义了高级目标,例如:

  • 重构身份验证模块
  • 更新依赖树
  • 为结算 API 生成测试套件

如上图所示,每个请求都会生成一个专用代理实例。界面会直观呈现这些并行工作流,显示每个代理的状态、它们生成的制品(计划、结果、差异)以及任何待人工审批的请求。

此架构解决了之前 IDE 的一个主要限制,即之前 IDE 更像聊天机器人,是线性且同步的。在传统的聊天界面中,开发者必须等待 AI 完成代码生成,然后才能提出下一个问题。在 Antigravity 的经理视图中,开发者可以同时调度五个不同的智能体来处理五个不同的 bug,从而有效提高吞吐量。

如果您点击上方的 Next,可以选择打开工作区。

ec72712ea24bf6d5.png

将工作区视为您在 VS Code 中所了解的工作区,这样就完成了。因此,我们可以点击按钮打开本地文件夹,然后选择一个文件夹开始操作。就我而言,我在主文件夹中有一个名为 my-agy-projects 的文件夹,我选择了该文件夹。您可以使用完全不同的文件夹。请注意,您可以完全跳过此步骤,也可以稍后随时打开工作区。

完成此步骤后,您将进入代理管理器窗口,如下所示:

156224e223eeda36.png

您会注意到,应用会立即调整为在所选的工作区文件夹 (my-agy-projects) 中开始新对话。您可以利用自己在使用其他 AI 应用(Cursor、Gemini CLI)时积累的经验,并使用 @ 和其他方式在提示中添加更多上下文。

请务必查看 PlanningModel Selection 下拉菜单。您可以在“模型选择”下拉菜单中选择目前可供客服人员使用的模型。该列表如下所示:

fb0744dc43911365.png

同样,我们发现代理将处于默认的 Planning 模式。不过,我们也可以选择 Fast 模式。

f403e40ad480efc9.png

我们来看看文档对此有何说明:

  • Planning:智能体可以在执行任务之前进行规划。适用于深度研究、复杂任务或协作工作。在此模式下,代理会按任务组组织工作、生成制品,并采取其他步骤来彻底研究、仔细思考和规划工作,以实现最佳质量。您会在此处看到更多输出。
  • Fast:代理将直接执行任务。适用于可以更快完成的简单任务,例如重命名变量、启动一些 Bash 命令或其他较小的本地化任务。如果速度是重要因素,且任务足够简单,无需担心质量变差,那么这种方法就很有用。

如果您熟悉智能体中的思考预算和类似术语,可以将此功能视为控制智能体思考的能力,从而直接影响思考预算。我们暂时使用默认设置,但请注意,在发布时,Gemini 3 Pro 模型会根据有限的配额向所有人提供,因此如果您已用完 Gemini 3 的免费配额,系统会显示相应的消息。

现在,我们花点时间了解一下这里的 Agent Manager(窗口),并了解一些事项,以便清楚了解基本构建块、如何在 Antigravity 中导航等。代理管理器窗口如下所示:

22f6dcf7b3edc583.png

请参阅上图中的编号:

  1. Inbox:您可以将此功能视为在一个位置跟踪所有对话的方式。当您派代理执行任务时,这些任务会显示在收件箱中,您可以点击收件箱来获取所有当前对话的列表。点按任何对话都会显示所有已交换的消息、任务状态、代理生成的内容,甚至还会显示代理是否在等待您批准任务。这样一来,您就可以稍后返回之前正在处理的任务。一项非常实用的功能。
  2. Start Conversation:点击此图标即可开始新的对话。这样您就可以直接找到显示 Ask anything 的输入源。
  3. Workspaces:我们提到了工作区,并说明了您可以在任意工作区中工作。您可以随时添加更多工作区,并且可以在开始对话时选择任何工作区。
  4. Playground:这是一种很棒的方式,您只需与代理开始对话,然后就可以根据需要将对话转换为工作区,以便更严格地控制文件等。您可以将此功能视为草稿区。
  5. Editor View:到目前为止,我们位于代理管理器视图中。如果您愿意,可以随时切换到编辑器视图。这会显示您的工作区文件夹和所有生成的文件。您可以直接在其中修改文件,甚至在编辑器中提供内嵌指南/命令,以便代理根据您修改后的建议/说明执行某些操作或进行更改。我们将在后面的部分详细介绍编辑器视图。
  6. Browser:最后,我们来谈谈 Antigravity 的一个明显优势,那就是它与 Chrome 浏览器的紧密集成。接下来,我们将在下一部分中设置浏览器。

4. Antigravity 浏览器

根据文档,当代理想要与浏览器互动时,它会调用浏览器子代理来处理手头的任务。浏览器子代理运行的是专门用于在 Antigravity 管理的浏览器中打开的网页上运行的模型,这与您为主代理选择的模型不同。

此子代理可以访问控制浏览器所需的各种工具,包括点击、滚动、输入、读取控制台日志等。它还可以通过 DOM 捕获、屏幕截图或 Markdown 解析来读取您打开的网页,以及拍摄视频。

这意味着我们需要启动并安装 Antigravity 浏览器扩展程序。我们来实际操作一下,在 Playground 中发起对话并完成相应步骤。

选择 Playground,然后向代理提供以下任务 go to antigravity.google,如下所示:

51a373d3da23db56.png

提交任务。您会看到智能体分析任务,并且可以检查其思考过程。在某个时间点,它会正确继续,并提及需要设置浏览器代理,如下所示。点击 Setup

e7119f40e093afd2.png

此操作将打开浏览器并显示一条消息,提示您安装扩展程序,如下所示:

82fb87d7d75b4a6c.png

继续操作,系统会将您引导至 Chrome 扩展程序,然后您就可以安装该扩展程序了。

f3468f0e5f3bb075.png

成功安装扩展程序后,Antigravity Agent 会开始工作,并提示您允许其执行任务。您应该会在已打开的浏览器窗口中看到一些活动:

7f0367e00ac36d5a.png

切换回代理管理器视图,您应该会看到以下内容:

b9d89e1ebefcfd76.png

这正是我们预期的结果,因为我们要求 Agent 前往 antigravity.google 网站。授予该权限后,您会发现系统已安全地导航到相应网站,如下所示:

77fcc38b5fb4ca7c.png

5. 制品

Antigravity 在规划和完成工作时会创建制品,以便传达其工作内容并从人类用户那里获得反馈。这些文件包括富 Markdown 文件、架构图、图片、浏览器录制内容、代码差异等。

制品可解决“信任缺口”问题。当客服人员声称“我已修复此 bug”时,开发者之前必须读取代码才能进行验证。在 Antigravity 中,代理会生成一个制品来证明这一点。

以下是 Antigravity 生成的主要制品:

  • Task Lists:在编写代码之前,代理会生成结构化方案。您通常不需要修改此计划,但可以查看该计划,并在必要时添加注释来更改该计划。
  • Implementation Plan:用于在代码库中设计变更以完成任务。这些计划包含有关需要进行哪些修订的技术细节,除非您已将制品审核政策设置为“始终继续”,否则用户应审核这些计划。
  • Walkthrough:此文件在代理完成任务实现后创建,用于总结更改并说明如何测试这些更改。
  • Code diffs:虽然从技术上讲不是制品,但 Antigravity 也会生成代码差异,供您查看和添加注释。
  • Screenshots:代理会捕获更改前后的界面状态。
  • Browser Recordings:对于动态互动(例如,“点击登录按钮,等待微调器,验证信息中心是否加载”),代理会录制会话视频。开发者可以观看此视频,以验证功能需求是否得到满足,而无需自行运行应用。

工件会生成并显示在代理管理器视图和编辑器视图中。

在编辑器视图中,您可以点击右下角的 Artifacts

5deff47fe0a93aa1.png

在代理管理器视图中,您应该能够在右上角看到 Review changes 旁边的切换制品按钮;如果该按钮处于开启状态,您可以看到生成的制品列表:

5320f447471c43eb.png

您应该会看到如下所示的“制品”视图。在本例中,我们指示代理访问 antigravity.google 页面,因此代理已捕获屏幕截图,并创建了相应的视频:

19d9738bb3c7c0c9.png

您可以在编辑器视图的 Review Changes 中查看代码差异:

e1d8fd6e7df4daf3.png

开发者可以使用“Google 文档风格的评论”与这些制品和代码差异进行互动。您可以选择特定操作或任务,以您希望的方式提供命令,然后将其提交给代理。然后,智能体将接收此反馈并相应地进行迭代。不妨考虑使用交互式 Google 文档,您可以在其中向作者提供反馈,然后作者根据反馈进行迭代。

6. 重温收件箱

如果您已与代理进行过几次对话,现在应在 Agent Manager 窗口中查看 Inbox。这样一来,您就可以看到所有对话了。点击任意对话即可查看该对话的历史记录、生成的制品等。在我们的示例中,运行第一个对话后,收件箱中会显示该对话,如下所示:

1a2a1bbdd4464ecf.png

点击相应对话即可查看详细信息:

b7e493765cfb1b1a.png

您也可以从这里继续对话。

7. Editor

该编辑器保留了 VS Code 的熟悉感,确保经验丰富的开发者的肌肉记忆得到尊重。它包括标准文件浏览器、语法突出显示和扩展程序生态系统。

您可以点击代理管理器右上角的 Open Editor 按钮前往编辑器。

设置和扩展程序

在典型设置中,您会看到编辑器、终端和代理:

7996408528de93e1.png

如果不是这种情况,您可以按如下方式切换终端和代理面板:

  • 如需切换终端面板,请使用 Ctrl + ` 快捷键。
  • 如需切换代理面板,请使用 Cmd + L 快捷键。

此外,Antigravity 可以在设置期间安装一些扩展程序,但根据您使用的编程语言,您可能需要安装更多扩展程序。例如,对于 Python 开发,您可以选择安装以下扩展程序:

bd33a79837b5a12a.png

编辑者

自动补全

当您在编辑器中输入代码时,系统会启动智能自动补全功能,您只需按 Tab 键即可使用:

e90825ed7a009350.png

按 Tab 键即可导入

系统会显示点击以导入建议,用于添加缺失的依赖项:

bcab60794caa0aec.png

按 Tab 键即可跳转

您会获得按 Tab 键跳转建议,以便将光标移至代码中的下一个逻辑位置:

8610ae5217be7fe5.png

命令

您可以在编辑器或终端中使用 Cmd + I 触发命令,以使用自然语言进行内嵌补全。

在编辑器中,您可以要求提供一种计算斐波那契数的方法,然后接受或拒绝该方法:

13a615e515cea100.png

在终端中,您可以获取终端命令建议:

5a75e560f998cedc.png

代理侧边栏

在编辑器中,您可以通过多种方式切换代理侧边栏。

手动打开

您可以使用 Cmd + L 快捷键手动切换右侧的代理面板。

您可以开始提问,使用 @ 添加更多上下文(例如文件、目录、MCP 服务器),或使用 / 引用工作流(已保存的提示):

95c5a6d31d771748.png

您还可以选择以下两种对话模式:FastPlanning

d3d1449f12510e3e.png

建议使用 Fast 处理快速任务,而建议使用 Planning 处理更复杂的任务,因为该代理会制定您可以批准的方案。

您还可以为对话选择不同的模型:

af709bcc03c1e21e.png

解释并修正

触发代理的另一种方法是将鼠标悬停在问题上,然后选择 Explain and fix

e45cbe02ed76b9c1.png

向代理发送问题

您还可以前往 Problems 部分,然后选择 Send all to Agent,让代理尝试解决这些问题:

e4992d14708005d0.png

将终端输出发送给代理

您甚至可以选择终端输出的一部分,然后使用 Cmd + L 将其发送给代理:

c40293bab474c9b1.png

在编辑器和代理管理器之间切换

在编辑器模式下,您可以随时通过右上角的 Open Agent Manager 按钮在编辑器模式和完整代理管理器模式之间切换;在代理管理器模式下,您可以点击右上角的 Open Editor 按钮返回编辑器模式。

或者,您也可以使用 Cmd + E 键盘快捷键在这两种模式之间切换。

8. 提供反馈

Antigravity 的核心功能是在体验的每个阶段轻松收集您的反馈。当智能体处理任务时,会在此过程中创建不同的制品:

  • 实施计划和任务列表(编码前)
  • 代码差异(在生成代码时)
  • 验证结果(编码后)的演练

这些制品是 Antigravity 传达其计划和进度的途径。更重要的是,您还可以通过 Google 文档样式的评论向代理提供反馈。这对于有效地引导代理朝着您期望的方向发展非常有用。

我们来尝试构建一个简单的待办事项列表应用,看看如何在此过程中向 Antigravity 提供反馈。

规划模式

首先,您需要确保 Antigravity 处于 Planning 模式(而非 Fast 模式)。您可以在代理侧边栏聊天中选择此模式。这样可确保 Antigravity 在开始编写代码之前制定实现方案和任务列表。然后,尝试使用如下提示:Create a todo list web app using Python。这会触发代理开始规划并生成实施方案。

实施计划

实施方案概述了 Antigravity 的意图、将使用的技术堆栈以及建议的更改的高级说明。

Implementation Plan - Python Todo App
Goal
Create a simple, functional, and aesthetically pleasing Todo List web application using Python (Flask).

Tech Stack
Backend: Python with Flask
Frontend: HTML5, CSS3 (Vanilla), Jinja2 templates
...

您还可以在此处提供反馈。在本例中,代理希望使用 Flask 作为 Python Web 框架。我们可以向实施计划添加注释,以使用 FastAPI 代替。添加注释后,提交注释或要求 Antigravity Proceed 更新后的实施方案。

任务列表

更新实施计划后,Antigravity 会创建任务列表。这是 Antigravity 将遵循的创建和验证应用的具体步骤列表。

Task Plan
 Create requirements.txt
 Create directory structure (static/css, templates)
 Create static/css/style.css
 Create templates/index.html
 Create main.py with FastAPI setup and Database logic
 Verify application

这是您可以提供反馈的第二个位置。

例如,在我们的使用情形中,您可以通过添加以下注释来添加更详细的验证说明:Verify application by adding, editing, and deleting a todo item and taking a screenshot.

代码更改

此时,Antigravity 将在新文件中生成一些代码。您可以在代理聊天侧边栏中Accept allReject all这些更改,而无需查看详细信息。

您还可以点击 Review changes 查看更改的详细信息,并添加有关代码的详细注释。例如,我们可以在 main.py 中添加以下注释:Add basic comments to all methods

这是使用 Antigravity 迭代代码的好方法。

演示

Antigravity 完成编码后,会启动服务器,打开浏览器以验证应用。它会进行一些手动测试,例如添加任务、更新任务等。这一切都要归功于 Antigravity 浏览器扩展程序。最后,它会创建一个演练文件,总结其为验证应用所做的工作。这包括屏幕截图或包含浏览器录制的验证流程。

您还可以在演练中对屏幕截图或浏览器录制内容发表评论。例如,我们可以添加评论 Change the blue theme to orange theme 并提交。提交注释后,Antigravity 会进行更改、验证结果并更新演练

撤消更改

最后但同样重要的是,在完成每个步骤后,如果您对更改不满意,可以选择在对话中撤消更改。只需在聊天中选择 ↩️ Undo changes up to this point 即可。

9. 规则和工作流

Antigravity 提供了多种自定义选项:规则工作流

点击右上角的 ...,然后选择 Customizations,您会看到 RulesWorkflows

ff8babd8d8bcfa83.png

规则有助于引导代理的行为。您可以提供这些指导原则,以确保智能体在生成代码和测试时遵循这些原则。例如,您可能希望智能体遵循特定的代码样式,或者始终记录方法。您可以将这些内容添加为规则,然后代理会将其纳入考虑范围。

工作流程是已保存的提示,您可以在与代理互动时使用 / 按需触发。它们还会引导代理的行为,但由用户按需触发。

一个很好的类比是,规则更像是系统指令,而工作流更像是您可以根据需要选择的已保存提示。

规则工作流都可以全局应用或按工作区应用,并保存到以下位置:

  • 全局规则:~/.gemini/GEMINI.md
  • 全局工作流:~/.gemini/antigravity/global_workflows/global-workflow.md
  • 工作区规则:your-workspace/.agent/rules/
  • 工作区工作流:your-workspace/.agent/workflows/

我们来在工作区中添加一些规则和工作流。

添加规则

首先,我们来添加一个代码样式规则。前往 Rules,然后选择 +Workspace 按钮。为其指定一个名称,例如 code-style-guide,并遵循以下代码样式规则:

* Make sure all the code is styled with PEP 8 style guide
* Make sure all the code is properly commented

其次,我们再添加一条规则,以确保代码以模块化方式生成,并在 code-generation-guide 规则中提供示例:

* The main method in main.py is the entry point to showcase functionality.
* Do not generate code in the main method. Instead generate distinct functionality in a new file (eg. feature_x.py)
* Then, generate example code to show the new functionality in a new method in main.py (eg. example_feature_x) and simply call that method from the main method.

这两个规则已保存并准备就绪:

bfd179dfef6b2355.png

添加工作流

我们再定义一个用于生成单元测试的工作流。这样一来,我们就可以在对代码感到满意时触发单元测试(而不是让代理一直生成单元测试)。

前往 Workflows,然后选择 +Workspace 按钮。为其指定一个名称,例如 generate-unit-tests,并包含以下内容:

* Generate unit tests for each file and each method
* Make sure the unit tests are named similar to files but with test_ prefix

工作流也已准备就绪,可以开始运行:

d22059258592f0e1.png

试试看

现在,我们来看看规则和工作流的实际应用。在工作区中创建框架 main.py 文件:

def main():
    pass

if __name__ == "__main__":
    main()

现在,前往代理聊天窗口,向代理提问:Implement binary search and bubble sort.

过了一两分钟后,您应该会在工作区中看到三个文件:main.pybubble_sort.pybinary_search.py。您还会注意到,所有规则都已实现:主文件不会杂乱无章,并且包含示例代码;每项功能都在各自的文件中实现;所有代码都有文档记录,并且风格良好:

from binary_search import binary_search, binary_search_recursive
from bubble_sort import bubble_sort, bubble_sort_descending


def example_binary_search():
    """
    Demonstrate binary search algorithm with various test cases.
    """
    ...

def example_bubble_sort():
    """
    Demonstrate bubble sort algorithm with various test cases.
    """
    ...

def main():
    """
    Main entry point to showcase functionality.
    """
    example_binary_search()
    example_bubble_sort()
    print("\n" + "=" * 60)


if __name__ == "__main__":
    main()

现在,我们对代码感到满意,接下来看看是否可以触发生成单元测试工作流。

前往聊天界面,开始输入 /generate,Antigravity 已经了解我们的工作流程:

8a3efd9e3be7eb6f.png

选择 generate-unit-tests,然后按 Enter 键。几秒钟后,您会在工作区中看到新文件:test_binary_search.pytest_bubble_sort.py,其中已实现多项测试!

11febd7940ef8199.png

很好!

10. 技能

虽然 Antigravity 的底层模型(例如 Gemini)是强大的通用模型,但它们并不了解您的具体项目背景或团队标准。将每条规则或工具都加载到代理的上下文窗口中会导致“工具膨胀”,从而增加费用、延迟时间和混乱程度。

Antigravity Skills 通过逐步披露来解决此问题。技能是一种专业知识包,在需要时才会激活。只有当您的具体请求与技能的说明相符时,该技能才会加载到代理的上下文中。

结构和范围

技能是基于目录的软件包。您可以根据需要,在以下两个范围内定义它们:

  • 全局范围 (~/.gemini/antigravity/skills/):适用于您的所有项目(例如,“格式化 JSON”“常规代码审核”)。
  • 工作区范围 (<workspace-root>/.agent/skills/):仅在特定项目(例如 “部署到此应用的临时版本”“为此特定框架生成样板代码”)。

技能剖析

典型的技能目录如下所示:

my-skill/
├── SKILL.md    #(Required) metadata & instructions.
├── scripts/    # (Optional) Python or Bash scripts for execution.
├── references/ # (Optional) text, documentation, or templates.
└── assets/     # (Optional) Images or logos.

现在,我们来添加一些技能。

代码审核技能

这是一个仅包含指令的技能,也就是说,我们只需要创建 SKILL.md 文件,其中将包含元数据和技能指令。我们来创建一个全局技能,向代理提供详细信息,以便其审核代码更改是否存在 bug、样式问题和最佳实践问题。

首先,创建将包含此全局技能的目录。

mkdir -p ~/.gemini/antigravity/skills/code-review

在上述目录中创建一个 SKILL.md 文件,其中包含以下内容:

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

# Code Review Skill

When reviewing code, follow these steps:

## Review checklist

1. **Correctness**: Does the code do what it's supposed to?
2. **Edge cases**: Are error conditions handled?
3. **Style**: Does it follow project conventions?
4. **Performance**: Are there obvious inefficiencies?

## How to provide feedback

- Be specific about what needs to change
- Explain why, not just what
- Suggest alternatives when possible

请注意,上面的 SKILL.md 文件顶部包含元数据(名称和说明),然后是说明。代理在加载时只会读取您已配置的技能的元数据,并且仅在需要时才会加载技能的指令。

试试看

创建一个名为 demo_bad_code.py 的文件,其中包含以下内容:

import time

def get_user_data(users, id):
   # Find user by ID
   for u in users:
       if u['id'] == id:
            return u
   return None

def process_payments(items):
   total = 0
   for i in items:
       # Calculate tax
       tax = i['price'] * 0.1
       total = total + i['price'] + tax
       time.sleep(0.1) # Simulate slow network call
  
   return total

def run_batch():
   users = [{'id': 1, 'name': 'Alice'}, {'id': 2, 'name': 'Bob'}]
   items = [{'price': 10}, {'price': 20}, {'price': 100}]
  
   u = get_user_data(users, 3)
   print("User found: " + u['name']) # Will crash if None
  
   print("Total: " + str(process_payments(items)))

if __name__ == "__main__":
   run_batch()

向智能体提问:review the @demo_bad_code.py file。智能体应识别 code-review 技能,加载详细信息,然后按照 code-review/SKILL.md 文件中给出的说明执行操作。

输出示例如下所示:

d90a989f4555e2fc.png

代码标题模板技能

有时,技能需要使用大块静态文本(例如许可标头)。直接将此文本放入提示中是一种浪费。相反,我们会将其放在 resources/ 文件夹中,并指示代理仅在必要时读取该文件。

首先,创建将包含此工作区技能的目录。

mkdir -p .agent/skills/license-header-adder/resources

使用许可文本创建 .agent/skills/license-header-adder/resources/HEADER.txt

/*
 * Copyright (c) 2026 YOUR_COMPANY_NAME LLC.
 * All rights reserved.
 * This code is proprietary and confidential.
 */

创建一个包含以下内容的 .agent/skills/license-header-adder/SKILL.md 文件:

---
name: license-header-adder
description: Adds the standard corporate license header to new source files.
---

# License Header Adder

This skill ensures that all new source files have the correct copyright header.

## Instructions
1. **Read the Template**: Read the content of `resources/HEADER.txt`.
2. **Apply to File**: When creating a new file, prepend this exact content.
3. **Adapt Syntax**: 
   - For C-style languages (Java, TS), keep the `/* */` block.
   - For Python/Shell, convert to `#` comments.

试试看

向智能体提出以下问题:Create a new Python script named data_processor.py that prints 'Hello World'.

代理会读取模板,将 C 样式注释转换为 Python 样式,并自动将其添加到新文件的前面。

通过创建这些技能,您已有效地将通用型 Gemini 模型转变为项目的专业模型。您已将最佳实践编入代码,无论是遵循代码审核指南还是许可标头。现在,代理会本能地知道如何与您的团队合作,而无需您反复提示 AI“记得添加许可”或“修复提交格式”。

11. 保护代理

向 AI 智能体授予对终端和浏览器的访问权限是一把双刃剑。它支持自主调试和部署,但也为提示注入和数据渗出打开了通道。

Antigravity 通过围绕终端命令自动执行政策、允许列表和拒绝列表的细化权限系统来解决此问题。

首次配置 Antigravity 时,或通过设置菜单配置时,您必须选择一项Terminal Command Auto Execution政策。此设置决定了代理在 shell 命令方面的自主性。

您可以前往 Antigravity — Settings,然后前往 Advanced Settings,查看您当前的相应设置。您应该会看到“代理”设置的 Terminal 部分。如果您想将此设置更改为其他值,请参考下表:

政策模式

说明

关闭

除非明确允许,否则代理绝不会自动执行终端命令。

自动

代理会根据内部安全模型决定是否执行。它会请求获得风险较高的命令的权限。

增强型

除非明确拒绝,否则代理始终会自动执行命令。

配置许可名单

许可名单主要与关闭政策搭配使用。它代表一种积极的安全模型,这意味着除非明确允许,否则一切都被禁止。这是最安全的配置。

分步配置

  1. 终端命令自动执行设置设为关闭
  2. 点击允许列表终端命令旁边的添加按钮,在其中添加以下命令:ls -al。您也可以根据需要添加其他终端命令。

测试许可名单

  • 向智能体提问:List the files in this directory
  • 代理会自动运行 ls
  • 向代理提问:Delete the <some file>
  • 代理会尝试 rm <filepath>,但 Antigravity 会阻止该操作并强制进行用户审核,因为 rm 不在许可名单中。在运行该命令之前,Antigravity 应该会询问您是否授予权限。

配置拒绝名单

拒绝名单是“Turbo”(有时是“自动”)政策的保障措施。它代表一种负面安全模型,意味着除非明确禁止,否则一切都是允许的。这种方法依赖于开发者预测每种可能的危险,虽然风险较高,但可提供最快的速度。

分步配置

  1. 终端命令自动执行设置设为极速
  2. 点击旁边的添加按钮,在拒绝列表终端命令中添加以下命令。
  3. rm
  4. rmdir
  5. sudo
  6. curl
  7. wget

测试拒绝名单

  • 向智能体提问:Check the version of python
  • 代理会自动运行 python --version
  • 向代理提出问题:Download www.google.com home page
  • 代理尝试 curl。Antigravity 会检测到拒绝列表中的 curl 并阻止执行,同时提示您进行手动批准。

浏览器安全性

Antigravity 能够浏览网页是一项超能力,但也是一个漏洞。访问遭入侵的文档网站的代理可能会遇到提示注入攻击。

为防止出现这种情况,您可以为浏览器代理实现浏览器网址许可名单

您可以前往 Antigravity — Settings,然后前往 Advanced Settings,查看此功能的当前设置。您应该会看到“浏览器网址许可名单”部分,如下所示:

5ed231150122ecc5.png

点击“打开许可名单文件”,系统会在文件夹 HOME/.gemini/antigravity/browserAllowlist.txt. 中打开该文件。您可以在此处确保只输入受信任的网域。

12. 总结和后续步骤

恭喜!您现在已成功安装 Antigravity、配置环境,并了解如何控制代理。

后续还有哪些变化?如需了解 Antigravity 在构建实际应用(包括动态会议网站和效率应用)方面的实际应用,请继续学习下一个 Codelab:使用 Google Antigravity 进行构建

参考文档