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:

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

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

2. 安装
我们先从安装 Antigravity 开始。目前,该产品处于预览阶段,您可以使用个人 Gmail 账号开始使用。
前往下载页面,然后点击适合您情况的相应操作系统版本。启动应用安装程序,并在您的计算机上安装该应用。安装完成后,启动 Antigravity 应用。您应该会看到类似于以下内容的界面:

请每次都点击 Next 继续。关键步骤如下:
- 选择设置流程:系统会显示一个选项,供您从现有的 VS Code 或 Cursor 设置中导入。我们将重新开始。
- 选择编辑器主题类型:我们将选择深色主题,但完全取决于您。
- 您想如何使用 Antigravity 代理?

下面我们来详细了解一下。请注意,您可以随时通过 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) 基础,但从根本上改变了用户体验,将代理管理置于文本编辑之上。界面分为两个不同的主窗口:Editor 和 Agent Manager。这种关注点分离反映了个人贡献与工程管理之间的区别。
Agent Manager:任务管理中心
启动 Antigravity 后,用户通常不会看到文件树,而是看到代理管理器,如下所示:

此界面充当 Mission Control 信息中心。它专为高级编排而设计,可让开发者生成、监控和与在不同工作区或任务中异步运行的多个代理进行交互。
在此视图中,开发者充当架构师。它们定义了高级目标,例如:
- 重构身份验证模块
- 更新依赖树
- 为结算 API 生成测试套件
如上图所示,每个请求都会生成一个专用代理实例。界面会直观呈现这些并行工作流,显示每个代理的状态、它们生成的制品(计划、结果、差异)以及任何待人工审批的请求。
此架构解决了之前 IDE 的一个主要限制,即之前 IDE 更像聊天机器人,是线性且同步的。在传统的聊天界面中,开发者必须等待 AI 完成代码生成,然后才能提出下一个问题。在 Antigravity 的经理视图中,开发者可以同时调度五个不同的智能体来处理五个不同的 bug,从而有效提高吞吐量。
如果您点击上方的 Next,可以选择打开工作区。

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

您会注意到,应用会立即调整为在所选的工作区文件夹 (my-agy-projects) 中开始新对话。您可以利用自己在使用其他 AI 应用(Cursor、Gemini CLI)时积累的经验,并使用 @ 和其他方式在提示中添加更多上下文。
请务必查看 Planning 和 Model Selection 下拉菜单。您可以在“模型选择”下拉菜单中选择目前可供客服人员使用的模型。该列表如下所示:

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

我们来看看文档对此有何说明:
Planning:智能体可以在执行任务之前进行规划。适用于深度研究、复杂任务或协作工作。在此模式下,代理会按任务组组织工作、生成制品,并采取其他步骤来彻底研究、仔细思考和规划工作,以实现最佳质量。您会在此处看到更多输出。Fast:代理将直接执行任务。适用于可以更快完成的简单任务,例如重命名变量、启动一些 Bash 命令或其他较小的本地化任务。如果速度是重要因素,且任务足够简单,无需担心质量变差,那么这种方法就很有用。
如果您熟悉智能体中的思考预算和类似术语,可以将此功能视为控制智能体思考的能力,从而直接影响思考预算。我们暂时使用默认设置,但请注意,在发布时,Gemini 3 Pro 模型会根据有限的配额向所有人提供,因此如果您已用完 Gemini 3 的免费配额,系统会显示相应的消息。
现在,我们花点时间了解一下这里的 Agent Manager(窗口),并了解一些事项,以便清楚了解基本构建块、如何在 Antigravity 中导航等。代理管理器窗口如下所示:

请参阅上图中的编号:
Inbox:您可以将此功能视为在一个位置跟踪所有对话的方式。当您派代理执行任务时,这些任务会显示在收件箱中,您可以点击收件箱来获取所有当前对话的列表。点按任何对话都会显示所有已交换的消息、任务状态、代理生成的内容,甚至还会显示代理是否在等待您批准任务。这样一来,您就可以稍后返回之前正在处理的任务。一项非常实用的功能。Start Conversation:点击此图标即可开始新的对话。这样您就可以直接找到显示Ask anything的输入源。Workspaces:我们提到了工作区,并说明了您可以在任意工作区中工作。您可以随时添加更多工作区,并且可以在开始对话时选择任何工作区。Playground:这是一种很棒的方式,您只需与代理开始对话,然后就可以根据需要将对话转换为工作区,以便更严格地控制文件等。您可以将此功能视为草稿区。Editor View:到目前为止,我们位于代理管理器视图中。如果您愿意,可以随时切换到编辑器视图。这会显示您的工作区文件夹和所有生成的文件。您可以直接在其中修改文件,甚至在编辑器中提供内嵌指南/命令,以便代理根据您修改后的建议/说明执行某些操作或进行更改。我们将在后面的部分详细介绍编辑器视图。Browser:最后,我们来谈谈 Antigravity 的一个明显优势,那就是它与 Chrome 浏览器的紧密集成。接下来,我们将在下一部分中设置浏览器。
4. Antigravity 浏览器
根据文档,当代理想要与浏览器互动时,它会调用浏览器子代理来处理手头的任务。浏览器子代理运行的是专门用于在 Antigravity 管理的浏览器中打开的网页上运行的模型,这与您为主代理选择的模型不同。
此子代理可以访问控制浏览器所需的各种工具,包括点击、滚动、输入、读取控制台日志等。它还可以通过 DOM 捕获、屏幕截图或 Markdown 解析来读取您打开的网页,以及拍摄视频。
这意味着我们需要启动并安装 Antigravity 浏览器扩展程序。我们来实际操作一下,在 Playground 中发起对话并完成相应步骤。
选择 Playground,然后向代理提供以下任务 go to antigravity.google,如下所示:

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

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

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

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

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

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

5. 制品
Antigravity 在规划和完成工作时会创建制品,以便传达其工作内容并从人类用户那里获得反馈。这些文件包括富 Markdown 文件、架构图、图片、浏览器录制内容、代码差异等。
制品可解决“信任缺口”问题。当客服人员声称“我已修复此 bug”时,开发者之前必须读取代码才能进行验证。在 Antigravity 中,代理会生成一个制品来证明这一点。
以下是 Antigravity 生成的主要制品:
Task Lists:在编写代码之前,代理会生成结构化方案。您通常不需要修改此计划,但可以查看该计划,并在必要时添加注释来更改该计划。Implementation Plan:用于在代码库中设计变更以完成任务。这些计划包含有关需要进行哪些修订的技术细节,除非您已将制品审核政策设置为“始终继续”,否则用户应审核这些计划。Walkthrough:此文件在代理完成任务实现后创建,用于总结更改并说明如何测试这些更改。Code diffs:虽然从技术上讲不是制品,但 Antigravity 也会生成代码差异,供您查看和添加注释。Screenshots:代理会捕获更改前后的界面状态。Browser Recordings:对于动态互动(例如,“点击登录按钮,等待微调器,验证信息中心是否加载”),代理会录制会话视频。开发者可以观看此视频,以验证功能需求是否得到满足,而无需自行运行应用。
工件会生成并显示在代理管理器视图和编辑器视图中。
在编辑器视图中,您可以点击右下角的 Artifacts:

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

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

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

开发者可以使用“Google 文档风格的评论”与这些制品和代码差异进行互动。您可以选择特定操作或任务,以您希望的方式提供命令,然后将其提交给代理。然后,智能体将接收此反馈并相应地进行迭代。不妨考虑使用交互式 Google 文档,您可以在其中向作者提供反馈,然后作者根据反馈进行迭代。
6. 重温收件箱
如果您已与代理进行过几次对话,现在应在 Agent Manager 窗口中查看 Inbox。这样一来,您就可以看到所有对话了。点击任意对话即可查看该对话的历史记录、生成的制品等。在我们的示例中,运行第一个对话后,收件箱中会显示该对话,如下所示:

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

您也可以从这里继续对话。
7. Editor
该编辑器保留了 VS Code 的熟悉感,确保经验丰富的开发者的肌肉记忆得到尊重。它包括标准文件浏览器、语法突出显示和扩展程序生态系统。
您可以点击代理管理器右上角的 Open Editor 按钮前往编辑器。
设置和扩展程序
在典型设置中,您会看到编辑器、终端和代理:

如果不是这种情况,您可以按如下方式切换终端和代理面板:
- 如需切换终端面板,请使用
Ctrl + `快捷键。 - 如需切换代理面板,请使用
Cmd + L快捷键。
此外,Antigravity 可以在设置期间安装一些扩展程序,但根据您使用的编程语言,您可能需要安装更多扩展程序。例如,对于 Python 开发,您可以选择安装以下扩展程序:

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

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

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

命令
您可以在编辑器或终端中使用 Cmd + I 触发命令,以使用自然语言进行内嵌补全。
在编辑器中,您可以要求提供一种计算斐波那契数的方法,然后接受或拒绝该方法:

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

代理侧边栏
在编辑器中,您可以通过多种方式切换代理侧边栏。
手动打开
您可以使用 Cmd + L 快捷键手动切换右侧的代理面板。
您可以开始提问,使用 @ 添加更多上下文(例如文件、目录、MCP 服务器),或使用 / 引用工作流(已保存的提示):

您还可以选择以下两种对话模式:Fast 或 Planning:

建议使用 Fast 处理快速任务,而建议使用 Planning 处理更复杂的任务,因为该代理会制定您可以批准的方案。
您还可以为对话选择不同的模型:

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

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

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

在编辑器和代理管理器之间切换
在编辑器模式下,您可以随时通过右上角的 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 all或Reject 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,您会看到 Rules 和 Workflows:

规则有助于引导代理的行为。您可以提供这些指导原则,以确保智能体在生成代码和测试时遵循这些原则。例如,您可能希望智能体遵循特定的代码样式,或者始终记录方法。您可以将这些内容添加为规则,然后代理会将其纳入考虑范围。
工作流程是已保存的提示,您可以在与代理互动时使用 / 按需触发。它们还会引导代理的行为,但由用户按需触发。
一个很好的类比是,规则更像是系统指令,而工作流更像是您可以根据需要选择的已保存提示。
规则和工作流都可以全局应用或按工作区应用,并保存到以下位置:
- 全局规则:
~/.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.
这两个规则已保存并准备就绪:

添加工作流
我们再定义一个用于生成单元测试的工作流。这样一来,我们就可以在对代码感到满意时触发单元测试(而不是让代理一直生成单元测试)。
前往 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
工作流也已准备就绪,可以开始运行:

试试看
现在,我们来看看规则和工作流的实际应用。在工作区中创建框架 main.py 文件:
def main():
pass
if __name__ == "__main__":
main()
现在,前往代理聊天窗口,向代理提问:Implement binary search and bubble sort.
过了一两分钟后,您应该会在工作区中看到三个文件:main.py、bubble_sort.py、binary_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 已经了解我们的工作流程:

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

很好!
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 文件中给出的说明执行操作。
输出示例如下所示:

代码标题模板技能
有时,技能需要使用大块静态文本(例如许可标头)。直接将此文本放入提示中是一种浪费。相反,我们会将其放在 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 部分。如果您想将此设置更改为其他值,请参考下表:
政策模式 | 说明 |
关闭 | 除非明确允许,否则代理绝不会自动执行终端命令。 |
自动 | 代理会根据内部安全模型决定是否执行。它会请求获得风险较高的命令的权限。 |
增强型 | 除非明确拒绝,否则代理始终会自动执行命令。 |
配置许可名单
许可名单主要与关闭政策搭配使用。它代表一种积极的安全模型,这意味着除非明确允许,否则一切都被禁止。这是最安全的配置。
分步配置
- 将终端命令自动执行设置设为关闭。
- 点击允许列表终端命令旁边的添加按钮,在其中添加以下命令:
ls -al。您也可以根据需要添加其他终端命令。
测试许可名单
- 向智能体提问:
List the files in this directory。 - 代理会自动运行
ls。 - 向代理提问:
Delete the <some file> - 代理会尝试
rm <filepath>,但 Antigravity 会阻止该操作并强制进行用户审核,因为rm不在许可名单中。在运行该命令之前,Antigravity 应该会询问您是否授予权限。
配置拒绝名单
拒绝名单是“Turbo”(有时是“自动”)政策的保障措施。它代表一种负面安全模型,意味着除非明确禁止,否则一切都是允许的。这种方法依赖于开发者预测每种可能的危险,虽然风险较高,但可提供最快的速度。
分步配置
- 将终端命令自动执行设置设为极速。
- 点击旁边的添加按钮,在拒绝列表终端命令中添加以下命令。
- rm
- rmdir
- sudo
- curl
- wget
测试拒绝名单
- 向智能体提问:
Check the version of python。 - 代理会自动运行
python --version。 - 向代理提出问题:
Downloadwww.google.comhome page。 - 代理尝试
curl。Antigravity 会检测到拒绝列表中的curl并阻止执行,同时提示您进行手动批准。
浏览器安全性
Antigravity 能够浏览网页是一项超能力,但也是一个漏洞。访问遭入侵的文档网站的代理可能会遇到提示注入攻击。
为防止出现这种情况,您可以为浏览器代理实现浏览器网址许可名单。
您可以前往 Antigravity — Settings,然后前往 Advanced Settings,查看此功能的当前设置。您应该会看到“浏览器网址许可名单”部分,如下所示:

点击“打开许可名单文件”,系统会在文件夹 HOME/.gemini/antigravity/browserAllowlist.txt. 中打开该文件。您可以在此处确保只输入受信任的网域。
12. 总结和后续步骤
恭喜!您现在已成功安装 Antigravity、配置环境,并了解如何控制代理。
后续还有哪些变化?如需了解 Antigravity 在构建实际应用(包括动态会议网站和效率应用)方面的实际应用,请继续学习下一个 Codelab:使用 Google Antigravity 进行构建。
参考文档
- 官方网站:https://antigravity.google/
- 文档:https://antigravity.google/docs
- 使用情形:https://antigravity.google/use-cases
- 下载:https://antigravity.google/download
- Google Antigravity 的 YouTube 频道:https://www.youtube.com/@googleantigravity