구성

사용자 정의 모드

전문화된 역할, 도구 제한, 팀 워크플로우를 갖춘 사용자 정의 모드를 만들어 Bob의 동작을 조정하세요. YAML 형식을 사용해 전역 또는 프로젝트별로 구성할 수 있습니다.

사용자 정의 모드를 사용하는 이유

  • 전문화: 문서 작성, 테스트 엔지니어링 또는 보안 검토와 같은 특정 작업에 맞게 모드를 최적화합니다
  • 보안: 민감한 작업에 대한 명령 또는 파일 액세스를 제한합니다
  • 팀 협업: 팀 내에서 표준화된 워크플로우를 공유합니다
  • 실험: 다른 모드에 영향을 주지 않고 다양한 구성을 테스트합니다

모드 구성 요소

구성 요소설명
Slug내부적으로 그리고 모드별 지침 파일에 사용되는 고유 식별자
NameBob 인터페이스에 표시되는 표시 이름
역할 정의Bob의 성격과 동작을 정의하는 핵심 정체성 및 전문 지식
사용 시기(선택 사항) 이 모드를 사용할 시기에 대한 지침, Orchestrator가 작업 조정에 사용
사용 가능한 도구모드가 사용할 수 있는 도구 그룹 및 파일 액세스 권한
사용자 정의 지침(선택 사항) 추가 동작 지침 또는 규칙
설명(선택 사항) 모드 선택기에 표시되는 짧은 요약
허용된 서브에이전트(선택 사항) 모드가 사용할 수 있는 서브에이전트 프리셋을 제한

사용자 정의 모드를 만드는 방법

설정 메뉴를 사용하거나 구성 파일을 수동으로 편집하여 사용자 정의 모드를 만들 수 있습니다.

설정 메뉴 사용

  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: 📝 문서 작성자
    description: Markdown 문서를 작성하고 수정합니다.
    roleDefinition: 명확한 문서 작성을 전문으로 하는 기술 작가입니다.
    whenToUse: 문서를 작성하고 편집할 때 이 모드를 사용합니다.
    customInstructions: 문서의 명확성과 완전성에 중점을 둡니다.
    groups:
      - read
      - - edit
        - fileRegex: ".*\\.(md|mdx)$"
          description: Markdown 파일만
      - skill

모드 구성 속성

사용 가능한 도구 그룹

  • read: 파일 및 디렉토리 읽기
  • edit: 파일 수정(fileRegex로 제한 가능)
  • execute: 터미널 명령 실행
  • mcp: MCP 서버 액세스
  • skill: 스킬 로드
  • workflow: 사전 정의된 워크플로우 실행
  • todo: 작업 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
`.*.(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의 기능을 확장해 보세요.

이 주제는 어떤가요?