사용자 정의 모드
전문화된 역할, 도구 제한, 팀 워크플로우를 갖춘 사용자 정의 모드를 만들어 Bob의 동작을 조정하세요. YAML 형식을 사용해 전역 또는 프로젝트별로 구성할 수 있습니다.
사용자 정의 모드를 사용하는 이유
- 전문화: 문서 작성, 테스트 엔지니어링 또는 보안 검토와 같은 특정 작업에 맞게 모드를 최적화합니다
- 보안: 민감한 작업에 대한 명령 또는 파일 액세스를 제한합니다
- 팀 협업: 팀 내에서 표준화된 워크플로우를 공유합니다
- 실험: 다른 모드에 영향을 주지 않고 다양한 구성을 테스트합니다
모드 구성 요소
| 구성 요소 | 설명 |
|---|---|
| Slug | 내부적으로 그리고 모드별 지침 파일에 사용되는 고유 식별자 |
| Name | Bob 인터페이스에 표시되는 표시 이름 |
| 역할 정의 | Bob의 성격과 동작을 정의하는 핵심 정체성 및 전문 지식 |
| 사용 시기 | (선택 사항) 이 모드를 사용할 시기에 대한 지침, Orchestrator가 작업 조정에 사용 |
| 사용 가능한 도구 | 모드가 사용할 수 있는 도구 그룹 및 파일 액세스 권한 |
| 사용자 정의 지침 | (선택 사항) 추가 동작 지침 또는 규칙 |
| 설명 | (선택 사항) 모드 선택기에 표시되는 짧은 요약 |
| 허용된 서브에이전트 | (선택 사항) 모드가 사용할 수 있는 서브에이전트 프리셋을 제한 |
사용자 정의 모드를 만드는 방법
설정 메뉴를 사용하거나 구성 파일을 수동으로 편집하여 사용자 정의 모드를 만들 수 있습니다.
설정 메뉴 사용
- 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: 작업 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값은 모드 파일이 로드되지 않을 수 있습니다.
모드별 지침 추가
디렉토리 구조(권장) 또는 단일 파일을 사용하여 모드별 지침을 추가할 수 있습니다.
권장 방법(디렉토리 구조):
대체 방법(단일 파일):
.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 형식으로 만들어야 합니다.