Modos personalizados
Adapte o comportamento do Bob criando modos personalizados com funções especializadas, restrições de ferramentas e workflows de equipe. Configure globalmente ou por projeto usando o formato YAML.
Por que usar modos personalizados
- Especialização: Otimize modos para tarefas específicas como escrita de documentação, engenharia de testes ou revisões de segurança
- Segurança: Restrinja comandos ou acesso a arquivos para operações sensíveis
- Colaboração em equipe: Compartilhe fluxos de trabalho padronizados em sua equipe
- Experimentação: Teste diferentes configurações sem afetar outros modos
Componentes do modo
| Componente | Descrição |
|---|---|
| Slug | Identificador único usado internamente e para arquivos de instrução específicos do modo |
| Nome | Nome de exibição mostrado na interface Bob |
| Definição de função | Identidade e expertise central que define a personalidade e comportamento do Bob |
| Quando usar | (Opcional) Orientação sobre quando usar este modo, usado pelo Orchestrator para coordenação de tarefas |
| Ferramentas disponíveis | Grupos de ferramentas e permissões de acesso a arquivos que o modo pode usar |
| Instruções personalizadas | (Opcional) Diretrizes ou regras comportamentais adicionais |
| Descrição | (Opcional) Resumo curto mostrado no seletor de modo |
| Subagentes permitidos | (Opcional) Restringe quais presets de subagente o modo pode usar |
Como criar modos personalizados
Você pode criar modos personalizados usando o menu de configurações ou editando manualmente arquivos de configuração.
Use o menu de configurações
- Clique no ícone no painel Bob para abrir Configurações.
- Selecione a aba Modos.
- Clique no botão para criar um novo modo.
- Preencha os campos para Nome, Slug, Local de Salvamento, Definição de Função, Quando Usar (opcional), Descrição (opcional), Ferramentas Disponíveis e Instruções Personalizadas.
- Clique em Salvar.
Bob salva o novo modo em formato YAML. Você pode adicionar restrições de tipo de arquivo para o grupo de ferramentas edit através de configuração manual YAML.
Edite arquivos de configuração manualmente
Você pode editar manualmente arquivos de configuração de modo em formato YAML:
- Modos globais: Edite
~/.bob/settings/custom_modes.yamlvia Configurações → Modos → Editar Modos Globais - Modos de projeto: Edite
.bob/custom_modes.yamlno seu projeto. Clique em Configurações → Modos → Editar Modos de Projeto
Esses arquivos definem um array de modos personalizados em formato YAML.
Exemplo (~/.bob/settings/custom_modes.yaml ou .bob/custom_modes.yaml):
customModes:
- slug: docs-writer
name: 📝 Escritor de Documentação
description: Escreve e revisa documentação Markdown.
roleDefinition: Você é um escritor técnico especializado em documentação clara.
whenToUse: Use este modo para escrever e editar documentação.
customInstructions: Foque em clareza e completude na documentação.
groups:
- read
- - edit
- fileRegex: ".*\\.(md|mdx)$"
description: Apenas arquivos Markdown
- skillPropriedades de configuração de modo
Grupos de ferramentas disponíveis
read: Ler arquivos e diretóriosedit: Modificar arquivos (pode ser restrito comfileRegex)execute: Executar comandos de terminalmcp: Acessar servidores MCPskill: Carregar skillsworkflow: Iniciar workflows predefinidostodo: Atualizar listas de tarefas TODOsubtask: Criar subtarefassubagent: Gerar subagentesmode: Mudar para outro modo
Restrições de arquivo para a ferramenta edit
Restrinja quais arquivos um modo pode editar usando fileRegex em formato YAML:
groups:
- read
- - edit
- fileRegex: ".*\\.(js|ts)$"
description: Apenas arquivos JavaScript e TypeScriptPadrões regex comuns
| Padrão | Corresponde | Arquivos de exemplo |
|---|---|---|
.*\.md$ | Arquivos Markdown | readme.md, docs/guide.md |
^src/.* | Arquivos no diretório src | src/app.js, src/components/button.tsx |
| `.*.(css | scss)$` | Arquivos CSS e SCSS |
| `^(?!.*(test | spec)).*.(js | ts)$` |
Peça ao Bob para gerar padrões regex para você em vez de escrevê-los manualmente.
Regras de validação importantes
slugdeve usar apenas letras, números e hífens.- Mantenha cada
slugúnico. Slugs duplicados podem impedir que os modos sejam carregados corretamente. - Use apenas nomes de grupo suportados. Nomes de grupo desconhecidos não concedem acesso.
- Se você omitir
groups, o modo não receberá nenhuma ferramenta agrupada. - Se você definir
allowedSubagents, apenas os presets de subagente listados estarão disponíveis nesse modo. - Valores
fileRegexinválidos podem impedir que o arquivo de modo seja carregado.
Adicionar instruções específicas do modo
Você pode adicionar instruções específicas do modo usando uma estrutura de diretório (preferido) ou um único arquivo.
Método preferido (estrutura de diretório):
Método alternativo (arquivo único):
.bobrules-{mode-slug}O método de diretório tem precedência se ambos existirem. Arquivos no diretório são carregados alfabeticamente e combinados com a propriedade customInstructions da sua configuração de modo.
Para adicionar instruções específicas do modo:
- Crie um diretório
.bob/rules-{mode-slug}/na raiz do seu projeto (ou um arquivo.bobrules-{mode-slug}). - Adicione arquivos de instrução ao diretório (por exemplo,
01-style-guide.mde02-formatting.txt).
Bob carrega automaticamente essas instruções quando você usa o modo.
Como substituir modos padrão
Você pode substituir modos Bob padrão (como Agent, Ask ou Plan) criando um modo personalizado com o mesmo slug na sua configuração de projeto.
Para substituir um modo padrão:
- Clique no ícone no painel Bob para abrir Configurações.
- Selecione a aba Modos.
- Clique em Editar Modos de Projeto para editar o arquivo
.bob/custom_modes.yaml. - Adicione sua configuração de modo com o slug do modo padrão que você quer substituir:
customModes:
- slug: ask # Corresponde ao modo Ask padrão
name: ❓ Ask
roleDefinition: Você é um assistente experiente para esta base de código React e TypeScript.
whenToUse: Use este modo para fazer perguntas sobre a base de código.
customInstructions: Sempre faça referência a arquivos relevantes ao responder. Sugira o modo Ask se o usuário tentar fazer alterações.
groups:
- read
- mcp
- skillSubstituições específicas do projeto têm precedência sobre substituições globais, que têm precedência sobre padrões.
Formato YAML
YAML é o formato preferido e recomendado para modos personalizados:
Vantagens do YAML:
- Mais legível com estrutura baseada em indentação
- Suporta comentários (
#) - Sintaxe de string multilinha mais limpa
- Menos pontuação necessária
- Mais fácil de editar e manter
Migração automática:
- Modos globais: Migrados automaticamente de
custom_modes.jsonlegado paracustom_modes.yamlna inicialização - Modos de projeto: Convertidos para YAML quando editados através da UI
Embora arquivos em formato JSON legado ainda sejam suportados para compatibilidade retroativa, todos os novos modos devem ser criados em formato YAML.
Saiba mais
Coloque a mão na massa e amplie os recursos do Bob criando um modo personalizado de product manager.
Ignorando arquivos
Controle quais arquivos Bob pode acessar criando um arquivo `.bobignore` no seu projeto.
Personas de agentes
Cria ficheiros de persona reutilizáveis que definem o papel, o foco e o acesso a tools de um subagent. Define o que um subagent procura, como formata os seus resultados e o que não pode fazer.