需求訪談 Workflow:從 Cloud Code 到 Antigravity 的 AskUserQuestionTool 移植
在 AI Agent 協作開發的過程中,最困難的往往不是寫程式,而是「把需求講清楚」。Google 的 Cloud Code 內部曾經有一個非常實用的工具叫 AskUserQuestionTool,專門用來進行結構化的需求訪談。當我開始使用 Antigravity 後,發現它沒有內建類似功能,於是我將這個概念提取出來,改造成 Antigravity 的 workflow:requirements-interview。
什麼是 AskUserQuestionTool?
在 Cloud Code 的 Agent 架構中,AskUserQuestionTool 是一個特殊的工具,讓 Agent 能夠主動向使用者提問並等待回應。它的核心價值在於:
- 多輪對話能力:不是一次性問完所有問題,而是根據使用者的回答動態調整後續問題
- 結構化訪談:按照預定義的框架逐步收集資訊
- 自動整理:將訪談結果整理成完整的需求文件
這個工具在 Cloud Code 內部被用於:
- 收集 Feature Request 的完整需求
- 協助 PM 進行產品規劃
- 幫助工程師理解模糊的需求
為什麼要移植到 Antigravity?
Antigravity 是一個強大的 AI coding agent,但它的互動模式主要是「任務導向」——你給一個目標,它就開始執行。這在寫程式時很有效率,但在需求不明確時會產生問題:
- 過度假設:Agent 會根據有限資訊自行腦補需求
- 來回修改:因為需求不清楚導致反覆重做
- 資訊散落:對話歷史中的需求點很難追溯
因此,我將 Cloud Code 的 AskUserQuestionTool 的理念,改造成 Antigravity 的 workflow 格式,讓 Agent 能夠系統化地進行需求訪談。
Requirements Interview Workflow 的設計
核心理念
這個 workflow 的設計遵循三個核心原則:
- 分區塊訪談:將需求拆成 6 個區塊,每個區塊專注於特定面向
- 小批次提問:一次只問 1-2 題,避免資訊過載
- 確認式推進:每個區塊結束都要總結並確認理解
6 個訪談區塊
區塊 A:背景與商業目標 (5-6 題)
這個階段要搞清楚:
- 為什麼要做這個功能?
- 商業價值在哪裡?
- 有沒有明確的 KPI?
範例問題:
- 這個產品/功能的主要目的是什麼?想解決什麼問題?
- 有沒有具體的商業指標或 KPI?(例如:提升轉換率 X%、減少處理時間 Y 分鐘)
區塊 B:目標使用者與使用情境 (6-7 題)
深入理解使用者:
- 誰會用這個功能?
- 在什麼情境下使用?
- 現在的痛點是什麼?
範例問題:
- 主要使用者是誰?請描述他們的角色
- 使用者目前是怎麼處理這件事的?現有的痛點是什麼?
區塊 C:主要流程與關鍵情境 (7-8 題)
釐清具體的使用流程:
- 從開始到結束的完整流程
- 關鍵步驟與決策點
- 系統整合需求
範例問題:
- 請描述一個最典型的使用流程(從開始到結束)
- 這個流程會跟其他系統整合嗎?
區塊 D:邊界情境與錯誤處理 (5-6 題)
處理異常情況:
- 錯誤輸入怎麼辦?
- 中途離開如何處理?
- 並發情境的應對方式
範例問題:
- 如果使用者輸入錯誤或不完整的資料,系統應該怎麼反應?
- 如果中途取消或離開,資料應該怎麼處理?
區塊 E:非功能需求 (6-7 題)
技術與營運維度:
- 效能需求(回應時間、並發數)
- 安全性與權限控管
- 合規性要求
- 可維護性與整合性
範例問題:
- 預期同時有多少使用者?每秒處理多少請求?
- 有沒有敏感資料需要特別保護?需要什麼層級的權限控管?
區塊 F:驗收標準與成功指標 (4-5 題)
定義「完成」的標準:
- 具體的驗收條件
- 上線後追蹤的指標
- 成效回顧時間點
範例問題:
- 你怎麼知道這個功能做成功了?有沒有具體的驗收條件?
- 上線後需要追蹤哪些指標?
輸出格式
訪談完成後,workflow 會自動產出一份結構化的需求文件,包含:
- 產品背景與目標
- 使用者輪廓
- 功能需求(含 User Stories)
- 邊界情境與錯誤處理
- 非功能需求表格
- 驗收標準
- 開放問題清單
使用方式
在 Antigravity 對話中,只要輸入:
/requirements-interview
Agent 就會自動啟動需求訪談流程。過程中你還可以使用快捷指令:
跳過:跳過當前問題下一區:跳到下一個區塊整理:直接進入整理階段暫停:暫停訪談,可稍後繼續重來:重新開始某個區塊
實際應用場景
這個 workflow 特別適合以下場景:
1. 模糊需求的結構化
當你有一個點子,但還沒想清楚細節:
USER: /requirements-interview
AGENT: 你想做什麼產品/功能?請用一句話描述。
USER: 我想做一個幫電商自動生成商品描述的 AI 工具
AGENT: 收到!接下來會進行 6 個區塊的訪談,每個區塊 5-8 題左右...
2. 跨團隊溝通
當 PM 跟工程師對需求理解不一致:
透過結構化訪談,可以確保雙方對「商業目標」、「使用者情境」、「技術限制」有共同理解。
3. 需求文件產出
取代傳統手寫 PRD 的繁瑣過程:
Agent 會根據訪談內容自動產出格式化的需求文件,包含 User Stories、驗收標準、非功能需求表格等。
與 Cloud Code 的差異
雖然核心理念來自 Cloud Code 的 AskUserQuestionTool,但 Antigravity 版本有幾個重要差異:
1. 實作方式
- Cloud Code:內建的 Tool,Agent 可以直接調用
- Antigravity:透過 Workflow 模擬,使用 Markdown 格式定義流程
2. 互動模式
- Cloud Code:真正的「工具呼叫」,每次提問都是一個 Tool invocation
- Antigravity:由 Agent 自己理解 Workflow 指示並執行,更依賴 Agent 的理解能力
3. 靈活性
- Cloud Code:流程相對固定
- Antigravity:使用者可以自由修改
.agent/workflows/requirements-interview.md來調整問題清單
重要原則
根據實際使用經驗,這個 workflow 要發揮最大效果需要注意:
1. 一次只問 1-2 題
避免資訊過載,讓使用者能專注回答。
2. 追問細節
如果回答模糊,Agent 應該主動追問,不要自行腦補。
3. 不要假設
沒問過的就不要寫進需求文件,保持「開放問題」區供後續補充。
4. 小結確認
每個區塊結束都要用 3 行總結並要求確認,確保理解一致。
5. 標記不確定
把還需要確認的問題明確標註在「開放問題」區,避免遺漏。
技術細節:Workflow 的運作方式
Antigravity 的 workflow 是一個智慧的約定:
- Markdown 格式定義:在
.agent/workflows/目錄下放置.md文件 - YAML Front Matter:定義 workflow 的描述,用於觸發條件判斷
- 結構化指示:在 Markdown 內容中用清晰的標題和條列式指示引導 Agent
- Turbo 標記:
// turbo-all可以讓某些步驟自動執行(本 workflow 中用於加速訪談流程)
範例結構:
---
description: 需求訪談助手 - 模擬 AskUserQuestionTool 的多輪訪談流程
---
# 需求訪談 Workflow
## 使用方式
在對話中輸入 `/requirements-interview` 即可啟動
## 訪談流程
### 階段 0:啟動確認
1. Agent 先詢問...
2. 收到回答後...
未來展望
這個 workflow 目前還在持續改進中,未來可能加入:
- 範本庫:針對不同產品類型(SaaS / 電商 / 內部工具)提供專屬問題集
- 自動優先級排序:根據回答內容自動判斷哪些功能應該優先實作
- 整合 User Story Mapping:自動產生 Story Map 視覺化
- 需求變更追蹤:當需求有變動時,能追蹤影響範圍
結語
從 Cloud Code 的 AskUserQuestionTool 到 Antigravity 的 requirements-interview workflow,這個移植過程讓我理解到:好的需求訪談不是問更多問題,而是問對的問題。
透過結構化的 6 區塊訪談,我們能夠:
- 避免過度假設
- 確保需求完整性
- 減少來回修改
- 產出可執行的需求文件
如果你也在使用 Antigravity 或類似的 AI coding agent,不妨試試這個 workflow,讓 AI 不只會寫程式,更能幫你「問對問題」。
相關資源:
- Workflow 檔案位置:
.agent/workflows/requirements-interview.md - 使用指令:
/requirements-interview - 修改建議:可依專案需求調整各區塊問題清單
標籤建議:#AI #Workflow #RequirementsEngineering #Antigravity #ProductManagement
- ← Previous
Vercel vs Cloudflare vs Netlify:多語言 Serverless API 部署完全指南 - Next →
從 Serverless 到 PaaS:Vercel、Railway 與 Fly.io 多語言 API 部署全解析