配置

自訂模式

透過建立具備專門角色、工具限制和團隊工作流程的自訂模式來調整 Bob 的行為。你可以使用 YAML 格式進行全域設定或依專案設定。

為什麼使用自訂模式

  • 專業化:針對特定任務(如文件撰寫、測試工程或安全審查)優化模式
  • 安全性:限制敏感操作的命令或檔案存取
  • 團隊協作:在團隊中共享標準化工作流程
  • 實驗:測試不同的配置而不影響其他模式

模式元件

元件說明
Slug內部使用和用於特定於模式的指示檔案的唯一識別碼
Name在 Bob 介面中顯示的顯示名稱
Role definition定義 Bob 個性和行為的核心身份和專業知識
When to use(可選)何時使用此模式的指導,由 Orchestrator 用於任務協調
Available tools模式可以使用的工具群組和檔案存取權限
Custom instructions(可選)額外的行為指南或規則
Description(可選)模式選擇器中顯示的簡短摘要
Allowed subagents(可選)限制模式可以使用的子代理預設

如何建立自訂模式

您可以使用設定選單或手動編輯配置檔案來建立自訂模式。

使用設定選單

  1. 點擊 Bob 面板中的 圖示以開啟設定。
  2. 選擇模式標籤。
  3. 點擊 按鈕以建立新模式。
  4. 填寫名稱Slug儲存位置角色定義何時使用(可選)描述(可選)可用工具自訂指示的欄位。
  5. 點擊儲存

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: 📝 Documentation Writer
    description: Writes and revises Markdown documentation.
    roleDefinition: You are a technical writer specializing in clear documentation.
    whenToUse: Use this mode for writing and editing documentation.
    customInstructions: Focus on clarity and completeness in documentation.
    groups:
      - read
      - - edit
        - fileRegex: ".*\\.(md|mdx)$"
          description: Markdown files only
      - skill

模式配置屬性

可用的工具群組

  • read:讀取檔案和目錄
  • edit:修改檔案(可以使用 fileRegex 限制)
  • execute:執行終端機命令
  • mcp:存取 MCP 伺服器
  • skill:載入技能
  • workflow:啟動預先定義的工作流程
  • todo:更新任務待辦事項清單
  • subtask:建立子任務
  • subagent:產生子代理
  • mode:切換到另一個模式

編輯工具的檔案限制

使用 YAML 格式的 fileRegex 限制模式可以編輯哪些檔案:

groups:
  - read
  - - edit
    - fileRegex: ".*\\.(js|ts)$"
      description: JavaScript and TypeScript files only

常見的正規表示式模式

模式符合範例檔案
.*\.md$Markdown 檔案readme.mddocs/guide.md
^src/.*src 目錄中的檔案src/app.jssrc/components/button.tsx
`.*.(cssscss)$`CSS 和 SCSS 檔案
`^(?!.*(testspec)).*.(jsts)$`
提示:

請 Bob 為您生成正規表示式模式,而不是手動撰寫它們。

重要的驗證規則

  • slug 必須僅使用字母、數字和連字號。
  • 保持每個 slug 唯一。重複的 slug 可能會阻止模式正確載入。
  • 僅使用支援的群組名稱。未知的群組名稱不授予存取權限。
  • 如果省略 groups,模式將不會獲得任何分組工具。
  • 如果設定 allowedSubagents,則該模式中僅列出的子代理預設可用。
  • 無效的 fileRegex 值可能會阻止模式檔案載入。

添加特定於模式的指示

您可以使用目錄結構(首選)或單一檔案添加特定於模式的指示。

首選方法(目錄結構):

01-style-guide.md
02-formatting.txt

替代方法(單一檔案):

.bobrules-{mode-slug}

如果兩者都存在,目錄方法優先。目錄中的檔案按字母順序載入,並與模式配置中的 customInstructions 屬性結合。

要添加特定於模式的指示:

  1. 在專案根目錄中建立 .bob/rules-{mode-slug}/ 目錄(或 .bobrules-{mode-slug} 檔案)。
  2. 將指示檔案添加到目錄(例如,01-style-guide.md02-formatting.txt)。

Bob 在您使用模式時會自動載入這些指示。

如何覆寫預設模式

您可以透過在專案配置中建立具有相同 slug 的自訂模式來覆寫預設的 Bob 模式(例如 Agent、Ask 或 Plan)。

要覆寫預設模式:

  1. 點擊 Bob 面板中的 圖示以開啟設定。
  2. 選擇模式標籤。
  3. 點擊編輯專案模式以編輯 .bob/custom_modes.yaml 檔案。
  4. 使用您想要覆寫的預設模式的 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 的能力

這個主題如何?