--- title: "如何自定义 BMad" description: 自定义智能体、工作流和模块,同时保持更新兼容性 sidebar: order: 7 --- 使用 `.customize.yaml` 文件来调整智能体行为、角色和菜单,同时在更新过程中保留您的更改。 ## 何时使用此功能 - 您想要更改智能体的名称、个性或沟通风格 - 您需要智能体记住项目特定的上下文 - 您想要添加自定义菜单项来触发您自己的工作流或提示 - 您希望智能体在每次启动时执行特定操作 :::note[前置条件] - 在项目中安装了 BMad(参见[如何安装 BMad](./install-bmad.md)) - 用于编辑 YAML 文件的文本编辑器 ::: :::caution[保护您的自定义配置] 始终使用此处描述的 `.customize.yaml` 文件,而不是直接编辑智能体文件。安装程序在更新期间会覆盖智能体文件,但会保留您的 `.customize.yaml` 更改。 ::: ## 步骤 ### 1. 定位自定义文件 安装后,在以下位置为每个智能体找到一个 `.customize.yaml` 文件: ```text _bmad/_config/agents/ ├── core-bmad-master.customize.yaml ├── bmm-dev.customize.yaml ├── bmm-pm.customize.yaml └── ...(每个已安装的智能体一个文件) ``` ### 2. 编辑自定义文件 打开您想要修改的智能体的 `.customize.yaml` 文件。每个部分都是可选的——只自定义您需要的内容。 | 部分 | 行为 | 用途 | | ------------------ | -------- | ---------------------------------------------- | | `agent.metadata` | 替换 | 覆盖智能体的显示名称 | | `persona` | 替换 | 设置角色、身份、风格和原则 | | `memories` | 追加 | 添加智能体始终会记住的持久上下文 | | `menu` | 追加 | 为工作流或提示添加自定义菜单项 | | `critical_actions` | 追加 | 定义智能体的启动指令 | | `prompts` | 追加 | 创建可重复使用的提示供菜单操作使用 | 标记为 **替换** 的部分会完全覆盖智能体的默认设置。标记为 **追加** 的部分会添加到现有配置中。 **智能体名称** 更改智能体的自我介绍方式: ```yaml agent: metadata: name: 'Spongebob' # 默认值:"Amelia" ``` **角色** 替换智能体的个性、角色和沟通风格: ```yaml persona: role: 'Senior Full-Stack Engineer' identity: 'Lives in a pineapple (under the sea)' communication_style: 'Spongebob annoying' principles: - 'Never Nester, Spongebob Devs hate nesting more than 2 levels deep' - 'Favor composition over inheritance' ``` `persona` 部分会替换整个默认角色,因此如果您设置它,请包含所有四个字段。 **记忆** 添加智能体将始终记住的持久上下文: ```yaml memories: - 'Works at Krusty Krab' - 'Favorite Celebrity: David Hasselhoff' - 'Learned in Epic 1 that it is not cool to just pretend that tests have passed' ``` **菜单项** 向智能体的显示菜单添加自定义条目。每个条目需要一个 `trigger`、一个目标(`workflow` 路径或 `action` 引用)和一个 `description`: ```yaml menu: - trigger: my-workflow workflow: 'my-custom/workflows/my-workflow.yaml' description: My custom workflow - trigger: deploy action: '#deploy-prompt' description: Deploy to production ``` **关键操作** 定义智能体启动时运行的指令: ```yaml critical_actions: - 'Check the CI Pipelines with the XYZ Skill and alert user on wake if anything is urgently needing attention' ``` **自定义提示** 创建可重复使用的提示,菜单项可以通过 `action="#id"` 引用: ```yaml prompts: - id: deploy-prompt content: | Deploy the current branch to production: 1. Run all tests 2. Build the project 3. Execute deployment script ``` ### 3. 应用您的更改 编辑后,重新安装以应用更改: ```bash npx bmad-method install ``` 安装程序会检测现有安装并提供以下选项: | Option | What It Does | | ---------------------------- | ------------------------------------------------------------------- | | **Quick Update** | 将所有模块更新到最新版本并应用自定义配置 | | **Modify BMad Installation** | 用于添加或删除模块的完整安装流程 | 对于仅自定义配置的更改,**Quick Update** 是最快的选项。 ## 故障排除 **更改未生效?** - 运行 `npx bmad-method install` 并选择 **Quick Update** 以应用更改 - 检查您的 YAML 语法是否有效(缩进很重要) - 验证您编辑的是该智能体正确的 `.customize.yaml` 文件 **智能体无法加载?** - 使用在线 YAML 验证器检查 YAML 语法错误 - 确保在取消注释后没有留下空字段 - 尝试恢复到原始模板并重新构建 **需要重置智能体?** - 清空或删除智能体的 `.customize.yaml` 文件 - 运行 `npx bmad-method install` 并选择 **Quick Update** 以恢复默认设置 ## 工作流自定义 对现有 BMad Method 工作流和技能的自定义即将推出。 ## 模块自定义 关于构建扩展模块和自定义现有模块的指南即将推出。 --- ## 术语说明 - **agent**:智能体。在人工智能与编程文档中,指具备自主决策或执行能力的单元。 - **workflow**:工作流。指一系列有序的任务或步骤,用于完成特定目标。 - **persona**:角色。指智能体的身份、个性、沟通风格和行为原则的集合。 - **memory**:记忆。指智能体持久存储的上下文信息,用于在对话中保持连贯性。 - **critical action**:关键操作。指智能体启动时必须执行的指令或任务。 - **prompt**:提示。指发送给智能体的输入文本,用于引导其生成特定响应或执行特定操作。