1. 簡介
在本程式碼研究室中,您將瞭解 Google Antigravity (本文其餘部分簡稱 Antigravity),這是以代理程式為主的開發平台,可將 IDE 發展成以代理程式為主的時代。
與僅能自動完成程式碼行的標準程式碼助理不同,Antigravity 提供「任務控制中心」,可管理自主代理程式,這些程式能規劃、編寫程式碼,甚至瀏覽網路,協助您建構內容。
Antigravity 平台以「代理程式優先」為設計原則,這項技術的前提是,AI 不只是編寫程式碼的工具,而是能夠自主規劃、執行、驗證及反覆處理複雜工程工作的自主型角色,且幾乎不需要人為介入。
課程內容
- 安裝及設定 Antigravity
- 瞭解 Antigravity 的重要概念,例如代理程式管理員、編輯器、瀏覽器等
- 透過 Antigravity 探索幾個用途
軟硬體需求
目前 Antigravity 僅適用於個人 Gmail 帳戶的預先發布版。並提供免費配額,供您使用頂尖模型。
您必須在本機系統上安裝 Antigravity。這項產品適用於 Mac、Windows 和特定 Linux 發行版本。除了自己的機器,您還需要下列項目:
- Chrome 網路瀏覽器
- Gmail 帳戶 (個人 Gmail 帳戶)。
本程式碼研究室適合所有程度的使用者和開發人員 (包括初學者)。
回報問題
在逐步完成程式碼研究室和使用 Antigravity 時,您可能會遇到問題。
如要回報程式碼研究室相關問題 (錯字、錯誤的操作說明),請點選本程式碼研究室左下角的 Report a mistake 按鈕開啟錯誤回報單:

如要回報 Antigravity 相關錯誤或要求功能,請在 Antigravity 內回報問題。您可以在 Agent Manager 中執行這項操作,方法是點選左下角的 Provide Feedback 連結:

你也可以點選個人資料圖示下方的 Report Issue 連結,前往編輯器:

2. 安裝
首先,請安裝 Antigravity。目前這項產品提供預覽版,您可以使用個人 Gmail 帳戶開始使用。
前往下載頁面,然後點選適用於您情況的作業系統版本。啟動應用程式安裝程式,並在電腦上安裝。安裝完成後,請啟動 Antigravity 應用程式。畫面應會顯示類似下方的內容:

請每次都點選 Next。主要步驟如下:
Choose setup flow:系統會顯示選項,讓您從現有的 VS Code 或 Cursor 設定匯入。我們將重新開始。Choose an Editor theme type:我們會採用深色主題,但這完全取決於你。How do you want to use Antigravity agent:

讓我們進一步瞭解這項設定,並請注意,這項設定並非一成不變,隨時可以變更,即使是在與代理程式互動時也一樣。
在深入探討選項之前,我們先來看看這裡的兩個特定屬性 (對話方塊右側顯示的屬性)。
終止執行政策
這是指授予 Agent 在終端機中執行指令 (應用程式/工具) 的能力。這裡有三個選項。
Off:一律不會自動執行終端機指令 (可設定的允許清單中的指令除外)Auto:代理程式會決定是否自動執行任何指定的終端機指令。如果需要取得你的授權,系統會自行判斷並要求授權。Turbo:一律自動執行終端機指令 (可設定的拒絕清單中的指令除外)
查看政策
Agent 執行工作時,會建立各種構件 (工作計畫、實作計畫等)。審查政策的設定方式可讓您決定由誰判斷是否需要審查。你是否一律要審查,或是讓代理程式決定。因此,這裡也有三種做法。
Always Proceed:仲介從未要求評論Agent Decides:代理商會決定何時要求審查Request Review:代理商一律要求審查
瞭解這點後,您會發現這 4 個選項只是終端機執行和審查政策的特定預設值,其中 3 個選項是預設值,第 4 個選項則可完全自訂。我們提供這 4 個選項,讓您選擇要授予 Agent 多少自主權,以便在終端機中執行指令,並在繼續執行工作前取得審查的構件。
這 4 個選項分別是:
- 代理程式導向開發
- 代理輔助開發
- 以審查為導向的開發
- 自訂設定
「Agent 輔助開發」選項可取得良好平衡,也是建議的選項,因為 Agent 可以做出決策,並返回使用者要求核准。
選擇所需做法,目前建議採用建議做法。
Configure your Editor:選擇偏好設定。Sign in to Google:如前所述,如果您有個人 Gmail 帳戶,即可免費使用 Antigravity 的預覽模式。立即使用帳戶登入。請務必讓系統為此建立新的 Chrome 設定檔。瀏覽器隨即會開啟,讓您登入。驗證成功後,您會看到類似下方的訊息,並返回 Antigravity 應用程式。隨波逐流。Terms of Use:您可以決定是否要啟用這項功能,然後點選Next。
這會帶您來到關鍵時刻,Antigravity 將等候與您合作。
3. 服務專員管理員
我們準備好開始了!
Antigravity 是以開放原始碼的 Visual Studio Code (VS Code) 為基礎,但大幅改變使用者體驗,將重點從文字編輯轉向代理程式管理。介面會分成兩個主要視窗:Editor 和 Agent Manager。這種關注點分離反映了個人貢獻和工程管理之間的區別。
代理程式管理員:任務控管
啟動 Antigravity 後,使用者通常不會看到檔案樹狀結構,而是看到 Agent Manager,如下所示:

這個介面是 Mission Control 資訊主頁,這項工具專為高階自動化調度管理而設計,可讓開發人員在不同工作區或工作之間,產生、監控及與多個非同步運作的代理互動。
在這個檢視畫面中,開發人員扮演架構師的角色。他們會定義高層級目標,例如:
- 重構驗證模組
- 更新依附元件樹狀結構
- 為結帳 API 產生測試套件
如上圖所示,每個要求都會產生專屬的代理程式執行個體。使用者介面會以視覺化方式呈現這些平行工作流程,顯示每個代理程式的狀態、產生的構件 (計畫、結果、差異) 和任何待處理的人工核准要求。
先前的 IDE 較偏向聊天機器人體驗,屬於線性且同步,而這項架構可解決這項主要限制。在傳統的對話介面中,開發人員必須等待 AI 生成程式碼,才能提出下一個問題。在 Antigravity 的管理員檢視畫面中,開發人員可以同時派遣五位不同的代理程式處理五個不同的錯誤,有效提高處理量。
點選 Next 後,您可以選擇開啟工作區。

只要將工作區視為 VS Code 中的工作區,即可完成設定。因此,我們可以點按按鈕開啟本機資料夾,然後選取要開始使用的資料夾。以我為例,我在主資料夾中有名為 my-agy-projects 的資料夾,並選取該資料夾。你可以使用完全不同的資料夾。請注意,您也可以完全略過這個步驟,日後再開啟工作區。
完成這個步驟後,您會進入「Agent Manager」視窗,如下所示:

你會發現應用程式已準備就緒,可立即在所選工作區資料夾 (my-agy-projects) 中開始新的對話。您可以使用現有的其他 AI 應用程式 (Cursor、Gemini CLI) 工作知識,並使用 @ 和其他方式,在提示中加入額外背景資訊。
請務必查看「Planning」和「Model Selection」下拉式選單。您可以透過「模型選取」下拉式選單,為代理程式選擇目前可用的模型。清單如下所示:

同樣地,我們發現 Agent 會處於預設的 Planning 模式。但我們也可以選擇 Fast 模式。

讓我們看看說明文件的相關內容:
Planning:代理程式可以在執行工作前規劃。適用於深入研究、複雜工作或協作。在此模式下,代理程式會將工作歸類為工作群組、產生構件,並採取其他步驟,徹底研究、思考及規劃工作,以達到最佳品質。您會在這裡看到更多輸出內容。Fast:Agent 會直接執行工作。適用於可快速完成的簡單工作,例如重新命名變數、啟動幾個 Bash 指令,或其他較小型的本機工作。如果速度是重要因素,且工作簡單到不必擔心品質變差,這項功能就非常實用。
如果您熟悉代理程式中的思考預算和類似詞彙,可以將這項功能視為控制代理程式思考的能力,進而直接影響思考預算。我們目前會使用預設值,但請注意,Gemini 3 Pro 模型推出時,所有人的可用配額有限,因此如果免費配額用盡,系統會顯示適當的訊息。
現在讓我們花一點時間瞭解代理程式管理員 (視窗),釐清一些事項,包括基本建構模塊、如何在 Antigravity 中導覽等。Agent Manager 視窗如下所示:

請參考上圖中的數字:
Inbox:這項功能可讓您集中追蹤所有對話。指派工作給 Agent 後,這些工作會顯示在收件匣中,點選收件匣即可查看所有目前的對話清單。輕觸任一對話即可查看所有來回訊息、工作狀態、Agent 生成的內容,甚至是等待您核准的工作。這樣一來,您之後就能返回先前處理的工作。這項功能非常實用。Start Conversation:按一下即可開始新對話。系統會直接將您導向顯示Ask anything的輸入欄位。Workspaces:我們提到工作區,以及您可以在任何工作區中工作。你隨時可以新增更多工作區,並在開始對話時選取任何工作區。Playground:這是個很棒的方法,您只要與代理程式開始對話,然後視需要將對話轉換為工作區,即可嚴格控管檔案等項目。您可以將這個區域視為草稿區。Editor View:目前我們位於「代理程式管理員」檢視畫面。如要切換回編輯器檢視畫面,隨時都可以。這會顯示工作區資料夾和產生的任何檔案。您可以直接編輯檔案,甚至在編輯器中提供內嵌指引或指令,讓 Agent 根據您修改後的建議/指示執行動作或進行變更。我們會在後續章節中詳細說明編輯器檢視畫面。Browser:最後,我們來談談 Antigravity 的其中一項明顯差異化特點,也就是與 Chrome 瀏覽器的緊密整合。請參閱下一節,開始設定瀏覽器。
4. Antigravity 瀏覽器
如文件所述,當代理程式想與瀏覽器互動時,會叫用瀏覽器子代理程式來處理手邊的工作。瀏覽器子代理程式會執行專門的模型,在 Antigravity 管理的瀏覽器中開啟的頁面上運作,這與您為主要代理程式選取的模型不同。
這個子代理程式有權存取各種控制瀏覽器所需的工具,包括點選、捲動、輸入、讀取控制台記錄等。Gemini 也能透過 DOM 擷取、螢幕截圖或 Markdown 剖析功能讀取開啟的網頁,以及錄製影片。
也就是說,我們需要啟動並安裝 Antigravity 瀏覽器擴充功能。我們將在 Playground 中發起對話,並逐步完成相關步驟。
選取 Playground,然後將下列工作 go to antigravity.google 指派給代理程式,如下所示:

提交工作。你會看到代理程式分析工作,並可檢查思考過程。在某個時間點,系統會正確繼續執行,並提及需要設定瀏覽器代理程式,如下所示。按一下 Setup。

系統會開啟瀏覽器並顯示訊息,提示您安裝擴充功能,如下所示:

繼續操作,系統會引導您安裝 Chrome 擴充功能。

成功安裝擴充功能後,Antigravity Agent 就會開始運作,並顯示訊息,要求您授權執行工作。開啟的瀏覽器視窗中應該會顯示一些活動:

切換回 Agent Manager 檢視畫面,您應該會看到以下內容:

我們要求 Agent 前往 antigravity.google 網站,因此這正是我們預期的結果。授予權限後,您會發現系統已安全地導向該網站,如下所示:

5. 構件
Antigravity 會在規劃及完成工作時建立「構件」,藉此傳達工作內容並取得人類使用者的意見回饋。包括豐富的 Markdown 檔案、架構圖、圖片、瀏覽器錄影、程式碼差異等。
構件可解決「信任差距」,如果代理程式聲稱「我已修正錯誤」,開發人員先前必須閱讀程式碼才能驗證。在 Antigravity 中,代理程式會產生證明這點的構件。
Antigravity 主要產生的構件如下:
Task Lists:在編寫程式碼之前,代理程式會生成結構化計畫。您通常不需要編輯這項計畫,但可以查看,並視需要新增留言來變更計畫。Implementation Plan:用於在程式碼集內設計變更,以完成工作。這些計畫包含必要修訂內容的技術詳細資料,除非您將構件審查政策設為「一律繼續」,否則使用者必須審查這些計畫。Walkthrough:代理程式完成工作實作後,就會建立這份文件,當中會摘要說明變更內容和測試方式。Code diffs:雖然嚴格來說不是構件,但 Antigravity 也會產生程式碼差異,供您審查及加上註解。Screenshots:代理程式會擷取變更前後的 UI 狀態。Browser Recordings:適用於動態互動 (例如「按一下登入按鈕、等待微調器、確認資訊主頁載入」,代理程式會錄製工作階段影片。開發人員可以觀看這部影片,確認應用程式符合功能性需求,不必自行執行應用程式。
系統會產生構件,並顯示在代理程式管理員和編輯器檢視畫面中。
在「編輯器」檢視畫面中,按一下右下角的 Artifacts,即可執行下列操作:

在「代理程式管理員」檢視畫面中,右上方的 Review changes 旁應該會顯示切換構件的按鈕。如果已切換,則會顯示產生的構件清單:

您應該會看到如下所示的「構件」檢視畫面。在本例中,我們指示 Agent 瀏覽 antigravity.google 頁面,因此 Agent 擷取了該頁面的螢幕截圖,並製作了相關影片:

您可以在編輯器檢視畫面中,查看 Review Changes 的程式碼差異:

開發人員可以使用「Google 文件風格的註解」,與這些構件和程式碼差異互動。你可以選取特定動作或工作,然後提供指令,並將指令提交給智慧助理。然後,代理程式會吸收這些意見回饋,並據此進行疊代。不妨使用互動式 Google 文件,您可向作者提供意見回饋,作者再根據這些意見進行修改。
6. 返回收件匣
如果您已與代理程式展開幾次對話,現在應該可以在「Agent Manager」視窗中查看「Inbox」。這樣一來,所有對話都會顯示在畫面上。按一下任一對話即可查看對話記錄、產生的構件等。以我們的案例來說,執行第一次對話後,收件匣會顯示列出的對話,如下所示:

點選該對話即可查看詳細資料:

你也可以在這裡繼續對話。
7. 編輯者
編輯器保留了 VS Code 的熟悉感,確保資深開發人員的肌肉記憶不會受到影響。包括標準檔案總管、語法螢光標示和擴充功能生態系統。
您可以點按 Agent Manager 右上方的 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 網頁架構。我們可以在實作計畫中新增註解,改用 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 並輸入。幾秒後,工作區就會出現新檔案:test_binary_search.py、test_bubble_sort.py,其中已實作多項測試!

太棒了!
10. 保護代理程式
授權 AI 代理存取終端機和瀏覽器是一把雙面刃。這項功能可進行自主偵錯和部署,但也會開啟提示注入和資料外洩的向量。
Antigravity 透過細微的權限系統解決這個問題,該系統以終端機指令自動執行政策、允許清單和拒絕清單為中心。
首次設定 Antigravity 時,或透過設定選單時,您必須選取 Terminal Command Auto Execution 政策。這項設定會決定代理程式在 Shell 指令方面的自主權。
如要查看目前的設定,請前往 Antigravity — Settings,然後點選 Advanced Settings。您應該會看到「代理程式設定」的 Terminal 部分。如要將這項設定變更為其他值,請參考下表:
政策模式 | 說明 |
關閉 | 除非明確允許,否則代理程式絕不會自動執行終端機指令。 |
自動 | 代理程式會根據內部安全模型,決定是否執行。並要求取得危險指令的權限。 |
強化型 | 除非明確拒絕,否則代理程式一律會自動執行指令。 |
設定許可清單
「允許清單」主要與「關閉」政策搭配使用。這代表正向安全模式,也就是除非明確允許,否則一律禁止。這是最安全的設定。
逐步設定
- 將「Terminal Command Auto Execution」(終端機指令自動執行) 設定設為「Off」(關閉)。
- 點選「Allow List Terminal Commands」(允許的終端機指令清單) 旁的「Add」(新增) 按鈕,在該清單中新增下列指令:
ls -al。你也可以視需要新增其他終端機指令。
測試許可清單
- 詢問虛擬服務專員:
List the files in this directory。 - 代理程式會
ls自動執行。 - 詢問虛擬服務專員:
Delete the <some file> - 代理程式會嘗試
rm <filepath>,但 Antigravity 會封鎖該要求,並強制進行使用者審查,因為rm不在允許清單中。執行指令前,Antigravity 應該會要求您授予權限。
設定拒絕清單
拒絕清單是 Turbo (有時也包括自動) 政策的保障措施。這代表負面安全模型,也就是允許所有項目,除非明確禁止。這類做法仰賴開發人員預測所有可能的危險,雖然風險較高,但速度最快。
逐步設定
- 將「Terminal Command Auto Execution」(終端機指令自動執行) 設定設為「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。您應該會看到「瀏覽器網址許可清單」部分,如下所示:

按一下「Open Allowlist File」,即可開啟資料夾中的檔案 HOME/.gemini/antigravity/browserAllowlist.txt. 您可以確保只在此處輸入信任的網域。
11. 用途
我們已對這項產品有基本瞭解,接下來就深入探討幾個實際使用情境。請注意,Antigravity 是以代理程式為優先的平台。也就是說,在大多數情況下,我們只是向代理程式下達指令,代理程式就會自行完成工作、視需要要求權限、產生構件,並在工作完成時通知我們。因此,我們無法在下列每個用途中,產生 Agent 對話的每個輸出內容。我們會分享操作說明和預期結果的幾張必要螢幕截圖,但您的結果可能略有不同。
我們將介紹的用途包括:自動執行外部網站的幾項工作、為專案產生及驗證單元測試案例,以及完整網站開發。開始導航
新聞重點
這是簡單的用途,但您可以此為基礎,使用網頁瀏覽器造訪網站、擷取資訊、執行一些動作,然後將資料傳回給使用者。
在本例中,我們將前往 Google 新聞網站,並從中擷取一些資訊。但您可以輕鬆試用所選網站,看看成效如何。
確認您位於 Agent Manager 中,並已選取 Playground,如下所示:

然後下達下列指令:

這會啟動 Agent 程序,並判斷是否需要啟動瀏覽器等。請密切注意「思考」程序,瞭解 Agent 的工作方式。如果一切順利,系統應會啟動 Antigravity 瀏覽器,並前往如下所示的網站。網站周圍的藍色邊框表示 Agent 現在正在控制瀏覽器,並瀏覽網站以取得資訊。

完成工作後,您應該也會看到產生的構件,如下所示:

以下是 Agent 的執行範例:

請注意,左側是「思考過程」,您也可以捲動瀏覽各個重點,並查看播放內容和其他資料。
體驗功能
- 瞭解這點後,請選擇可用的網站,並讓 Agent 前往該網站取得/摘要一些資料。請考慮使用您知道有資訊主頁和圖表的網站,並要求選取幾個值。
- 請嘗試使用下列提示:
Visit https://docs.cloud.google.com/release-notes and get me a summary of the release notes, categorized by product.
使用 Python + Flask 生成動態網站
現在來產生完整的網頁應用程式。我們要建立的網頁應用程式是一個網站,提供為期一天的技術活動資訊,當天會有許多講者發表演說。
再次確認您位於 Agent Manager,並已選取 Playground。
輸入下列提示:
I would like to generate a website that is a 1-day technical conference informational site.
The website should have the following functionality:
1. A home page that shows the current date, location, schedule and time table.
2. The 1-day event is a list of 8 talks in total.
3. Each talk has 1 or 2 max. speakers.
4. A talk has an ID, Title, Speakers, Category (1 or 2), Description and time of the talk.
5. Each speaker has a First Name, Last Name and LinkedIn url.
6. Allow for users to search by category, speaker, title.
7. Give a lunch break of 60 minutes.
8. Use dummy data for events and speakers, come up with a schedule, the event is about Google Cloud Technologies.
9. Tech Stack: Python and Flask framework on server side. Front-end is basic HTML, CSS and JavaScript.
10. Test out the site on your own for all functionality and provide a detailed README on how to setup, run and make any further changes.
11. Launch the web application for me to review.
你可以使用上述提示詞開始對話:
代理程式執行工作時,會繼續建立構件:
- 工作構件
- 實作構件
- 逐步操作構件
以下是 Agent 根據收到的工作,解讀後應執行的初始工作序列。以下是執行作業的螢幕截圖範例:

然後點按「實作計畫」構件。螢幕截圖範例如下所示:

最後是「Walkthrough」構件。其中包含 Agent 的所有操作,如下所示:

請注意,伺服器已啟動並提供網址,點選該網址後即可存取應用程式,範例螢幕截圖如下所示:

如果切換至「編輯器」,您會發現畫面中包含產生 Python Flask 應用程式的資料夾。你也會發現右側標記了 Agent mode,你也可以在那裡繼續對話。

現在,假設我們想在活動中新增更多演講。我們可以在編輯器和代理程式面板中,提供類似 Add two more talks to the schedule 的指令。
這會導致 Agent 分析需求、更新工作和實作計畫,然後驗證更新的功能。以下是範例對話:

如有需要,可以切換回 Agent Manager。這個程序可協助您瞭解從代理商管理員轉移至編輯者、相應進行變更等程序。
體驗功能
- 在應用程式中新增其他功能。向代理提供詳細資料,並注意代理如何完成工作,例如先修改工作清單,然後修改實作計畫等。
- 要求 Agent 為應用程式產生 README 或更多說明文件。
生成簡單的生產力應用程式
我們現在要產生簡單的 Pomodoro 計時器網頁應用程式。
確認您位於 Agent Manager,並已選取 Playground。輸入下列提示:
Create a productivity app that features a Pomodoro timer. Give a calm and aesthetic look to the application.
請注意,這項功能會先建立工作清單和實作計畫,然後再執行這些計畫。請持續留意流程,系統可能會在某些情況下提示你進行審查。以下是執行範例。

在這種情況下,它也應該啟動 Antigravity 瀏覽器,自行進行測試,然後確認測試成功。其中一項生成的內容是媒體構件,內含驗證影片。這是查看測試內容的好方法。我也建議進行一些樣式變更,因為這些變更並未生效,但系統能夠執行。
最終應用程式如下所示,看起來相當不錯。

我們可以在應用程式中加入好看的計時器圖片。我們只需要發出後續指示,如下所示:
Add an image to the application that displays a timer.
因此,代理程式會在「工作」構件中新增工作:

然後在執行工作時生成圖片:

最後,應用程式會顯示我們要求的圖片:

體驗功能
- 請注意,應用程式中沙漏圖示的背景不是透明的。請代理程式將背景設為透明。
- 嘗試生成幾個應用程式變化版本。嘗試不同風格、圖片,要求變更等。
生成單元測試、模擬存根及驗證測試
我們將在此嘗試的最後一個用途,是為特定程式碼檔案生成單元測試,並讓 Agent 執行及驗證測試。
為此,我們將建立一個工作區,其中包含單一 Python 檔案,如下所示:
from typing import Dict
# --- Custom Exceptions ---
class InventoryShortageError(Exception):
"""Raised when there is not enough item stock."""
pass
class PaymentFailedError(Exception):
"""Raised when the payment gateway rejects the transaction."""
pass
class InvalidOrderError(Exception):
"""Raised when the order violates business rules."""
pass
# --- External Service Interfaces (To be Mocked) ---
class InventoryService:
def get_stock(self, product_id: str) -> int:
"""Connects to DB to check stock."""
raise NotImplementedError("Real connection required")
def decrement_stock(self, product_id: str, quantity: int):
"""Connects to DB to reduce stock."""
raise NotImplementedError("Real connection required")
class PaymentGateway:
def charge(self, amount: float, currency: str) -> bool:
"""Connects to Stripe/PayPal."""
raise NotImplementedError("Real connection required")
# --- Main Business Logic ---
class Order:
def __init__(self,
inventory_service: InventoryService,
payment_gateway: PaymentGateway,
customer_email: str,
is_vip: bool = False):
self.inventory = inventory_service
self.payment = payment_gateway
self.customer_email = customer_email
self.is_vip = is_vip
self.items: Dict[str, Dict] = {} # {product_id: {'price': float, 'qty': int}}
self.is_paid = False
self.status = "DRAFT"
def add_item(self, product_id: str, price: float, quantity: int = 1):
"""Adds items to the cart. Rejects invalid prices or quantities."""
if price < 0:
raise ValueError("Price cannot be negative")
if quantity <= 0:
raise ValueError("Quantity must be greater than zero")
if product_id in self.items:
self.items[product_id]['qty'] += quantity
else:
self.items[product_id] = {'price': price, 'qty': quantity}
def remove_item(self, product_id: str):
"""Removes an item entirely from the cart."""
if product_id in self.items:
del self.items[product_id]
@property
def total_price(self) -> float:
"""Calculates raw total before discounts."""
return sum(item['price'] * item['qty'] for item in self.items.values())
def apply_discount(self) -> float:
"""
Applies business logic:
1. VIPs get flat 20% off.
2. Regulars get 10% off if total > 100.
3. No discount otherwise.
"""
total = self.total_price
if self.is_vip:
return round(total * 0.8, 2)
elif total > 100:
return round(total * 0.9, 2)
return round(total, 2)
def checkout(self):
"""
Orchestrates the checkout process:
1. Validates cart is not empty.
2. Checks stock for all items.
3. Calculates final price.
4. Charges payment.
5. Updates inventory.
"""
if not self.items:
raise InvalidOrderError("Cannot checkout an empty cart")
# 1. Check Inventory Logic
for product_id, data in self.items.items():
available_stock = self.inventory.get_stock(product_id)
if available_stock < data['qty']:
raise InventoryShortageError(f"Not enough stock for {product_id}")
# 2. Calculate Final Price
final_amount = self.apply_discount()
# 3. Process Payment
try:
success = self.payment.charge(final_amount, "USD")
if not success:
raise PaymentFailedError("Transaction declined by gateway")
except Exception as e:
# Catching generic network errors from the gateway
raise PaymentFailedError(f"Payment gateway error: {str(e)}")
# 4. Decrement Stock (Only occurs if payment succeeded)
for product_id, data in self.items.items():
self.inventory.decrement_stock(product_id, data['qty'])
self.is_paid = True
self.status = "COMPLETED"
return {"status": "success", "charged_amount": final_amount}
請確認您在本機資料夾中有上述 Python 檔案,並在 Antigravity 中將該檔案載入為「工作區」。
這是簡單的 Order 服務,在 checkout 函式中具有下列主要功能:
- 驗證購物車是否為空。
- 查看所有商品的庫存。
- 計算最終價格。
- 收取費用。
- 更新庫存。
我們將指派代理程式生成單元測試案例、提供模擬實作,並執行測試,確保測試成功。
我們會開啟特定工作區資料夾,您會發現現在也可以使用 @ 符號參照檔案。舉例來說,我們可能會採取下列行動:

系統會顯示檔案的說明:

我們可以透過提示要求生成更優質的視覺化效果:
Can you visually show this class for better understanding

下一步是產生單元測試,並要求 Agent 進行測試。我輸入下列提示:
generate unit tests for this module and test it out with mock implementations.
並生成下列工作構件,然後開始執行工作。

您也可以查看執行的測試詳細資料:

其中一個生成的檔案也是測試檔。螢幕截圖如下所示:

體驗功能
您可以自行提供程式碼,並要求 Agent 執行各種操作,例如新增更多功能,或是重構部分程式碼。
12. 恭喜
恭喜,您已成功安裝 Antigravity,並瞭解如何使用這個以代理程式為優先的開發平台。我們嘗試的各種用途應有助於您瞭解自身需求,並探索 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