跳到主要内容

BMAD Method:AI 驱动的敏捷开发框架

BMAD(Breakthrough Method for Agile AI-Driven Development)是一个全生命周期的 AI 驱动开发框架。与 OpenSpecSpec Kit 专注于"规范"不同,BMAD 的独特之处在于它引入了多智能体协作——用 12+ 个专业 AI 角色组成虚拟团队,从需求分析到代码实现全流程覆盖。

核心理念

传统 AI 编程工具帮你"做思考",产出平庸结果。BMAD 的理念不同:

AI 不替你思考,而是作为专家协作者,引导你通过结构化流程产出最佳方案。

BMAD 将开发过程分为两大阶段:

  1. 智能体规划(Agentic Planning):专业 Agent 协作生成详尽的 PRD 和架构文档
  2. 上下文工程开发(Context-Engineered Development):将规划转化为携带完整上下文的开发故事,交给 AI 逐个实现

与其他 SDD 框架的对比

维度BMADSpec KitOpenSpec
架构全生命周期多智能体团队规范生成工具轻量规范标准
Agent 数量12+ 专业角色单一 LLM单一 LLM
工作流管理内置敏捷/Sprint 管理任务清单提案→归档循环
上下文优化自动分片(Context Sharding)手动管理IDE 依赖
学习曲线较高(需敏捷经验)中等
适合场景从零构建复杂系统规范化开发增量迭代开发

安装

环境要求

  • Node.js v20+
  • NPM v9+
  • Git
  • AI 编程工具:Claude Code、Cursor 或 VS Code

标准安装

npx bmad-method install

安装过程会引导你选择:

  • 项目目录
  • 安装模块(BMM 核心模块、BMB 构建器、TEA 测试架构等)
  • AI 工具(Claude Code、Cursor、Copilot)

非交互安装(CI/CD 场景)

npx bmad-method install \
--directory /path/to/project \
--modules bmm \
--tools claude-code \
--yes

版本选择

# v6(推荐,最新特性)
npx bmad-method@alpha install

# v6 稳定版
npx bmad-method@6.0.1 install

官方模块

BMAD 采用模块化设计,按需安装:

模块缩写功能
BMad MethodBMM核心框架,34+ 工作流
BMad BuilderBMB自定义 Agent 和工作流创建
Test ArchitectTEA基于风险的测试策略自动化
Game Dev StudioBMGD游戏开发(Unity/Unreal/Godot)
Creative IntelligenceCIS创新、头脑风暴、设计思维

智能体(Agent)体系

BMAD 的核心是一组各司其职的 AI 智能体,每个都有独立的专业领域和行为约束:

规划阶段 Agent

Agent职责产出物行为特征
Analyst(分析师)模糊意图 → 结构化需求product-brief.md刨根问底,不接受模糊描述
PM(产品经理)需求优先级排序PRD.md + 用户故事范围守门人,阻止功能膨胀
Architect(架构师)需求 → 技术蓝图ARCHITECTURE.md + 数据库 Schema保守严谨,关注非功能需求
UX Designer(设计师)前端交互规范线框图描述 + 用户旅程确保功能与布局兼顾

执行阶段 Agent

Agent职责产出物行为特征
Scrum Master(SM)上下文分片 + 进度追踪Story 文件 + 状态文档全局视野,心跳监控
Developer(开发者)故事实现源代码 + 单元测试严格执行,遇冲突立即停止而非自行发挥
QA(测试架构师)质量验证测试框架 + 验证报告V6 支持视觉模型检查 UI

Agent 工作原则

每个 Agent 都有严格的行为边界:

  • Analyst 不做技术决策,只关注业务需求
  • Architect 不写业务代码,只定义技术方案
  • Developer 不修改架构,遇到架构问题回退给 Architect
  • QA 独立验证,不受 Developer 影响

这种角色隔离防止了 AI "越界"导致的一致性问题。

四阶段开发生命周期

Phase 1          Phase 2          Phase 3           Phase 4
分析与发现 → 规划 → 方案设计 → 实现
(Analyst) (PM) (Architect) (SM + Dev + QA)
↓ ↓ ↓ ↓
product-brief PRD.md ARCHITECTURE.md 源代码 + 测试

Phase 1:分析与发现

主导 Agent:Analyst(分析师)

启动方式:

# 在 AI 工具中加载 Analyst Agent
*workflow-init

Agent 会自动检测技术栈并推荐开发轨道:

轨道适用场景
Quick Flow单文件修改、补丁、Bug 修复
Standard Method典型应用开发
Enterprise Flow大型系统,需合规审计

Analyst 通过多轮对话深入探索需求:

Analyst: 这个项目要解决什么核心问题?
你: 我想做一个在线预约系统
Analyst: 目标用户是谁?预约什么类型的服务?
你: 医疗机构的患者,预约门诊挂号
Analyst: 需要支持多科室吗?是否需要排班管理?
你: 是的,需要按科室和医生排班
...

产出product-brief.md(简洁的产品愿景文档)

Phase 2:规划

主导 Agent:PM(产品经理)

PM 基于产品简报,生成详尽的产品需求文档:

# PRD:门诊预约系统

## 核心功能(MoSCoW 优先级)

### Must Have
- 患者注册和登录
- 科室和医生查询
- 在线预约挂号
- 预约取消和改期

### Should Have
- 预约提醒通知
- 就诊评价

### Could Have
- 智能推荐科室
- 候诊排队展示

### Won't Have (本期)
- 在线问诊
- 处方管理

PM 的核心价值:零容忍范围蔓延,非核心功能一律推入 Backlog。

产出PRD.mdepics.mduser_stories.md

Phase 3:方案设计

主导 Agent:Architect(架构师)

架构师基于 PRD 生成技术蓝图:

# 架构文档:门诊预约系统

## 技术栈
- Spring Boot 3.2 + Java 17
- PostgreSQL 15 + Redis 7
- COLA 四层架构

## 核心模型
- Patient(患者)
- Doctor(医生)
- Department(科室)
- Schedule(排班)
- Appointment(预约)

## API 设计
- POST /v1/pt/appointment/add — 创建预约
- PUT /v1/pt/appointment/{id} — 修改预约
- DELETE /v1/pt/appointment/{id} — 取消预约
- POST /v1/pb/schedule/query — 查询排班

产出ARCHITECTURE.mddb-schema.sqlapi_spec.jsontech-stack.md

Phase 4:实现

主导 Agent:Scrum Master → Developer → QA

这个阶段引入了 BMAD 最关键的创新——上下文分片(Context Sharding)

核心创新:上下文分片

问题

LLM 的上下文窗口有限。当项目文档(PRD + 架构 + 故事)达到 MB 级别时,AI 会出现:

  • 指令遗忘
  • 幻觉输出
  • 代码质量下降

解决方案

Scrum Master 将庞大的 PRD 分片为原子化的 Story 文件,每个文件只包含完成一个功能所需的全部信息:

docs/stories/
├── story-001-patient-register.md
├── story-002-doctor-query.md
├── story-003-schedule-query.md
├── story-004-appointment-create.md
├── story-005-appointment-cancel.md
└── story-006-appointment-remind.md

每个 Story 文件包含:

# Story 004:创建预约

## 验收标准
- 患者可以选择科室、医生、时间段创建预约
- 同一时段不可重复预约
- 预约成功后发送确认通知

## 相关 Schema
CREATE TABLE t_appointment (
id BIGINT PRIMARY KEY,
patient_id BIGINT NOT NULL,
doctor_id BIGINT NOT NULL,
schedule_id BIGINT NOT NULL,
status VARCHAR(20) NOT NULL DEFAULT 'PENDING',
...
);

## API 定义
POST /v1/pt/appointment/add
Request: AppointmentCreateRequest { patientId, doctorId, scheduleId }
Response: Response<AppointmentDetailResponse>

## 设计说明
- 使用乐观锁防止超约
- 预约成功后通过异步事件发送通知

效果

指标不分片分片后
上下文 Token 消耗100%~10%
指令遵循率较低极高
代码准确度一般显著提升

Developer Agent 加载 Story 文件时,只需读取 KB 级别的内容,而非 MB 级别的完整文档。

开发循环

Phase 4 的标准开发流程:

1. 你: "Start Story 004"
2. Developer Agent 加载 story-004.md + tech-stack.md
3. (可选 TDD)Agent 先写失败的单元测试
4. Agent 实现业务代码
5. Agent 运行本地测试自我验证
6. QA Agent 独立验证(Enterprise Flow)
7. Scrum Master 更新 workflow-status.md,解锁依赖故事

Quick Spec Flow(快速修复)

不需要走完整流程的小改动:

1. 加载 Developer Agent
2. 描述要修改的内容
3. Agent 扫描代码库,生成微规范
4. 确认修改范围
5. 直接实现(通常 5 分钟内完成)

常用命令

在 AI 工具中使用:

命令功能
/bmad-help交互式引导,告诉你下一步该做什么
/bmad-help I just finished X询问完成 X 后的下一步
*workflow-init初始化工作流,检测技术栈
*brainstorming启动头脑风暴工作流
*party-mode多 Agent 协作讨论

工作流命令(BMM 模块)

工作流功能
create-product-brief创建产品简报
prd创建/验证/编辑 PRD
create-architecture架构设计
create-epics-and-stories从 PRD 生成 Epic 和 Story
sprint-planningSprint 规划
dev-story执行开发故事
code-review对抗性代码审查
quick-spec快速规范工程
quick-dev快速开发(执行技术规范或直接指令)

Party Mode:多 Agent 协作

BMAD 的特色功能——在一个会话中让多个 Agent 角色协作讨论:

*party-mode

你: 讨论一下预约系统的并发处理方案

Architect: 建议使用乐观锁 + 版本号机制,避免悲观锁的性能瓶颈...
Developer: 实现上可以用 @Version 注解配合 QueryDSL 的 update...
QA: 需要编写并发测试用例,模拟多人同时预约同一时段...
PM: 从产品角度,超约时应该给用户友好的提示而非技术错误...

多个 Agent 从各自专业角度贡献意见,比单一 AI 助手的回答更全面。

自定义 Agent

通过 BMad Builder(BMB)模块,可以创建团队专属的 Agent:

.bmad/agents/ 目录下创建 Markdown 文件:

# Role: 安全审计师

## Context
专注于医疗信息系统安全合规

## Responsibilities
- 审查 API 接口的认证和授权
- 检查敏感数据(患者信息)的加密存储
- 验证 HIPAA / 等保合规性

## Constraints
- 不修改业务逻辑
- 不更改数据库 Schema
- 只提出安全建议和风险报告

保存后,该 Agent 即可在工作流中调用。

项目配置

安装后在项目中生成 .bmad/ 目录:

.bmad/
├── config.yaml # 项目配置
├── agents/ # 自定义 Agent
├── workflows/ # 自定义工作流
└── templates/ # 文档模板

config.yaml 示例:

project:
name: "appointment-system"
type: "java_springboot"

agents:
default: "java-dev"
available:
- "java-architect"
- "security-auditor"

quality:
pre_commit:
- "mvn test"
- "mvn checkstyle:check"

paths:
docs: "docs/"
tests: "src/test/"

关键配置项:

  • project.type:决定加载哪些框架特定的最佳实践
  • quality.pre_commit:Story 完成前的强制质量门禁

常见问题

*workflow-init 无响应

  • 检查 Node.js 版本:node -v(需 v20+)
  • 检查 IDE 文件监听权限
  • 重启终端

Agent 引用不存在的库

  • 确认 Phase 3 生成了 tech-stack.md
  • 验证 Developer Agent 的系统提示包含技术栈文件引用

上下文过长导致质量下降

  • 让 Scrum Master 重新分片,确保每个 Story 文件不超过目标大小
  • 实现前清理 AI 对话窗口
  • 每个 Story 启动新的对话上下文

最佳实践

渐进采用

不需要一次性使用所有 Agent。建议的采用路径:

入门:Quick Spec + Quick Dev(快速体验)

进阶:Analyst + PM + Architect(完整规划)

精通:全流程 + 自定义 Agent + Party Mode

文档即真相

BMAD 的核心信条:文档是第一公民,代码是它的派生物。每次架构变更都应该先更新文档,再修改代码。

信任角色边界

不要让 Developer Agent 做架构决策,也不要让 Architect 写业务代码。角色隔离是保证一致性的关键。

善用 Context Sharding

Story 文件越小越好。一个 Story 应该在一次 AI 对话中就能完成实现。如果需要多次对话,说明 Story 粒度太粗,需要拆分。

参考资料