Antigravity IDE 使用入门

1. 简介

Antigravity 是一个智能体开发平台,旨在帮助任何人在智能体优先时代进行构建。它由四个主要产品组成:Antigravity、Antigravity IDE、Antigravity CLI 和 Antigravity SDK。

在此 Codelab 中,我们将仅关注面向开发者的 Antigravity IDE

学习内容

  • 了解 Antigravity 平台。
  • 安装 Antigravity IDE。
  • 探索 Antigravity 编辑器和智能体面板。
  • 斜杠命令。
  • 自定义项、MCP 服务器和技能。

所需条件

Antigravity IDE 需要在您的系统(Mac、Windows 和特定 Linux 发行版)上本地安装。此外,您还需要满足以下条件:

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

报告问题

在学习此 Codelab 和使用 Antigravity 的过程中,您可能会遇到问题。

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

e7d8a6055a16a773.png

如需报告与 Antigravity 相关的 bug 或提出功能请求,请在 Antigravity 中报告问题。您可以点击 Antigravity 产品左下角的“设置”来报告产品反馈,然后选择 Provide Feedback 选项。

2. Antigravity 平台

在重点介绍 Antigravity IDE 之前,我们先来了解一下 Antigravity 平台。

Antigravity 由 4 个独立产品组成:

  • Antigravity:旗舰版独立应用,也是您并行管理多个本地智能体的指挥中心。
  • Antigravity IDE:功能齐全的智能体 IDE,面向开发者。
  • Antigravity CLI:命令行界面,用于基于终端的智能体互动。
  • Antigravity SDK:开发者以编程方式将 Antigravity 集成到自己的系统中的工具。

虽然所有产品都提供对同一底层 Antigravity 智能体的访问权限,但互动级别有所不同。

在 Antigravity 中,您可以在更高的级别与智能体互动。在与智能体的对话中,您可以说明您希望智能体构建的内容,并让智能体处理代码。您可以查看生成的代码,但不一定需要自己深入研究代码。

在 Antigravity IDE 中,您处于较低的编码级别。您仍然可以通过智能体面板与智能体对话,但也可以全面了解代码,并在生成和修改代码时获得智能体的帮助。

在 Antigravity CLI 中,您可以通过命令行界面使用智能体。同样,您仍然可以与智能体对话,并让智能体生成和修改代码,但所有操作都在终端中进行。

您可以自行选择级别。通常,您会在 Antigravity 中以较高的级别开始构建,随着复杂性的增加,您会切换到 Antigravity IDE 进行编码,或切换到 Antigravity CLI 来执行更适合终端的任务。

3. 安装

如果您已安装 Antigravity 应用,但尚未安装 Antigravity IDE,则应在右上角看到“Install IDE”按钮:

a3afce2c797f070c.png

您可以点击该按钮,也可以直接前往 Antigravity IDE 下载页面,为您的操作系统(macOS、Windows、Linux)下载并安装 Antigravity IDE。

安装完成后,您应该会看到欢迎界面:

a7bda49c67b4d971.png

使用您的 Google 账号登录,然后选择主题以继续安装。

在某个时间点,系统会询问您希望如何使用 Antigravity IDE 智能体。在此界面上,您可以调整智能体的终端执行政策、审核政策和 JavaScript 执行政策。现在,请选择审核驱动式开发

923299763a029330.png

在后续界面中,您可以配置扩展程序和 agy-ide 命令行工具。我们建议您仅安装所需的扩展程序。

c4e8005b3042b401.png

Antigravity IDE 还附带插件,这些插件是技能和 MCP 的打包集合,可帮助智能体使用 Google 开发者产品。选择您认为可能对您的工作有用的插件:

195da4a9d7b5a075.png

现在,您可以使用 Antigravity IDE 了。

4. Antigravity IDE 界面

首次启动 Antigravity IDE 时,您应该会看到 Antigravity IDE 主界面。

4a3bd4e0483365d9.png

您可以先打开本地文件夹。此外,最好通过 Terminal,然后通过 New Terminal 菜单项打开新终端。

现在,您已准备好编辑器、终端和智能体:

d1465bea8316f991.png

在编辑器中,您在输入代码时会获得 Antigravity 的 AI 帮助。在智能体面板中,您可以与智能体聊天、选择不同的模型,以及引用文件和命令。默认情况下,终端没有 AI 帮助,但如果您安装 Antigravity CLI,则可以使用 agy 命令启动它,并在终端中获得 AI 帮助。

Antigravity 设置

最好查看一下按钮右上角的 Antigravity 设置。其中包含智能体的基本设置:

14201a391e0d5955.png

高级设置 提供更多设置,例如智能体安全模式:

9c2939aafa9724b5.png

这样,您就可以指定智能体在终端命令、文件系统访问权限等方面的自由度。请务必查看这些设置,并为您的项目选择合适的设置。

5. 编辑器

我们来探索一下编辑器。创建一个 Python 文件 hello.py,以探索编辑器功能。

当您在编辑器中输入 hello.py 中的代码时,系统会启动智能自动补全功能,您可以通过按 Tab 键接受建议:

b34cd085032c2d5f.png

您会看到跳到下一个位置 建议,以便将光标移到代码中的下一个逻辑位置。例如,当您完成输入 main() 时,编辑器会要求您跳到 main 方法:

2dd69707af98c677.png

您还会看到导入 建议,用于添加缺失的依赖项:

5ce8b0b5b9fdfdcc.png

6. 智能体面板

在右侧,您会看到智能体侧边栏。如果该侧边栏不可见,您可以使用 Cmd + L 快捷键切换它。

您可以选择不同的模型类型,使用 @ 添加更多上下文(例如文件、目录、终端、MCP 服务器),或使用 / 添加命令(将在后续步骤中介绍)。

ae98a3c19c2a8fc7.png

与智能体互动最简单的方式是在对话中开始提问,但您可以通过多种方式与智能体互动。

如果您安装了静态代码检查工具(例如 Pylint),则在出错时,您会在代码中看到语法错误。如果您将鼠标悬停在编辑器中的问题上,然后选择 Explain and fix,系统会打开智能体面板,以便智能体提供说明和可能的修复方案:

db123f692200e653.png

您还可以前往 IDE 的 Problems 标签页,然后选择 Send to Agent,让智能体尝试修复这些问题:

2f95dba053a09dd5.png

您还可以使用 Cmd + L 选择终端输出的一部分(包含错误),然后将其发送到智能体对话:

b1a29237e8efd11a.png

在与智能体聊天时,您会在输入窗口顶部看到一些图标:

3b17223d6d2e7bea.png

这些图标分别是“更改概览”(查看代码更改)、“终端”(后台进程)、“制品”和“浏览器”。

7. 制品

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

  • 编码前:实现计划和任务列表。
  • 生成代码时:代码差异。
  • 编码后:演示,用于说明智能体执行的操作并验证结果。

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

我们来尝试构建一个简单的应用,看看如何在整个过程中向 Antigravity 提供反馈。

在智能体侧边栏中,尝试使用以下提示:

Build a TODO list application with Python Flask, SQlite DB, and a CRUD frontend. Keep the application simple

这将启动智能体,使其开始规划并生成实现计划。

实现计划

实现计划概述了 Antigravity 的预期操作、将使用的技术堆栈,以及对拟议更改的简要说明。

几秒钟后,您应该会在对话中看到实现计划:

935372be9721a21c.png

如果您对此感到满意,可以点击 Proceed 按钮。如果您想提供反馈,可以打开实现计划,并在提交之前添加 Google 文档样式的评论。

任务列表

实现计划更新后,Antigravity 会创建一个任务列表。这是一个具体的步骤列表,Antigravity 将按照这些步骤创建和验证应用。这是它传达进度的途径:

5eb1f122174855a8.png

代码变更

此时,Antigravity 将在新文件中生成一些代码。您可以在智能体聊天侧边栏中 Accept allReject all 这些更改,而无需查看详细信息。您还可以点击 Review changes 查看更改的详细信息,并在代码中添加详细评论。

演示

Antigravity 完成编码后,会启动服务器,并可能会打开浏览器来验证应用。它会执行一些手动测试,例如添加任务、更新任务等。最后,它会创建一个演示文件,总结它为验证应用所执行的操作。这可能包括屏幕截图或包含浏览器录制内容的验证流程。

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

撤消更改

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

8. 斜杠命令

Antigravity IDE 中提供了内置斜杠 / 命令。在智能体侧边栏中,如果您输入 /,则应该会看到命令列表:

c0b121133b3191ca.png

/goal 指示智能体运行任务直至完成,/schedule 允许将任务安排为重复任务或一次性任务。/grill-me 有助于与智能体就计划达成一致,而 /learn 有助于从对话中提取可重复使用的技能或规则。

您可以尝试使用这些命令,看看它们对您有何帮助。

9. 自定义项

Antigravity IDE 提供了几个自定义选项:规则工作流

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

3415bdfa2f263b08.png

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

工作流 是保存的提示,您可以在与智能体互动时使用 / 按需触发这些提示。它们也会指导智能体的行为,但它们是由用户按需触发的。

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

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

  • 全局规则:~/.gemini/GEMINI.md
  • 全局工作流:~/.gemini/config/global_workflows/<YOUR_WORKFLOW_NAME>.md
  • 工作区规则:your-workspace/.agents/rules/
  • 工作区工作流:your-workspace/.agents/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.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 已经知道我们的工作流:

1b5120e06e55e98.png

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

10. MCP 服务器

Model Context Protocol (MCP) 已成为帮助智能体连接到外部系统的标准。它们在确保智能体在数据和集成方面保持基础地位方面发挥着关键作用。

Antigravity IDE 支持本地和远程 MCP 服务器。它还附带与多个 MCP 服务器的集成,这些服务器可与 Google Cloud 服务搭配使用,只需点击一下即可安装,并提供一些配置数据。

点击右上角的 ...,然后选择 MCP Servers。系统会显示一个对话框,您可以在其中看到 MCP 服务器列表:

3fed0fbf1daa6df0.png

例如,您可以点击 Cloud Run 来安装其 MCP 服务器。

如果您点击右上角的 Manage MCP Servers,还可以在 ~/.gemini/config/mcp_config.json 中看到原始 MCP 服务器配置。您还可以在此文件中添加其他自定义 MCP 服务器,然后点击刷新按钮,以查看它们在 Antigravity IDE 中是否被识别。

如需使用配置的 MCP 服务器,您可以向 Antigravity 询问需要 MCP 服务器的内容。例如,您可以启用 cloudrun-mcp 服务器,然后向 Antigravity 询问以下内容:Build and deploy a Cloud Run service。这应该会提示 Antigravity 查找并使用 cloudrun-mcp 服务器来配置和部署 Cloud Run 服务。

11. 技能

虽然 Antigravity 的底层模型是强大的通才,但它们不知道您的具体项目背景或团队标准。将每个规则或工具都加载到智能体的上下文窗口会导致工具膨胀、成本增加、延迟和混乱。

技能通过渐进式披露来解决此问题。技能 是一种专门的知识包,在需要时才会处于休眠状态。只有当您的特定请求与技能的说明匹配时,它才会加载到智能体的上下文中。

结构和范围

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

  • 全局范围 (~/.gemini/config/skills/):适用于所有 Antigravity 产品(Antigravity、Antigravity IDE、Antigravity CLI)和项目。
  • 项目/工作区范围 (<project-root>/.agents/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 .agents/skills/code-review

在项目文件夹(例如我们刚刚创建的 .agents/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 文件顶部包含元数据(名称和说明),然后是指令。当智能体加载时,它只会读取技能的元数据,并且只有在需要时才会加载完整的技能指令。

我们来验证一下这项技能。与 Antigravity 开始新的对话,并询问安装了哪些技能。您应该会看到 code-review 技能:

61d2f8a77a133c46.png

试试看

在 中创建一个名为 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()

在 Antigravity 的特定项目中打开新对话,并提供以下提示:review the @demo_bad_code.py file

智能体应识别 code-review 技能,加载详细信息,然后按照 code-review/SKILL.md 文件中给出的指令执行操作。

输出示例如下所示:

12. 总结

恭喜!您现在已成功安装、配置并探索了 Antigravity IDE 的主要功能!

如需详细了解 Antigravity 平台,请查看以下 Codelab 和参考文档。

其他 Codelab

参考文档