文章三:🤖 A Tale of Two Frameworks: BMAD-Method vs. GitHub Spec Kit (兩種框架的傳說:BMAD 方法 vs. GitHub Spec Kit)
這篇文章透過一個實際的專案範例,深入比較了兩種新興的 AI 輔助開發框架:BMAD-Method 和 GitHub Spec Kit。作者清晰地展示了兩種框架在理念、流程和實踐上的核心差異。
章節詳細總結
引言 & 核心定義
- 段落重點:文章首先對兩個框架進行了核心定義:
- BMAD-Method:一個多代理方法論。它像一個盒子裡的完整專案團隊,包含分析師、產品經理、開發者等多個代理角色。你定義它們的角色,讓它們協作,從一個高層次的理念構建出一個完整的產品。其優勢在於透過為每個代理隔離上下文來管理複雜的多倉庫專案。
- GitHub Spec Kit:一個與工具無關的工具包。它不是一個代理團隊,而是一系列你用來結構化提示的命令 (
/specify,/plan,/tasks)。目標是讓你的規格文件成為唯一的真相來源,讓現有的 AI 程式設計助理(如 Copilot, Claude Code)能夠據此執行。
- 段落總結:作者精準地概括了兩者的核心區別:BMAD 是一個模擬真實團隊協作的、自上而下的代理協作系統;而 Spec Kit 則是一個提供結構化指令、由使用者主導、自下而上的提示輔助工具。
實作範例:建立「線上圖書館」Web 應用
- 專案目標:建立一個允許使用者瀏覽、搜尋和查看書籍的線上圖書館應用。
- 段落總結:作者設定了一個清晰且規模適中的專案目標,以便在兩種不同方法下進行對比,讓比較更具體、更公平。
使用 BMAD-Method 的方法
- 段落重點:BMAD 的流程是協作式的、多代理的,模仿真實世界的開發團隊。
- 第一階段:代理式規劃 (Agentic Planning)
- 分析師代理 (
bmad analyst):透過問答了解市場和使用者,輸出一份包含競爭分析和使用者需求的project-brief.md。 - 產品經理代理 (
bmad pm):接收簡報,將其轉化為詳細的prd.md(產品需求文件),包含功能性與非功能性需求。 - 架構師代理 (
bmad architect):讀取 PRD,輸出一份包含技術棧、資料庫 ERD 和 API 規格的architecture.md。
- 分析師代理 (
- 第二階段:上下文工程開發 (Context-Engineered Development)
- Scrum Master 代理 (
bmad sm):將 PRD 中的史詩故事分解為獨立的使用者故事(如1.1-browse-books.md),每個檔案都包含執行該任務所需的完整上下文。 - 開發者代理 (
dev --implement):讀取單一的使用者故事檔案,並自動生成所需的前後端程式碼和單元測試。 - QA 代理 (
bmad qa):讀取使用者故事中的驗收標準,並生成自動化測試來驗證程式碼。
- Scrum Master 代理 (
- 第一階段:代理式規劃 (Agentic Planning)
- 段落總結:BMAD 的方法是高度結構化和自動化的。它的核心理念是**「上下文隔離」和「職責分離」**。每個代理只關心自己的輸入和輸出,Scrum Master 代理負責將大的上下文分解成小的、自包含的任務包,極大地降低了單個開發代理處理的複雜性。這是一種非常典型的「分而治之」的工程思想。
使用 GitHub Spec Kit 的方法
- 段落重點:Spec Kit 的流程是輕量級的、命令驅動的,由使用者作為協調者來引導。
- Specify 階段 (
/specify):使用者給出一個高層次的專案描述。AI 助理會回應一個結構化的spec.md檔案,包含需求、使用者流程和基本數據模型。 - Plan 階段 (
/plan):使用者審查spec.md後,執行此命令。AI 會讀取規格並生成一份plan.md,概述技術棧、元件分解和 API 端點。 - Tasks 階段 (
/tasks):AI 根據計畫生成一份tasks.md,這是一份清晰的、序列化的實作步驟清單。 - Implement 階段:使用者手動地逐一完成
tasks.md中的任務。對於每個任務,使用者需要自己編寫提示,並指示 AI 助理生成程式碼。
- Specify 階段 (
- 段落總結:Spec Kit 的方法賦予了使用者極大的控制權。它不是一個全自動的系統,而是一個輔助使用者進行結構化思考和提示的框架。它將一個模糊的想法,透過一系列標準化的命令,轉化為一份可執行的規格、計畫和任務清單。開發過程仍然是使用者與 AI 之間一問一答的互動,但這個互動過程因為有了這些結構化文件而變得更有條理。
整體結論
身為資深架構師,我認為這篇文章對比了 AI 輔助開發的兩種截然不同但同樣重要的哲學:
-
BMAD-Method:全自動化的代理協同 (Top-Down, Automated Orchestration)
- 核心哲學:將軟體開發流程模型化為一個由多個專業 AI 代理組成的虛擬團隊。人類的角色更像是專案的發起者和監督者。
- 架構優勢:透過嚴格的職責劃分和上下文隔離,非常適合處理大型、複雜的專案。它的結構化流程可以確保程式碼品質和一致性,並減少因上下文混亂導致的錯誤。
- 潛在挑戰:流程相對固定,可能缺乏靈活性。對於簡單任務,這套流程可能會顯得過於繁重。
-
GitHub Spec Kit:人機協作的增強框架 (Bottom-Up, Human-in-the-Loop)
- 核心哲學:它不取代開發者,而是增強開發者。它提供了一套「鷹架」,幫助開發者更好地組織自己的思想,並向 AI 下達更精確的指令。開發者始終在駕駛座上。
- 架構優勢:極其靈活,可以與任何 AI 助理配合使用。它賦予開發者完全的控制權,適合快速迭代、需求多變的專案以及希望對程式碼有細緻掌控的開發者。
- 潛在挑戰:最終的產出品質高度依賴於使用者在
Implement階段編寫提示的技巧。它對使用者的要求更高。
結論:
- BMAD 像是在指揮一個自動化工廠,你設定好藍圖,工廠就會自動生產零件並組裝。
- Spec Kit 則像是在使用一套高階電動工具,工具本身不能自動蓋房子,但它們能讓你這位工匠蓋房子的效率和精度大大提高。
這兩種框架並非完全互斥,它們代表了 AI 輔助開發光譜的兩端。BMAD 更接近於「自主代理」,而 Spec Kit 更側重於「智慧助手」。對於企業來說,理解這兩種模式的差異,並根據專案的複雜度、團隊的技能和對控制權的需求來選擇合適的工具或方法,將是未來提升開發效率的關鍵。