Skip to content

第7章 BMAD与综合项目

📢 本章语音导览
🖼️ 查看课件 →

第7章 BMAD方法论:综合项目全流程实践

Section titled “第7章 BMAD方法论:综合项目全流程实践”

BMAD(Breakthrough Method of Agile AI-Driven Development)是一种AI驱动的敏捷开发方法论,其核心理念是:让AI扮演不同角色完成专业工作,人类负责决策与审核。这种方法将程序员的定位从”代码编写者”提升为”AI团队管理者”。

软件开发方法论经历了数十年的演进:从瀑布模型(1970s)到敏捷开发(2001年《敏捷宣言》),再到DevOps(2015年)的自动化流水线。大语言模型(LLM)的突破催生了全新的范式------AI驱动开发(2023年至今)。AI不再只是辅助工具,而是承担了团队中专业角色的工作。BMAD方法论正是这一范式变革的系统性实践框架。

::: theorybox

  • 瀑布\to敏捷:从抗拒变化拥抱变化

  • 敏捷\toDevOps:从手动协作自动化流水线

  • DevOps\toAI驱动:从人做所有事人指挥AI做事

每一次演进都不是对前者的否定,而是在前者基础上的能力扩展。BMAD并不排斥敏捷和DevOps,而是在它们的理念上叠加了AI协作的新维度。 :::

BMAD将软件开发的完整流程拆解为五个阶段,每个阶段由AI扮演一个专业角色:

字母 阶段 角色 AI身份 产出


**B** Brainstorm(脑暴) 业务分析师 AI as Analyst 功能清单
**M** Model(建模) 产品经理 AI as PM 需求文档 + 数据模型
**A** Architect(架构) 技术架构师 AI as Architect 技术方案 + 架构图
**D** Develop(开发) 开发者 AI as Developer 可运行代码
**V** Verify(验证) 测试工程师 AI as QA 测试报告

: BMAD五阶段总览

核心价值:不用自己写所有代码,而是学会指挥AI团队完成工作。在传统开发中,一个人可能需要同时扮演分析师、产品经理、架构师、开发者和测试工程师;而在BMAD中,你只需要扮演”项目经理”------明确目标、分配任务、审核产出。

维度 传统敏捷(Scrum) BMAD


团队规模 5—9人跨职能团队 1人+AI 角色分工 Product Owner / Scrum Master / Dev Team 人类=项目经理,AI=所有执行角色 迭代周期 2—4周Sprint 按阶段顺序推进(小时级) 需求文档 用户故事+验收标准 AI生成功能清单+需求文档 代码实现 开发者手动编码 AI生成+人类审核 质量保证 测试团队+自动化测试 AI辅助测试+手动验证

: BMAD与传统敏捷开发对比

BMAD的独特优势在于极致的效率------一个人加AI可以在数小时内完成传统团队数天甚至数周的工作。但这种效率是有边界的,它最适合中小型项目的原型开发与MVP验证

::: theorybox

  • 适合:中小型项目原型开发、MVP验证、教学实验、个人项目快速迭代、技术方案可行性验证

  • 不适合:高安全要求的核心银行系统(需严格审计)、大型团队协作项目(需成熟的项目管理流程)、对可靠性要求极高的生产系统(如交易系统、支付系统)

BMAD的核心价值在于快速验证想法------用最短的时间和最少的人力,验证一个产品概念是否可行。至于生产级系统的开发,仍需传统软件工程的严谨流程。 :::

BMAD的核心工作流按四个阶段顺序推进,每个阶段有明确的输入、产出和质量检查点。本章后续将以银行CRM系统为案例,完整演示这四个阶段的实操过程。

目标:从一个模糊的想法出发,通过结构化头脑风暴,生成丰富的产品创意。

在AI IDE对话窗口中描述业务背景和目标用户,AI扮演业务分析师(Mary)的角色,引导你进行发散式思考。过程中先进行”脑倾泻”(Brain Dump),把所有想法告诉AI,不必在意格式;AI会使用逆向思维、跨领域类比等创意激发技术帮你产生更多创意。目标是产生10—20个有价值的想法。

产出物保存至_bmad-output/brainstorming/目录,作为后续PRD的输入。

目标:将头脑风暴的结果转化为结构化的产品需求文档(PRD)。

AI以产品经理(John)的角色与你对话,引导你逐节讨论PRD内容:产品愿景与目标用户、核心功能特性(按优先级排列)、用户旅程(User Journeys)、非功能性需求(性能、安全、兼容性)、成功指标(KPI)。AI提供两种工作模式------快速路径(Fast)和辅导路径(Coach),实验建议选择”辅导路径”以理解PRD的思考过程。

产出物保存至_bmad-output/planning-artifacts/prd.md。PRD中每个需求都有唯一编号(如FR-1),便于后续追溯。

目标:基于PRD完成架构设计、UX设计和史诗拆分,为开发做好准备。

此阶段包含三个子流程:

  1. 架构设计:AI以系统架构师(Winston)的角色,与你讨论技术选型(前端/后端框架、数据库选型)、系统架构(微服务/单体/Serverless)、关键技术决策。产出architecture.md

  2. UX设计:AI以UX设计师(Sally)的角色,讨论信息架构(IA)、关键页面设计、用户旅程细化、设计系统规范(颜色、字体、间距等设计Token)。产出DESIGN.mdEXPERIENCE.md

  3. 史诗与故事拆分:AI将PRD中的需求按层级拆分:PRD需求\toEpic(史诗)\toStory(用户故事)\toTask(任务)。每个Story包含用户故事描述(As a… I want… So that…)、验收标准(Given/When/Then格式)、技术约束与依赖。产出epics.md

完成后可执行”实施就绪检查”,AI会检查所有文档是否完整且一致。

目标:将用户故事逐个转化为可运行的代码。

此阶段包含四个关键环节:

  1. 冲刺规划:AI根据epics.md生成冲刺状态跟踪文件sprint-status.yaml,记录每个故事的状态流转(backlog \to ready-for-dev \to in-progress \to review \to done)。

  2. 创建故事详情:AI从sprint-status.yaml中找到第一个backlog状态的故事,自动关联架构规范和前序故事的经验,生成详细的故事规格文件(含任务清单、开发注意事项、文件清单、变更日志)。

  3. 开发故事:AI以高级开发者(Amelia)的角色开始编码,按照”红-绿-重构”循环(先写失败的测试,再写最小代码使测试通过,最后优化代码结构)逐任务实施。

  4. 代码审查:AI使用三层对抗式审查------盲点猎人(纯粹从代码质量角度找bug)、边界猎人(遍历每个分支和边界条件)、验收审计(对照验收标准检查实现)。审查结果按严重程度分级(Critical/High/Medium/Low)。

角色 代号 职责


Business Analyst Mary 业务分析、需求挖掘、利益相关者调研 Product Manager John 产品规划、PRD编写、需求优先级 UX Designer Sally 用户体验设计、交互规范、设计系统 System Architect Winston 技术架构、系统设计、技术选型 Senior Developer Amelia 代码实现、测试编写、代码审查 Tech Writer Paige 技术文档、API文档、用户手册

: BMAD核心角色一览

BMAD的核心理念:人类决策,AI执行------所有关键决策由人类做出,AI负责细化、生成和执行;渐进式细化------从粗略构想逐步细化为精确规格,每一步都经人类确认。

BMAD实战:银行CRM系统完整开发 {#sec:crm-practice}

Section titled “BMAD实战:银行CRM系统完整开发 {#sec:crm-practice}”

本节以商业银行CRM系统为案例,通过12个递进式实验,完整演示BMAD从需求到部署的全流程。参照本节步骤操作,即可完成一个具备客户管理、贷款申请、审批流程、即申即贷等功能的CRM系统。

属性 内容


目标 使用BMAD从零开始规划、设计、实现、测试并部署一个商业银行CRM系统 难度 中级 耗时 约3—4小时 适用课程 软件工程 金融科技 敏捷开发 前置要求 命令行基础、Node.js/npm、React/Vite基础、Git基础

: CRM实验概览

类别 技术选型


操作系统 Windows / macOS / Linux IDE Qoder / Cursor / Claude Code(任选其一) Node.js v18+(推荐v20+) AI框架 BMAD v6+ 后端 Node.js + Express 4 前端 React 18 + Vite 4 数据库 PostgreSQL(设计目标)/ 内存Map(降级方案) 版本控制 Git + CNB(cnb.cool) 部署平台 EdgeOne Pages(前端静态部署)

: 实验环境配置

整个CRM开发实验分为12个实验,覆盖BMAD全部阶段:

序号 实验名称 阶段


1 安装BMAD框架 环境准备
2 创建产品需求文档(PRD) 需求分析
3 创建技术架构设计 架构设计
4 创建UX设计 交互设计
5 创建Epics和Stories 需求拆解
6 Sprint规划 迭代规划
7 Sprint 1------客户管理实现 代码实现
8 Sprint 2-3------迭代开发 迭代开发
9 数据库适配与降级方案 工程实践
10 功能测试验证 质量保证
11 版本控制与CNB推送 版本管理
12 EdgeOne Pages部署(前端) 生产部署

: CRM实验流程

目标:安装BMAD敏捷AI开发框架,为后续的需求分析、架构设计和代码实现提供方法论支撑。

场景A:AI IDE已预装BMAD(如Qoder) {#场景aai-ide已预装bmad如qoder .unnumbered}

Section titled “场景A:AI IDE已预装BMAD(如Qoder) {#场景aai-ide已预装bmad如qoder .unnumbered}”

BMAD框架已集成在Qoder IDE中,无需额外安装。通过以下命令验证:

# 查看 BMAD 帮助
npx bmad-help
# 或在 Qoder 中使用技能
/bmad-help

场景B:AI IDE未预装BMAD(如Cursor、Claude Code) {#场景bai-ide未预装bmad如cursorclaude-code .unnumbered}

Section titled “场景B:AI IDE未预装BMAD(如Cursor、Claude Code) {#场景bai-ide未预装bmad如cursorclaude-code .unnumbered}”

前置要求:Node.js v18+、npm/npx、AI IDE(Cursor / Claude Code / VS Code + AI插件)、Git。

步骤1:安装BMAD框架

# 在项目根目录运行安装器
npx bmad-method install

安装器会交互式地询问以下内容:

  1. 安装目录:默认为当前工作目录,直接回车确认

  2. 模块选择:勾选需要的模块(推荐全选核心模块)

    • core------核心框架(必选,自动添加)

    • bmm------BMAD方法论模块(必选)

    • bmb------BMAD构建器模块(推荐)

    • cis------持续集成支持(可选)

    • gds------指导系统(可选)

    • tea------测试评估(可选)

  3. 版本确认:选择Yes接受最新稳定版

  4. AI工具集成:选择你使用的AI IDE(claude-code / cursor等)

  5. 模块配置:设置项目名称、输出语言(中文)、输出文件夹(默认_bmad-output

步骤2:验证安装

# 查看安装清单
cat _bmad/_config/manifest.yaml
# 在 AI IDE 中测试技能是否可用
# Cursor: 输入 /bmad-help
# Claude Code: 输入 /bmad-help

步骤3(可选):非交互式快速安装

适用于CI/CD环境或批量部署:

# 一键安装核心模块,集成 Claude Code
npx bmad-method install --yes --modules bmm,bmb --tools claude-code
# 指定中文输出
npx bmad-method install --yes --modules bmm,bmb --tools claude-code \
--set core.communication_language=zh \
--set core.document_output_language=zh

::: notebox 如果出现API rate limit exceeded,说明GitHub匿名请求超限,请设置GITHUB_TOKEN环境变量后重试。 :::

实验二:创建产品需求文档(PRD)

Section titled “实验二:创建产品需求文档(PRD)”

目标:使用BMAD的PRD技能,通过结构化的引导式问答,为商业银行CRM系统生成完整的产品需求文档。

操作步骤

  1. 启动PRD技能:在AI IDE中输入/bmad-prd

  2. 选择创建路径:BMAD提供两种选项------A(快速路径)基于预设模板快速生成,适合概念验证;B(深度路径)逐项引导问答,适合正式项目。本实验选择A(快速路径)

  3. 提供项目主题:商业银行CRM系统

关键提示词

请为商业银行CRM系统创建PRD文档。
系统需要支持:客户管理、贷款申请、额度评估、
客户等级体系(普通/白银/黄金/钻石/战略伙伴)、
即申即贷快速审批。

BMAD生成_bmad-output/prd.md,包含8大核心章节

章节 内容


1 产品概述:系统定位、目标用户、核心价值
2 功能需求:客户管理、贷款申请、审批流程等
3 非功能需求:性能、安全、可用性
4 用户角色:普通客户、客户经理、风控审批员、管理员
5 客户等级体系:普通/白银/黄金/钻石/战略伙伴
6 业务流程:注册$\to$登录$\to$申请$\to$审批$\to$放款
7 技术约束:技术栈选型说明
8 验收标准:功能完成度定义

: PRD文档结构

目标:基于PRD,设计系统的技术架构,确定技术栈、模块划分和集成方案。

操作步骤:在AI IDE中输入/bmad-create-architecture,提供PRD文件路径作为输入,BMAD架构师(Winston)会生成架构文档_bmad-output/architecture.md

层级 技术 选型理由


前端框架 React 18 组件化、生态成熟 构建工具 Vite 4 极速HMR、零配置 后端框架 Express 4 轻量、灵活、社区大 认证 JWT 无状态、易扩展 数据库 PostgreSQL 关系型、支持复杂查询

: CRM技术栈决策

系统架构采用前后端分离模式:前端React+Vite负责页面渲染和用户交互,通过HTTP API与后端通信;后端Express提供RESTful API,包含认证中间件(JWT)、客户路由、贷款路由、审批路由等。

目标:设计系统的用户体验流程和界面规范。

操作步骤:在AI IDE中输入/bmad-ux,选择B创建完整的UX设计规格。

产出文件_bmad-output/ux/DESIGN.mdEXPERIENCE.md,包含:

  • 用户旅程图:从注册到贷款发放的完整流程

  • 页面线框图:各核心页面的布局描述

  • 交互规范:表单验证、加载状态、错误提示

  • 视觉风格:银行级专业风格,蓝白配色

目标:将PRD中的功能需求拆解为可执行的Epic和User Story。

操作步骤:在AI IDE中输入/bmad-create-epics-and-stories,选择B创建完整列表。

产出_bmad-output/epics-stories.md,将系统拆分为5个Epic、26个Story

**Epic** **内容** **Story数**

Epic 1: 客户管理 注册、登录、信息管理、等级体系 7 Epic 2: 贷款核心 产品管理、申请、审批、抵质押品 6 Epic 3: 即申即贷 AI预审、快速放款、实时通知 5 Epic 4: 还款管理 还款计划、自动扣款、逾期处理 4 Epic 5: 增值服务 数据分析、营销、绩效 4

: Epic与Story拆分

Story示例

Story 1.1: 用户注册
作为一位潜在客户,
我希望能够通过手机号注册账户,
以便开始使用银行的数字化服务。
验收标准:
- 输入手机号和密码
- 手机号格式验证
- 注册成功后自动登录
- 返回 JWT 令牌

目标:将26个Story分配到4个Sprint,制定迭代开发计划。

操作步骤:在AI IDE中输入/bmad-sprint-planning

产出_bmad-output/sprint-plan.md

Sprint 主题 Stories 预估人日


Sprint 1 基础服务(客户管理) 7 12
Sprint 2 贷款核心 7 14
Sprint 3 即申即贷 6 13
Sprint 4 增值服务 6 12

: Sprint规划

Sprint之间的依赖关系为线性递进:Sprint 1(客户基础)\toSprint 2(贷款核心)\toSprint 3(即申即贷)\toSprint 4(增值服务)。

实验七:Sprint 1------客户管理实现

Section titled “实验七:Sprint 1------客户管理实现”

目标:实现Sprint 1的全部7个Story,搭建项目骨架并完成客户管理全链路。

步骤1:初始化后端项目

mkdir backend && cd backend
npm init -y
npm install express cors jsonwebtoken

步骤2:创建项目结构

backend/
src/
db/
index.js # 数据库连接
migrate.js # 迁移脚本
routes/
customers.js # 客户路由
loans.js # 贷款路由
approvals.js # 审批路由
partners.js # 合作伙伴路由
middleware/
auth.js # JWT认证中间件
index.js # Express入口
.env # 环境变量
package.json

步骤3:实现核心API

const express = require('express');
const cors = require('cors');
const app = express();
app.use(cors());
app.use(express.json());
// 注册路由
app.use('/api/customers', require('./routes/customers'));
app.use('/api/loans', require('./routes/loans'));
app.use('/api/approvals', require('./routes/approvals'));
app.use('/api/partners', require('./routes/partners'));
const PORT = process.env.PORT || 3001;
app.listen(PORT, () => {
console.log(`CRM后端服务运行在 http://localhost:${PORT}`);
});

步骤4:数据库迁移脚本

backend/src/db/migrate.js创建11张核心表

-- 核心表结构
customers (客户表)
loan_applications (贷款申请表)
collaterals (抵质押品表)
repayments (还款记录表)
customer_tiers (客户等级表)
loan_products (贷款产品表)
approvals (审批记录表)
partners (合作伙伴表)
notifications (通知表)
credit_scores (信用评分表)
audit_logs (审计日志表)

步骤1:初始化前端

npm create vite@latest frontend -- --template react
cd frontend && npm install
npm install react-router-dom

步骤2:配置Vite代理

import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
export default defineConfig({
plugins: [react()],
server: {
port: 5173,
proxy: {
'/api': {
target: 'http://localhost:3001',
changeOrigin: true,
},
},
},
});

验证

# 启动后端
cd backend && node src/index.js
# 启动前端(新终端)
cd frontend && npm run dev

访问http://localhost:5173,应看到登录页面。

目标:通过迭代方式完成Sprint 2(贷款核心)和Sprint 3(即申即贷)。

Sprint 2新增模块 {#sprint-2新增模块 .unnumbered}

Section titled “Sprint 2新增模块 {#sprint-2新增模块 .unnumbered}”

路由文件 功能


collaterals.js 抵质押品管理(CRUD+估值) repayments.js 还款计划与记录 tiers.js 客户等级体系管理

: Sprint 2新增模块

前端在App.jsx中新增对应路由入口和导航链接。

Sprint 3新增模块 {#sprint-3新增模块 .unnumbered}

Section titled “Sprint 3新增模块 {#sprint-3新增模块 .unnumbered}”

路由文件 功能


quick-loan.js 即申即贷(AI预审+快速放款) test.js 测试账号初始化接口

: Sprint 3新增模块

关键特性------即申即贷流程:客户提交申请后,系统先进行AI预审(信用评分+收入验证),预审通过则自动审批并计算额度,随后实时放款;预审拒绝则转人工审核,由人工做出最终决策。

测试账号初始化 {#测试账号初始化 .unnumbered}

Section titled “测试账号初始化 {#测试账号初始化 .unnumbered}”

为方便测试,test.js路由提供初始化接口:

GET /api/test/init -> 初始化4个测试账号

手机号 密码 客户等级 信用分


13800138001 password123 钻石 820 13800138002 password123 黄金 750 13800138003 password123 白银 680 13800138004 password123 普通 600

: 测试账号列表

实验九:数据库适配与降级方案

Section titled “实验九:数据库适配与降级方案”

目标:解决开发环境中PostgreSQL不可用的问题,实现数据库降级方案,确保系统可运行。

当启动后端时,如果PostgreSQL连接失败(ECONNREFUSED),尝试安装SQLite也可能因权限问题失败。此时采用内存Map降级方案

// 内存Map模拟数据库
const mockData = {
customers: new Map(),
loans: new Map(),
// ...其他表
};
const pool = {
query: async (sql, params) => {
console.log('SQL (模拟):', sql.substring(0, 50));
// 模拟查询逻辑
return { rows: [] };
},
};
module.exports = { pool };

由于bcrypt模块安装失败(EPERM),使用Base64替代进行密码哈希:

// 替代bcrypt的简单哈希
const hashPassword = (password) => {
return Buffer.from(password).toString('base64');
};
const verifyPassword = (password, hash) => {
return hashPassword(password) === hash;
};

::: warningbox 降级策略是工程实践中的重要技能。当理想方案不可行时,需要快速找到可用的替代方案,保证核心功能可用。生产环境中应使用正式的数据库和加密方案。 :::

目标:验证系统核心功能(登录、客户管理、贷款申请)正常工作。

后端API测试 {#后端api测试 .unnumbered}

Section titled “后端API测试 {#后端api测试 .unnumbered}”
# 1. 初始化测试数据
curl http://localhost:3001/api/test/init
# 2. 测试登录
curl -X POST http://localhost:3001/api/customers/login \
-H "Content-Type: application/json" \
-d '{"phone":"13800138001","password":"password123"}'
# 3. 获取客户列表(需JWT)
curl http://localhost:3001/api/customers \
-H "Authorization: Bearer <YOUR_TOKEN>"

前端界面测试 {#前端界面测试 .unnumbered}

Section titled “前端界面测试 {#前端界面测试 .unnumbered}”
  1. 打开浏览器访问http://localhost:5173

  2. 使用测试账号登录:13800138001 / password123

  3. 验证仪表盘数据显示

  4. 测试贷款申请流程

问题 原因 解决方案


登录失败401 数据库未连接 执行/api/test/init 端口被占用 旧进程未关闭 taskkill /f /im node.exe bcrypt缺失 安装失败 使用Base64替代 CORS错误 跨域未配置 确认cors()中间件已加载

: 常见问题排查

目标:将完整项目代码推送到CNB(cnb.cool)代码托管平台。

步骤1:初始化Git仓库

cd /path/to/project
git init

步骤2:创建.gitignore

node_modules/
dist/
build/
.env
.env.local
*.log
.DS_Store
Thumbs.db
.edgeone-tmp/
.qoder/

步骤3:添加并提交代码

git add -A
git commit -m "feat: 添加完整项目代码(前后端+BMAD文档)"

步骤4:配置远程仓库并认证

# 添加CNB远程仓库
git remote add origin https://cnb.cool/yourname/smartcrb-demo.git
# 方式一:URL内嵌令牌(推荐自动化)
git remote set-url origin https://cnb:<TOKEN>@cnb.cool/yourname/smartcrb-demo.git
# 方式二:CNB CLI登录
npm install -g @cnbcool/cnb-cli
cnb login # 浏览器授权

步骤5:推送

git push -u origin master

现象 原因 解决方案


Credentials have Expired OAuth token过期 使用PAT令牌嵌入URL ssh: port 22 timeout SSH端口被封 改用HTTPS方式 Repository Not Found 仓库未初始化 在CNB网页端先创建仓库 cnb status已登录但API 401 status不验证API有效性 重新cnb login或使用PAT

: CNB认证故障排查

实验十二:EdgeOne Pages部署(前端)

Section titled “实验十二:EdgeOne Pages部署(前端)”

目标:将前端项目部署到EdgeOne Pages平台,获取公开访问URL。

前置准备:创建EdgeOne Pages项目 {#前置准备创建edgeone-pages项目 .unnumbered}

Section titled “前置准备:创建EdgeOne Pages项目 {#前置准备创建edgeone-pages项目 .unnumbered}”

访问https://console.cloud.tencent.com/edgeone/pages,点击「创建项目」,选择「直接上传」类型,上传任意文件完成项目创建。记住项目名称(如smartbanking)。

获取API Token {#获取api-token .unnumbered}

Section titled “获取API Token {#获取api-token .unnumbered}”

访问https://pages.edgeone.ai/document/api-token,点击「Create Token」,填写名称和范围后生成Token。立即复制生成的Token(仅显示一次)。

安装EdgeOne CLI {#安装edgeone-cli .unnumbered}

Section titled “安装EdgeOne CLI {#安装edgeone-cli .unnumbered}”
# 使用 npm 全局安装
npm install -g edgeone
# 验证安装
edgeone -v

::: notebox 如果出现EPERMEACCES错误,以管理员身份打开PowerShell后重试,或使用npx edgeone替代全局安装。 :::

部署前端项目 {#部署前端项目 .unnumbered}

Section titled “部署前端项目 {#部署前端项目 .unnumbered}”
# 进入前端目录
cd frontend
# 生产部署
npx edgeone pages deploy ./dist -n smartbanking -t $EDGEONE_PAGES_API_TOKEN

首次部署时,EdgeOne CLI会自动将dist/目录下的所有静态文件上传到EdgeOne CDN。

信息项 说明


生产URL https://smartbanking-xxx.edgeone.app 构建方式 Vite自动识别 输出目录 dist/ 构建时间 \sim<!-- -->{=html}16s(含依赖安装) CDN节点 EdgeOne全球边缘节点(国内访问优势)

: EdgeOne Pages部署结果

除了EdgeOne Pages,本课程还支持将网站部署到Cloudflare Pages------Cloudflare提供的全球CDN静态网站托管服务。Cloudflare Pages的优势在于全球节点覆盖广、免费额度充足,且提供wrangler CLI工具实现命令行直传部署。

安装wrangler CLI {#安装wrangler-cli .unnumbered}

Section titled “安装wrangler CLI {#安装wrangler-cli .unnumbered}”
# 使用 npm 全局安装
npm install -g wrangler
# 验证安装
wrangler --version
# 预期输出: wrangler 4.x.x

登录Cloudflare {#登录cloudflare .unnumbered}

Section titled “登录Cloudflare {#登录cloudflare .unnumbered}”
wrangler login

执行后浏览器会自动打开授权页面,点击「Allow」完成OAuth授权。随后通过wrangler whoami验证登录状态。

配置wrangler.toml {#配置wrangler.toml .unnumbered}

Section titled “配置wrangler.toml {#配置wrangler.toml .unnumbered}”

在项目根目录创建wrangler.toml文件,声明Pages项目的输出目录:

name = "smartbanking"
compatibility_date = "2024-11-01"
pages_build_output_dir = "webversion/dist"

构建与部署 {#构建与部署 .unnumbered}

Section titled “构建与部署 {#构建与部署 .unnumbered}”

由于Astro需要根据部署平台动态生成sitemap和canonical URL,构建时需设置CLOUDFLARE_PAGES环境变量:

# 进入网站源码目录
cd webversion
# 设置环境变量后构建(sitemap 将指向 smartbanking.pages.dev)
CLOUDFLARE_PAGES=true pnpm build
# 部署到 Cloudflare Pages
wrangler pages deploy ./dist \
--project-name=smartbanking \
--branch=main \
--commit-dirty=true

部署成功后会返回形如https://smartbanking.pages.dev的访问链接。

三平台部署对比 {#三平台部署对比 .unnumbered}

Section titled “三平台部署对比 {#三平台部署对比 .unnumbered}”

本课程支持三种静态网站部署平台,各有优劣:

平台 访问域名 国内速度 特点


EdgeOne Pages *.edgeone.app 快 腾讯云CDN,中国大陆加速需控制台启用 Cloudflare Pages *.pages.dev 中 全球节点覆盖最广,wrangler CLI直传 GitHub Pages *.github.io 慢 与Git仓库集成,GitHub Actions自动部署

: 三平台部署对比

::: notebox 每次更新网站内容后,执行以下三步即可完成部署:

  1. cd webversion

  2. CLOUDFLARE_PAGES=true pnpm build

  3. wrangler pages deploy ./dist --project-name=smartbanking --branch=main :::

完成全部12个实验后,项目产出包括:

类别 文件/模块 说明


BMAD文档 prd.md 8大章节PRD architecture.md 技术栈+模块设计 DESIGN.md 用户旅程+界面规范 epics-stories.md 5 Epic / 26 Story sprint-plan.md 4 Sprint路线图 后端代码 9个路由文件 完整API 3个基础设施文件 index.js / db / migrate 前端代码 App.jsx 集成所有页面 4个配置文件 package.json / vite.config等 数据库 11张核心表 完整银行业务域

: 项目交付物清单

以下是在整个CRM开发过程中使用的核心提示词,可供复现实验:

序号 阶段 提示词


1 启动BMAD `请使用BMAD框架为商业银行CRM系统创建完整的开发文档。`
2 创建PRD `/bmad-prd` + 主题描述,选择A(快速路径)
3 架构设计 `/bmad-create-architecture`
4 UX设计 `/bmad-ux`,选择B
5 Epic拆分 `/bmad-create-epics-and-stories`,选择B
6 Sprint规划 `/bmad-sprint-planning`
7 实现Stories `实现全部story`
8 迭代推进 `A`(选择继续下一个Sprint)
9 数据库适配 `A`(选择配置数据库连接)
10 测试登录 `使用13800138001登陆一下前端`
11 推送CNB `给项目写一个readme,然后推送到cnb`

: BMAD核心提示词汇总

银行智能客服系统将自然语言处理(NLP)应用于银行业务问答场景,核心包括:FAQ知识库构建(将银行产品规则、业务流程转化为可检索的知识条目)、多轮对话流程设计(通过状态机管理对话上下文)、业务办理自动化(从咨询到办理的闭环)、合规话术管理(确保所有回复符合监管要求)。

开发要点在于知识库的质量决定客服质量------需要将银行业务知识结构化,并为AI提供充足的上下文。系统设计应遵循”先检索后生成”(RAG)的范式,避免AI产生幻觉。项目选题、团队管理与竞赛指南详见第8章。

对于自主创新项目,好的选题应满足四个原则:

原则 判断标准


可行性 能否在4周内、2—4人团队、使用课程所学工具完成MVP? 创新性 是否有至少一个创新点(技术新组合/业务新场景/方法新尝试)? 金融相关性 是否解决了真实的金融/银行问题? 技术适配性 是否需要AI参与并发挥MCP+Skill+CLI的技术栈优势?

: 综合项目选题四原则

路径 适用场景 特点


Quick Dev模式 小型功能、原型验证、Bug修复 跳过完整BMAD流程,AI直接分析需求生成简化规格后编码 标准BMAD流程 中型项目、教学实验 走完B-M-A-D-V五阶段,产出完整文档+代码 团队协作模式 大型综合项目、期末大作业 多人分工,每人负责不同Epic,Git协作管理

: 三种实现路径对比

本章系统介绍了BMAD方法论与综合项目开发实践:

  1. BMAD理论框架:AI驱动的敏捷开发方法论,核心是”让AI扮演专业角色,人类负责决策审核”,通过B-M-A-D-V五阶段覆盖从需求到验证的完整流程

  2. 四阶段工作流:分析/构思\to规划/设计\to方案细化\to实施/交付,每个阶段有明确的AI角色、输入和产出物

  3. 银行CRM系统完整开发:通过12个递进式实验,完整走通了从BMAD安装、PRD创建、架构设计、UX设计、Epic拆分、Sprint规划、代码实现、数据库适配、功能测试、CNB推送到EdgeOne Pages部署的全流程,产出了一个具备客户管理、贷款申请、即申即贷等功能的完整CRM系统

  4. 其他综合项目:智能客服系统的开发要点与RAG范式,综合项目选题四原则与三种实现路径

  5. 关键提示词汇总:提供了完整的提示词序列,按顺序执行即可复现全部实验流程

BMAD的精髓不在于五个阶段的名称,而在于人机协作的新范式------这种模式将程序员从”逐行编写代码”的执行者,转变为”描述需求、审核产出、协调AI团队”的管理者。掌握这一范式,是AI时代金融科技人才的核心竞争力。

术语 定义


BMAD Breakthrough Method of Agile AI-Driven Development,AI驱动敏捷开发方法论 PRD Product Requirements Document,产品需求文档 Epic 史诗,一组相关用户故事的集合 Story 用户故事,用”As a [角色], I want [功能], so that [价值]“格式表达需求 MoSCoW 功能优先级分类法:Must/Should/Could/Won’t Sprint 冲刺,敏捷开发中的短周期迭代单元 Quick Dev BMAD的快速开发模式,跳过完整流程直接编码 EdgeOne Pages 腾讯云全球CDN静态网站托管平台 CNB cnb.cool代码托管平台 JWT JSON Web Token,无状态认证令牌

::: exercisebox

  1. BMAD的”人类决策,AI执行”理念在实践中可能遇到哪些挑战?当AI的产出与你的预期不符时,应该如何调整提示词和上下文?

  2. 本章CRM实验中的Sprint依赖关系(线性递进)如何影响交付节奏?如果改为并行Sprint,需要满足什么条件?

  3. 数据库降级方案(内存Map)在什么场景下是合理的?生产环境应如何改进?密码哈希用Base64替代bcrypt有哪些安全风险?

  4. 即申即贷的AI预审模块,需要哪些数据输入?如何设计评分模型?信用分阈值应如何确定?

  5. CNB的OAuth登录和PAT令牌两种认证方式,各有什么优缺点?如果要将后端也部署到云端(而非仅前端部署EdgeOne Pages),有哪些方案?

  6. 如果将BMAD应用于一个你熟悉的非软件项目(如组织一次学术会议、策划一次金融产品营销活动),五个阶段分别对应什么工作?

  7. 本章提到BMAD”不适合高安全要求的核心银行系统”。如果要开发一个真实的银行核心交易系统,应该在BMAD的哪些阶段增加哪些额外的工程环节? :::

资源 链接


BMAD Method 官网 https://bmadcodes.com/ BMAD GitHub https://github.com/bmad-code-org/BMAD-METHOD BMAD 安装指南 https://docs.bmad-method.org/how-to/install-bmad/ Express.js 最佳实践 https://expressjs.com/ Vite 部署指南 https://vitejs.dev/guide/build.html EdgeOne Pages 文档 https://pages.edgeone.ai/document CNB 平台文档 https://docs.cnb.cool/ JWT 安全最佳实践 https://datatracker.ietf.org/doc/html/rfc7519

: 第7章参考资源