一個人抵一個團隊?Google Antigravity 多代理人(Multi-Agent)開發工作流實戰:從架構設計到自動部署
☰ 目錄 table-of-contents.md
Multi-Agent 工作流到底解決了什麼問題?
這篇要回答的核心問題是:當 AI 從「補全一行程式碼」進化到「一群代理人協作完成整個功能」,工程師該如何配置與駕馭這套流程?答案其實很直接,在 Google Antigravity 裡,你不再寫落落長的 Prompt,而是用一個 ag.yaml 設定檔,把「架構師、工程師、資安審查、測試」這些角色與它們之間的資料流向定義出來,讓 AI 代理人彼此分工、互相把關、自動迭代。
但要先講清楚的是:Multi-Agent 不是銀彈,是加速器。它能把繁瑣的 CRUD 與基礎驗證的時間壓縮掉,卻無法替你承擔架構層級的判斷與業務邏輯的正確性。看完這篇,你會知道怎麼配置一套可運作的 WordPress 開發工作流,也會知道它的三個典型陷阱在哪。
嗨,我是 Eric。如果你現在還在用 2024 年那種「一個 Prompt,一段 Code」的方式在寫程式,那真的該抬頭看看 2026 年的風景了。這兩年技術圈的變動,比過去十年加起來還大。尤其是 Google Antigravity 發布後,我們工程師的角色已經從「建築工」變成了「工頭」。
以前我們用 Copilot,它像個實習生,你寫一行它猜下一行;現在用 Google Antigravity 的 Multi-Agent(多代理人)系統,感覺像是你雇用了一整支資深團隊:一個負責架構,一個負責寫後端,一個負責寫測試,甚至還有一個專門挑毛病的資安專家。
今天這篇不講虛的,我要直接帶大家實戰:在 Google Antigravity 環境中,配置一套針對 WordPress 開發的「多代理人工作流」,體驗什麼叫「一個人抵一個團隊」的開發爽感。
什麼是 Google Antigravity 的 Multi-Agent 架構?
在開始寫 Code 之前,得先矯正一個觀念。很多人以為 Antigravity 只是一個比較強的雲端 IDE,但它真正的核心在於 Agent Orchestration(代理人編排)。
單線程 vs. 網狀協作:差別在哪?
傳統的 AI 輔助開發是單線程的:你問,它答,所有上下文都塞在同一條對話裡。而 Multi-Agent 是網狀的協作。當你發出一個需求(例如「幫我寫一個 WordPress 預約外掛」),Antigravity 內部的核心模型(通常是 Gemini 3 Ultra)不會直接生成程式碼,而是喚醒一組你預先定義好的「專職代理人」。
這種拆分的好處,是每個代理人都有自己聚焦的職責與評斷標準:寫程式的不必同時兼顧資安審查的思維,審查的也不被「先求能跑」的壓力干擾。職責分離(separation of concerns)本來就是軟體工程的老智慧,Multi-Agent 只是把它套用到 AI 協作上。
| 代理人 | 角色 | 主要產出 |
|---|---|---|
| Architect Agent | 架構師 | 規劃資料庫結構、API 端點,產出 Spec 規格文件 |
| Coder Agent | 工程師 | 根據 Spec 撰寫 PHP / React 程式碼 |
| Reviewer Agent | 審查員 | 檢查是否符合 PSR-12 標準、有無 SQL Injection 風險 |
| Test Agent | 測試員 | 自動生成 PHPUnit 測試案例並執行 |
這聽起來很複雜?其實在 Antigravity 裡,這些只需要一個 YAML 設定檔就能搞定。
實戰:配置你的 WordPress 開發特種部隊
我們現在就來實作。假設目標是開發一個具有「REST API 串接」功能的 WordPress 外掛。如果這在 2024 年,我可能要花三天手刻;在 2026 年,我們用半小時搞定架構與核心代碼。
步驟一:初始化 Gravity Space
首先,在 Antigravity 的終端機中初始化一個新的專案空間(Gravity Space)。這不是簡單的 git init,而是建立一個 AI 的上下文邊界。
ag space:init --type=wordpress --context="high-security-enterprise-plugin"
這裡的 --context 參數非常重要,它告訴所有的 Agent:「我們現在做的是企業級專案,安全性優先於開發速度」。這會直接影響 Reviewer Agent 的審核標準——同一段程式碼,在「快速原型」與「高安全性企業外掛」兩種上下文下,被要求的嚴格程度完全不同。
步驟二:定義代理人編排檔(ag.yaml)
這是本篇的精華。在專案根目錄建立 ag.yaml,這是 Google Antigravity 識別代理人角色的核心文件。我們不再寫落落長的 Prompt,而是定義「職責」與「資料流向」。
workflow:
name: "WP-Plugin-Dev-Squad"
agents:
- id: "architect_01"
role: "System Architect"
model: "gemini-3-ultra-reasoning"
instructions: |
你負責 WordPress 外掛架構設計。
必須使用 Singleton Pattern。
資料庫操作必須透過 $wpdb->prepare。
產出格式為 Markdown 規格書。
- id: "backend_dev_01"
role: "Senior PHP Developer"
model: "gemini-3-pro-coding"
dependencies: ["architect_01"]
instructions: |
根據架構師的規格書撰寫 PHP 代碼。
遵循 WordPress Coding Standards (WPCS)。
所有的 Class 都要有 namespace。
- id: "security_guard"
role: "Security Auditor"
model: "gemini-3-security-specialist"
dependencies: ["backend_dev_01"]
instructions: |
嚴格檢查輸入驗證 (Sanitization) 和輸出跳脫 (Escaping)。
如果發現 nonce 缺失,直接拒絕並退回給 backend_dev_01。
execution_flow:
- step: "design"
agent: "architect_01"
- step: "implement"
agent: "backend_dev_01"
input_from: "design"
- step: "audit"
agent: "security_guard"
input_from: "implement"
為什麼 execution_flow 是關鍵?
看到那個 execution_flow 了嗎?這就是為什麼我說 Antigravity 強大——它定義了資料的流向。每個 step 的 input_from 明確指出這一棒接的是上一棒誰的產出,整條鏈路像一條生產線。
假如 security_guard 發現問題,它會自動觸發 Loop(迴圈),把錯誤報告丟回給 backend_dev_01 重寫,直到審核通過為止。這在以前,是需要我們人類工程師自己去當這個「傳聲筒」的。
幾個值得注意的設計細節:
dependencies宣告了代理人之間的依賴,確保架構師先有產出,工程師才動工。- 把約束(必須用
$wpdb->prepare、所有 Class 要有 namespace)寫進instructions,等於把團隊的 Coding Convention 制度化,而不是每次都靠人提醒。 - Security Auditor 的「發現 nonce 缺失就退回」是一條硬性閘門,讓資安檢查變成流程的必經關卡,而非事後補救。
啟動工作流:見證奇蹟的時刻
配置好之後,我們只需要下達一個自然語言的指令。在 IDE 的 Chat 面板中輸入:
「請幫我建立一個『產品庫存同步』的外掛,當外部 API 呼叫 Webhook 時,更新 WooCommerce 產品庫存。需要驗證 HMAC 簽章。」
按下 Enter 後,你會看到 Antigravity 的介面開始瘋狂跳動(這畫面不管看幾次都很療癒):
- Architect 開始輸出:先列出目錄結構,定義 Webhook 的 Endpoint,並決定把 Secret Key 存在
wp-config.php中。 - Backend Dev 接手:開始生成
class-webhook-handler.php,你會看到程式碼一行行出現,速度快到模糊。 - Security Guard 介入:注意!這裡通常會暫停。比如這次,Dev 可能漏了關鍵驗證,Security Agent 會標註:「Missing HMAC validation logic」。
- Backend Dev 修正:AI 自動讀取錯誤報告,補上
hash_equals的驗證邏輯。
整個過程大約 3 分鐘。如果是以前,我可能還在查 HMAC 的 PHP 寫法,或者在思考檔案結構要怎麼擺。
為什麼這個案例要用 HMAC,而不是 nonce?
這是初學者很容易混淆的地方,值得補一句原理。WordPress 的 nonce 主要用來防止 CSRF——它驗證的是「這個請求是不是來自我自己網站上、登入中的使用者操作」,本質上綁定的是使用者 session。
但 Webhook 是外部系統的伺服器對伺服器(server-to-server)呼叫,沒有瀏覽器、沒有登入 session,nonce 在這裡派不上用場。這種情境下正確的做法是 HMAC 簽章驗證:發送方用雙方共享的 Secret Key 對請求內容做雜湊簽章,接收方用同一把 Key 重算簽章再比對。
而比對時為什麼是 hash_equals 而不是直接用 ===?因為前者是時間恆定比較(constant-time comparison),能避免透過比較耗時差異反推簽章的時序攻擊(timing attack)。把 Secret Key 放在 wp-config.php 而非寫死在程式碼裡,也是為了不讓密鑰進到版本控制中。這些都是廣為人知的安全慣例,Security Agent 之所以攔下來,正是因為這條閘門被定義成了硬性規則。
工程師的小囉嗦:這不是銀彈,是加速器
雖然上面講得很神,但身為資深工程師,Eric 還是要潑點冷水。Multi-Agent 不是魔法,它不會憑空變出完美的系統。它有幾個你需要注意的坑。
1. 迴圈陷阱(Loop Traps)
如果你的指令寫得不夠明確,Coder 和 Reviewer 很容易陷入「無限吵架」的迴圈:Reviewer 說不行,Coder 改了,Reviewer 又覺得改得不對,Coder 再改回去。這時候你的 Token 費用會像變了心的女朋友一樣回不來。
所以在 ag.yaml 設定 max_iterations: 3 是保命符。更根本的解法,是讓 Reviewer 的判斷標準可量化、可二分(例如「是否呼叫了 $wpdb->prepare」這種非黑即白的條件),而不是「程式碼夠不夠優雅」這種主觀描述——主觀標準正是無限迴圈的溫床。
2. 上下文污染
雖然 Google 宣稱 Antigravity 的上下文窗口很大,但在多代理人來回傳遞資料時,早期的需求細節容易被稀釋。對於超大型的 WordPress 專案,我建議拆分成小的 Module 來跑 Agent 工作流,不要試圖一次生成整個電商網站。一次處理一個邊界清楚的模組,每個代理人需要扛的上下文越少,產出越穩定。
3. 人類還是最後的防線
Agent 寫出來的 Code 可能很乾淨、通過測試,但「邏輯」可能是錯的。例如它可能寫了一個完美的庫存扣除邏輯,卻忘了考慮併發請求(Concurrency)導致的超賣問題——兩個 Webhook 幾乎同時進來、各自讀到同一個舊庫存值、各自扣減,最後賣超。
這種問題往往需要資料庫層級的鎖(locking)或原子性更新(atomic update)才能根治,屬於架構層級的盲點。AI 很難從「單次請求看起來都對」推論出「並行時會出事」,這正是需要我們這種「人類工頭」去把關的地方。
2026 年,我們該如何自處?
學習 Google Antigravity 的 Multi-Agent 工作流,不是為了讓我們偷懶,而是為了讓我們能處理更複雜的系統。當繁瑣的 CRUD 和基礎驗證都交給 AI 代理人後,我們終於可以把時間花在更重要的事情上:業務邏輯的優化、使用者體驗的打磨,以及系統架構的創新。
別被工具淘汰,要成為駕馭工具的人。去試著把你的 ag.yaml 寫出來,你會發現,原來寫程式可以這麼像在玩戰略遊戲。
想導入 AI 自動化開發流程,卻不知道從何下手?
浪花科技擁有最前沿的 WordPress 開發技術與 AI 整合經驗,協助企業從傳統開發模式無痛轉型。無論是 Antigravity 部署還是客製化 CRM 系統,我們都能為您量身打造。立即填寫表單聯繫 Eric。
延伸閱讀
常見問題
Google Antigravity 的 Multi-Agent 架構和傳統 AI 輔助開發差在哪?
ag.yaml 設定檔在 Multi-Agent 工作流中扮演什麼角色?
Multi-Agent 工作流發現問題時會怎麼處理?
在 Antigravity 初始化專案時 --context 參數有什麼作用?
Multi-Agent 能完全取代工程師嗎?
訂閱免費電子報
把 AI 自動化、企業系統設計與 WordPress / Laravel 開發的真實案例和可直接照做的技巧,整理成電子報寄給你。只寄精選內容、不灌垃圾信,一鍵就能退訂。