Modalità personalizzate
Puoi creare modalità personalizzate per adattare il comportamento di Bob a task o flussi di lavoro specifici. Le modalità personalizzate in Bob Shell funzionano in modo simile alle modalità di Bob IDE.
Perché usare le modalità personalizzate in Bob Shell
- Flussi di lavoro ottimizzati per la shell: Crea modalità progettate specificamente per i task di sviluppo basati su terminale
- Sicurezza da riga di comando: Limita le modalità a operazioni sicure quando lavori in ambienti di produzione
- Comportamento specifico per ambiente: Configura modalità che si adattano a diversi ambienti shell
- Compatibilità con l'automazione: Progetta modalità che funzionano perfettamente sia nelle sessioni interattive che in quelle non interattive
- Standardizzazione del team: Condividi modalità specifiche per la shell con il tuo team per flussi di lavoro coerenti
Cosa è incluso in una modalità personalizzata
Le modalità personalizzate in Bob Shell usano la stessa struttura di base delle modalità di Bob IDE:
| Proprietà | Descrizione | Considerazioni specifiche per la shell |
|---|---|---|
slug | Identificatore interno univoco | Usato negli argomenti da riga di comando:bob --chat-mode=my-mode |
name | Nome visualizzato nell'UI | Mostrato nel selettore di modalità della sessione interattiva |
description | Breve descrizione mostrata nel selettore di modalità | Spiega brevemente lo scopo della tua modalità |
roleDefinition | Identità e competenze di base | Dovrebbe considerare il contesto shell e i flussi di lavoro da riga di comando |
groups | Set di strumenti consentiti e accesso ai file | I permessi di esecuzione dei comandi sono critici negli ambienti shell |
whenToUse | Guida alla selezione della modalità | Aiuta Bob Shell a scegliere le modalità appropriate per i task |
customInstructions | Linee guida comportamentali specifiche, o regole per la modalità | Può fare riferimento ai pattern di sviluppo di Bob Shell |
Strumenti disponibili
Gruppi di strumenti disponibili
read: Leggi file e directoryedit: Modifica file (può essere limitato confileRegex)browser: Usa l'automazione del browsercommand: Esegui comandi del terminalemcp: Accedi ai server MCP
Creare modalità personalizzate
File di configurazione
Bob Shell usa lo stesso formato di configurazione di Bob IDE, supportando sia il formato YAML (preferito) che JSON.
Modalità globali
Crea o modifica ~/.bob/custom_modes.yaml per le modalità disponibili in tutti i progetti:
customModes:
- slug: shell-debug
name: 🐛 Shell Debugger
roleDefinition: >-
You are a debugging specialist focused on command-line troubleshooting.
You excel at analyzing shell output, environment variables, and system logs.
whenToUse: Use for debugging shell scripts, command failures, and environment issues.
customInstructions: |-
When debugging:
- Always check environment variables first
- Examine command exit codes
- Review relevant log files
- Test commands in isolation before suggesting fixes
groups:
- read
- command
- browserModalità specifiche del progetto
Crea o modifica .bob/custom_modes.yaml nella radice del tuo progetto:
customModes:
- slug: deploy-helper
name: 🚀 Deployment Assistant
roleDefinition: You are a deployment specialist for this project's infrastructure.
whenToUse: Use for deployment tasks, infrastructure changes, and release management.
customInstructions: |-
Deployment guidelines:
- Always verify the target environment before running commands
- Check for running processes that might be affected
- Validate configuration files before applying changes
- Create backups before destructive operations
groups:
- read
- - edit
- fileRegex: \.(yaml|yml|sh|env)$
description: Configuration and script files only
- commandSelezione della modalità da riga di comando
Specifica una modalità all'avvio di Bob Shell:
# Avvia Bob Shell in una modalità specifica
bob --chat-mode=shell-debug
# Combina con altre opzioni
bob --chat-mode=deploy-helper --sandboxCambio di modalità interattivo
In modalità interattiva, cambia modalità usando i comandi slash:
# Passa a una modalità personalizzata
/mode shell-debug
# O usa direttamente lo slug della modalità
/shell-debugConfigurazioni specifiche per la shell
Modalità di sicurezza per la produzione
Crea una modalità incentrata sulla sicurezza per gli ambienti di produzione:
customModes:
- slug: prod-ops
name: 🔒 Production Operations
roleDefinition: >-
You are a production operations specialist with a strong focus on safety.
You never run destructive commands without explicit confirmation.
whenToUse: Use when working with production systems or sensitive environments.
customInstructions: |-
Production safety rules:
- NEVER run destructive commands without explicit user confirmation
- Always verify the target environment before any operation
- Suggest dry-run options when available
- Check for active connections or processes before changes
- Recommend backup procedures before modifications
groups:
- read
- browser
# Note: No edit or command groups for maximum safetyModalità di sviluppo script
Crea una modalità per lo sviluppo di script shell:
customModes:
- slug: script-dev
name: 📜 Script Developer
roleDefinition: >-
You are a shell scripting expert specializing in bash, zsh, and POSIX-compliant scripts.
whenToUse: Use for creating, debugging, or improving shell scripts.
customInstructions: |-
Shell scripting best practices:
- Use shellcheck-compliant syntax
- Include proper error handling with set -e and set -u
- Add usage documentation at the top of scripts
- Quote variables to prevent word splitting
- Provide exit codes for different error conditions
groups:
- read
- - edit
- fileRegex: \.(sh|bash|zsh)$
description: Shell script files only
- commandPermessi di esecuzione dei comandi
Limitare l'accesso ai comandi
Controlla quali comandi una modalità può eseguire omettendo il gruppo command:
customModes:
- slug: safe-reviewer
name: 👀 Safe Code Reviewer
roleDefinition: You are a code reviewer focused on analysis, not modification.
whenToUse: Use for code reviews and analysis without making changes.
groups:
- read
- browser
# No command or edit groups - read-only modeConsentire comandi specifici
Usa la configurazione degli strumenti allowed di Bob Shell con le modalità personalizzate nel tuo file di impostazioni:
{
"tools": {
"allowed": [
"run_shell_command(git status)",
"run_shell_command(git log)",
"run_shell_command(git diff)"
]
}
}Comportamento interattivo vs non interattivo
Progettare per entrambe le modalità
Crea modalità che funzionino bene sia nelle sessioni interattive che in quelle non interattive:
customModes:
- slug: test-runner
name: 🧪 Test Runner
roleDefinition: >-
You are a testing specialist who runs and analyzes test suites.
You adapt your output based on the running context.
whenToUse: Use for running tests, analyzing test results, and debugging test failures.
customInstructions: |-
Testing guidelines:
- In interactive mode: Provide detailed explanations and suggestions
- In non-interactive mode: Focus on concise, actionable output
- Always report test results clearly
- Suggest fixes for failing tests
groups:
- read
- commandUtilizzo non interattivo
Usa le modalità in modalità non interattiva:
# Usa una modalità progettata per l'automazione
bob --chat-mode=test-runner -p "Run the test suite and report failures"
# Combina con l'elaborazione dell'output
bob --chat-mode=test-runner -p "Run tests" --hide-intermediary-output > results.txtIstruzioni specifiche per modalità tramite file
Istruzioni basate su directory
Crea file di istruzioni specifici per modalità in .bob/rules-{mode-slug}/:
Esempio di file di istruzioni (.bob/rules-shell-debug/01-environment-checks.md):
# Environment Debugging Checklist
When debugging shell issues, always check:
1. **Environment Variables**: PATH, SHELL, TERM, and application-specific variables
2. **Shell Configuration**: .bashrc, .zshrc, .profile files
3. **System State**: Current working directory, file permissions, disk space
4. **Command Availability**: Use `command -v <cmd>` to verify commands existIstruzioni in un singolo file (fallback)
In alternativa, usa un singolo file .bobrules-{mode-slug} nella radice del tuo workspace.
Precedenza della configurazione
Le configurazioni delle modalità vengono applicate in questo ordine:
- Argomenti da riga di comando (
--chat-mode=mode-slug) - Modalità a livello di progetto (
.bob/custom_modes.yaml - Modalità a livello utente (
~/.bob/custom_modes.yaml) - Modalità a livello di sistema (posizioni specifiche della piattaforma)
- Modalità predefinite
Sandboxing con modalità personalizzate
Combina le modalità personalizzate con la funzionalità sandbox di Bob Shell per una sperimentazione sicura:
# Avvia una modalità personalizzata in sandbox
bob --chat-mode=script-dev --sandbox
# Usa con sandbox Docker
bob --chat-mode=deploy-helper --sandboxMigrare le modalità da Bob IDE
Differenze chiave
Quando si migrano modalità personalizzate da Bob IDE a Bob Shell:
| Aspetto | Bob IDE | Bob Shell |
|---|---|---|
| Interazione UI | Interfaccia visiva con pannelli | Interfaccia basata su terminale |
| Modifica file | Diff e anteprime nell'editor | Vista diff CLI o editor esterno |
| Esecuzione comandi | Terminale integrato | Esecuzione diretta nella shell |
| Cambio modalità | Dropdown UI o comandi slash | Comandi slash o argomenti CLI |
| Configurazione | UI impostazioni + file | Solo file di configurazione |
Checklist di adattamento
Quando si adattano le modalità di Bob IDE per Bob Shell:
- Rivedi
roleDefinitionper il contesto specifico della shell - Aggiorna
customInstructionsper fare riferimento ai flussi di lavoro da riga di comando - Considera la sicurezza dell'esecuzione dei comandi nella configurazione di
groups - Testa la modalità sia nelle sessioni interattive che in quelle non interattive
- Verifica che la gestione dei percorsi dei file funzioni nel contesto shell
- Testa con la modalità sandbox se applicabile
Esempio di migrazione
Modalità Bob IDE originale:
customModes:
- slug: code-reviewer
name: 👀 Code Reviewer
roleDefinition: You are a code reviewer who provides detailed feedback.
groups:
- read
- browserAdattata per Bob Shell:
customModes:
- slug: code-reviewer
name: 👀 Code Reviewer
roleDefinition: >-
You are a code reviewer who provides detailed feedback.
You work efficiently in terminal environments and provide clear, actionable suggestions.
whenToUse: Use for code reviews, pull request analysis, and code quality checks.
customInstructions: |-
Code review guidelines:
- Provide feedback in a structured format suitable for terminal output
- Reference specific line numbers and file paths
- Suggest concrete improvements with examples
- Format output for easy parsing if used in non-interactive mode
groups:
- read
- command # Added for git operations
- browserRegole personalizzate
Le regole personalizzate influenzano il modo in cui Bob Shell risponde alle tue richieste nell'ambiente terminale, allineando l'output alle tue preferenze specifiche e ai requisiti del progetto. Puoi controllare lo stile di codifica, l'approccio alla documentazione e i processi decisionali.
Persona agenti
Crea file di persona riutilizzabili che definiscono il ruolo, il focus e l'accesso ai tool di un subagent. Definisci cosa cerca un subagent, come formatta il suo output e cosa non può fare.