配置
自定义模式
通过创建具有专门角色、工具限制和团队工作流的自定义模式来调整 Bob 的行为。你可以使用 YAML 格式进行全局配置或按项目配置。
为什么使用自定义模式
- 专业化:针对文档编写、测试工程或安全审查等特定任务优化模式
- 安全性:限制敏感操作的命令或文件访问
- 团队协作:在团队中共享标准化工作流程
- 实验:测试不同的配置而不影响其他模式
模式组件
| 组件 | 描述 |
|---|---|
| Slug | 内部使用的唯一标识符,用于特定于模式的指令文件 |
| 名称 | Bob 界面中显示的显示名称 |
| 角色定义 | 定义 Bob 个性和行为的核心身份和专业知识 |
| 何时使用 | (可选)何时使用此模式的指导,由编排器用于任务协调 |
| 可用工具 | 模式可以使用的工具组和文件访问权限 |
| 自定义指令 | (可选)其他行为指南或规则 |
| 描述 | (可选)模式选择器中显示的简短摘要 |
| 允许的子代理 | (可选)限制模式可以使用的子代理预设 |
如何创建自定义模式
您可以使用设置菜单或手动编辑配置文件来创建自定义模式。
使用设置菜单
- 单击 Bob 面板中的 图标以打开设置。
- 选择模式选项卡。
- 单击 按钮创建新模式。
- 填写名称、Slug、保存位置、角色定义、何时使用(可选)、描述(可选)、可用工具和自定义指令字段。
- 单击保存。
Bob 以 YAML 格式保存新模式。您可以通过手动 YAML 配置为 edit 工具组添加文件类型限制。
手动编辑配置文件
您可以手动编辑 YAML 格式的模式配置文件:
- 全局模式:通过设置 → 模式 → 编辑全局模式编辑
~/.bob/settings/custom_modes.yaml - 项目模式:编辑项目中的
.bob/custom_modes.yaml。单击设置 → 模式 → 编辑项目模式
这些文件以 YAML 格式定义了一个自定义模式数组。
示例(~/.bob/settings/custom_modes.yaml 或 .bob/custom_modes.yaml):
customModes:
- slug: docs-writer
name: 📝 文档编写器
description: 编写和修订 Markdown 文档。
roleDefinition: 您是一位专门从事清晰文档的技术作家。
whenToUse: 使用此模式编写和编辑文档。
customInstructions: 专注于文档的清晰性和完整性。
groups:
- read
- - edit
- fileRegex: ".*\\.(md|mdx)$"
description: 仅 Markdown 文件
- skill模式配置属性
可用工具组
read:读取文件和目录edit:修改文件(可以使用fileRegex限制)execute:执行终端命令mcp:访问 MCP 服务器skill:加载技能workflow:启动预定义工作流todo:更新任务待办事项列表subtask:创建子任务subagent:生成子代理mode:切换到另一个模式
编辑工具的文件限制
使用 YAML 格式的 fileRegex 限制模式可以编辑哪些文件:
groups:
- read
- - edit
- fileRegex: ".*\\.(js|ts)$"
description: 仅 JavaScript 和 TypeScript 文件常见正则表达式模式
| 模式 | 匹配 | 示例文件 |
|---|---|---|
.*\.md$ | Markdown 文件 | readme.md、docs/guide.md |
^src/.* | src 目录中的文件 | src/app.js、src/components/button.tsx |
| `.*.(css | scss)$` | CSS 和 SCSS 文件 |
| `^(?!.*(test | spec)).*.(js | ts)$` |
提示:
让 Bob 为你生成正则表达式模式,而不是手动编写。
重要的验证规则
slug必须仅使用字母、数字和连字符。- 保持每个
slug唯一。重复的 slug 可能会阻止模式正确加载。 - 仅使用支持的组名称。未知的组名称不授予访问权限。
- 如果省略
groups,模式将不会获得任何分组工具。 - 如果设置
allowedSubagents,则该模式中仅列出的子代理预设可用。 - 无效的
fileRegex值可能会阻止模式文件加载。
添加特定于模式的指令
您可以使用目录结构(首选)或单个文件添加特定于模式的指令。
首选方法(目录结构):
01-style-guide.md
02-formatting.txt
替代方法(单个文件):
.bobrules-{mode-slug}如果两者都存在,目录方法优先。目录中的文件按字母顺序加载,并与模式配置中的 customInstructions 属性组合。
要添加特定于模式的指令:
- 在项目根目录中创建一个
.bob/rules-{mode-slug}/目录(或一个.bobrules-{mode-slug}文件)。 - 将指令文件添加到目录(例如,
01-style-guide.md和02-formatting.txt)。
当您使用该模式时,Bob 会自动加载这些指令。
如何覆盖默认模式
您可以通过在项目配置中创建具有相同 slug 的自定义模式来覆盖默认 Bob 模式(例如 Agent、Ask 或 Plan)。
要覆盖默认模式:
- 单击 Bob 面板中的 图标以打开设置。
- 选择模式选项卡。
- 单击编辑项目模式以编辑
.bob/custom_modes.yaml文件。 - 使用要覆盖的默认模式的 slug 添加模式配置:
customModes:
- slug: ask # 匹配默认 Ask 模式
name: ❓ Ask
roleDefinition: 你是这个 React 和 TypeScript 代码库的知识渊博的助手。
whenToUse: 使用此模式询问有关代码库的问题。
customInstructions: 回答时始终引用相关文件。如果用户尝试进行更改,建议使用 Ask 模式。
groups:
- read
- mcp
- skill特定于项目的覆盖优先于全局覆盖,全局覆盖优先于默认值。
YAML 格式
YAML 是自定义模式的首选和推荐格式:
YAML 优势:
- 基于缩进的结构更易读
- 支持注释(
#) - 更简洁的多行字符串语法
- 所需标点符号更少
- 更易于编辑和维护
自动迁移:
- 全局模式:启动时自动从旧版
custom_modes.json迁移到custom_modes.yaml - 项目模式:通过 UI 编辑时转换为 YAML
虽然旧版 JSON 格式文件仍然支持向后兼容,但所有新模式都应以 YAML 格式创建。
了解更多
动手试试,并通过创建自定义 product manager 模式来扩展 Bob 的能力。
这个主题怎么样?