3.9 KiB
3.9 KiB
BMad方法指导原则
BMad方法是一个用于AI辅助软件开发的自然语言框架。这些原则确保贡献能保持该方法的有效性。
核心原则
1. 开发代理必须精简
- 最小化开发代理的依赖: 在IDE中工作的开发代理必须有最小的上下文开销
- 为代码节省上下文: 每一行都很重要 - 开发代理应专注于编码,而不是文档
- Web代理可以更大: 在Web UI中使用的规划代理(PRD编写者、架构师)可以有更复杂的任务和依赖
- 小文件,按需加载: 多个小的、专注的文件比包含许多分支的大文件更好
2. 自然语言优先
- 一切都是markdown: 代理、任务、模板 - 都用纯英文编写
- 核心中没有代码: 框架本身不包含编程代码,只有自然语言指令
- 自包含的模板: 模板被定义为YAML文件,具有结构化的部分,包括元数据、工作流配置和内容生成的详细说明
3. 代理和任务设计
- 代理定义角色: 每个代理都是一个具有特定专业知识的角色(例如,前端开发人员、API开发人员)
- 任务是程序: 代理为完成工作而遵循的逐步说明
- 模板是输出: 带有生成说明的结构化文档
- 依赖关系很重要: 明确声明只需要什么
实践指南
何时添加到核心
- 仅限通用的软件开发需求
- 不增加开发代理的上下文负担
- 遵循现有的代理/任务/模板模式
何时创建扩展包
- 软件开发之外的特定领域需求
- 非技术领域(商业、健康、教育、创意)
- 专业技术领域(游戏、基础设施、移动)
- 大量的文档或知识库
- 任何会使核心代理膨胀的东西
有关详细示例和想法,请参阅扩展包指南。
代理设计规则
- Web/规划代理: 可以有更丰富的上下文、多个任务、广泛的模板
- 开发代理: 最小的依赖、专注于代码生成、精简的任务集
- 所有代理: 清晰的角色、特定的专业知识、明确定义的能力
任务编写规则
- 编写清晰的逐步程序
- 使用markdown格式以提高可读性
- 保持开发代理任务的专注和简洁
- 规划任务可以更详尽
- 倾向于多个小任务,而不是一个大的分支任务
- 而不是一个有许多条件路径的任务
- 创建多个专注的任务供代理选择
- 这使上下文开销保持最小
- 重用通用任务 - 不要创建新的文档创建任务
- 使用现有的
create-doc任务 - 传递带有结构化部分的适当YAML模板
- 这保持了一致性并减少了重复
- 使用现有的
模板规则
模板遵循使用YAML格式的BMad文档模板规范:
- 结构: 模板在YAML中定义,具有清晰的元数据、工作流配置和章节层次结构
- 关注点分离: LLM的指令在
instruction字段中,与内容分开 - 可重用性: 模板与代理无关,可以在不同的代理之间使用
- 关键组件:
- 用于元数据的
template块(id、name、version、output设置) - 用于交互模式配置的
workflow块 - 定义文档结构的
sections数组,带有嵌套的子部分 - 每个部分都有
id、title和instruction字段
- 用于元数据的
- 高级功能:
- 使用
{{variable_name}}语法进行变量替换 - 带有
condition字段的条件部分 - 带有
repeatable: true的可重复部分 - 带有
owner和editors字段的代理权限 - 用于指导的示例数组(从不包含在输出中)
- 使用
- 干净的输出: YAML结构确保所有处理逻辑与生成的内容分开
请记住
- 力量在于自然语言的编排,而不是代码
- 开发代理编码,规划代理规划
- 保持开发代理精简以实现最大的编码效率
- 扩展包处理专业领域