--- title: Modos description: Modos diferentes para diferentes casos de uso. --- :::caution Os modos agora são configurados através da opção `agent` na configuração do opencode. A opção `mode` agora está obsoleta. [Saiba mais](/docs/agents). ::: Os modos no opencode permitem que você personalize o comportamento, as ferramentas e os prompts para diferentes casos de uso. Ele vem com dois modos integrados: **build** e **plan**. Você pode personalizar esses ou configurar os seus próprios através da configuração do opencode. Você pode alternar entre os modos durante uma sessão ou configurá-los no seu arquivo de configuração. --- ## Integrado O opencode vem com dois modos integrados. --- ### Build Build é o modo **padrão** com todas as ferramentas habilitadas. Este é o modo padrão para trabalho de desenvolvimento onde você precisa de acesso total a operações de arquivos e comandos do sistema. --- ### Plan Um modo restrito projetado para planejamento e análise. No modo plan, as seguintes ferramentas estão desativadas por padrão: - `write` - Não pode criar novos arquivos - `edit` - Não pode modificar arquivos existentes, exceto para arquivos localizados em `.opencode/plans/*.md` para detalhar o plano em si - `patch` - Não pode aplicar patches - `bash` - Não pode executar comandos de shell Este modo é útil quando você deseja que a IA analise o código, sugira alterações ou crie planos sem fazer modificações reais em sua base de código. --- ## Alternando Você pode alternar entre modos durante uma sessão usando a tecla _Tab_. Ou sua tecla de atalho configurada `switch_mode`. Veja também: [Formatadores](/docs/formatters) para informações sobre configuração de formatação de código. --- ## Configurar Você pode personalizar os modos integrados ou criar os seus próprios através da configuração. Os modos podem ser configurados de duas maneiras: ### Configuração JSON Configure os modos no seu arquivo de configuração `opencode.json`: ```json title="opencode.json" { "$schema": "https://opencode.ai/config.json", "mode": { "build": { "model": "anthropic/claude-sonnet-4-20250514", "prompt": "{file:./prompts/build.txt}", "tools": { "write": true, "edit": true, "bash": true } }, "plan": { "model": "anthropic/claude-haiku-4-20250514", "tools": { "write": false, "edit": false, "bash": false } } } } ``` ### Configuração Markdown Você também pode definir modos usando arquivos markdown. Coloque-os em: - Global: `~/.config/opencode/modes/` - Projeto: `.opencode/modes/` ```markdown title="~/.config/opencode/modes/review.md" --- model: anthropic/claude-sonnet-4-20250514 temperature: 0.1 tools: write: false edit: false bash: false --- Você está no modo de revisão de código. Foque em: - Qualidade do código e melhores práticas - Bugs potenciais e casos extremos - Implicações de desempenho - Considerações de segurança Forneça feedback construtivo sem fazer alterações diretas. ``` O nome do arquivo markdown se torna o nome do modo (por exemplo, `review.md` cria um modo `review`). Vamos analisar essas opções de configuração em detalhes. --- ### Modelo Use a configuração `model` para substituir o modelo padrão para este modo. Útil para usar diferentes modelos otimizados para diferentes tarefas. Por exemplo, um modelo mais rápido para planejamento, um modelo mais capaz para implementação. ```json title="opencode.json" { "mode": { "plan": { "model": "anthropic/claude-haiku-4-20250514" } } } ``` --- ### Temperatura Controle a aleatoriedade e a criatividade das respostas da IA com a configuração `temperature`. Valores mais baixos tornam as respostas mais focadas e determinísticas, enquanto valores mais altos aumentam a criatividade e a variabilidade. ```json title="opencode.json" { "mode": { "plan": { "temperature": 0.1 }, "creative": { "temperature": 0.8 } } } ``` Os valores de temperatura geralmente variam de 0.0 a 1.0: - **0.0-0.2**: Respostas muito focadas e determinísticas, ideais para análise de código e planejamento - **0.3-0.5**: Respostas equilibradas com alguma criatividade, boas para tarefas de desenvolvimento geral - **0.6-1.0**: Respostas mais criativas e variadas, úteis para brainstorming e exploração ```json title="opencode.json" { "mode": { "analyze": { "temperature": 0.1, "prompt": "{file:./prompts/analysis.txt}" }, "build": { "temperature": 0.3 }, "brainstorm": { "temperature": 0.7, "prompt": "{file:./prompts/creative.txt}" } } } ``` Se nenhuma temperatura for especificada, o opencode usa padrões específicos do modelo (geralmente 0 para a maioria dos modelos, 0.55 para modelos Qwen). --- ### Prompt Especifique um arquivo de prompt do sistema personalizado para este modo com a configuração `prompt`. O arquivo de prompt deve conter instruções específicas para o propósito do modo. ```json title="opencode.json" { "mode": { "review": { "prompt": "{file:./prompts/code-review.txt}" } } } ``` Este caminho é relativo a onde o arquivo de configuração está localizado. Portanto, isso funciona tanto para a configuração global do opencode quanto para a configuração específica do projeto. --- ### Ferramentas Controle quais ferramentas estão disponíveis neste modo com a configuração `tools`. Você pode habilitar ou desabilitar ferramentas específicas definindo-as como `true` ou `false`. ```json { "mode": { "readonly": { "tools": { "write": false, "edit": false, "bash": false, "read": true, "grep": true, "glob": true } } } } ``` Se nenhuma ferramenta for especificada, todas as ferramentas estão habilitadas por padrão. --- #### Ferramentas disponíveis Aqui estão todas as ferramentas que podem ser controladas através da configuração do modo. | Ferramenta | Descrição | | ----------- | ------------------------------- | | `bash` | Executar comandos de shell | | `edit` | Modificar arquivos existentes | | `write` | Criar novos arquivos | | `read` | Ler conteúdos de arquivos | | `grep` | Pesquisar conteúdos de arquivos | | `glob` | Encontrar arquivos por padrão | | `list` | Listar conteúdos de diretório | | `patch` | Aplicar patches a arquivos | | `todowrite` | Gerenciar listas de tarefas | | `todoread` | Ler listas de tarefas | | `webfetch` | Buscar conteúdo da web | --- ## Modos personalizados Você pode criar seus próprios modos personalizados adicionando-os à configuração. Aqui estão exemplos usando ambas as abordagens: ### Usando configuração JSON ```json title="opencode.json" {4-14} { "$schema": "https://opencode.ai/config.json", "mode": { "docs": { "prompt": "{file:./prompts/documentation.txt}", "tools": { "write": true, "edit": true, "bash": false, "read": true, "grep": true, "glob": true } } } } ``` ### Usando arquivos markdown Crie arquivos de modo em `.opencode/modes/` para modos específicos do projeto ou `~/.config/opencode/modes/` para modos globais: ```markdown title=".opencode/modes/debug.md" --- temperature: 0.1 tools: bash: true read: true grep: true write: false edit: false --- Você está no modo de depuração. Seu objetivo principal é ajudar a investigar e diagnosticar problemas. Foque em: - Compreender o problema através de uma análise cuidadosa - Usar comandos bash para inspecionar o estado do sistema - Ler arquivos e logs relevantes - Pesquisar padrões e anomalias - Fornecer explicações claras das descobertas Não faça alterações em arquivos. Apenas investigue e relate. ``` ```markdown title="~/.config/opencode/modes/refactor.md" --- model: anthropic/claude-sonnet-4-20250514 temperature: 0.2 tools: edit: true read: true grep: true glob: true --- Você está no modo de refatoração. Foque em melhorar a qualidade do código sem alterar a funcionalidade. Prioridades: - Melhorar a legibilidade e a manutenibilidade do código - Aplicar convenções de nomenclatura consistentes - Reduzir a duplicação de código - Otimizar o desempenho onde apropriado - Garantir que todos os testes continuem passando ``` --- ### Casos de uso Aqui estão alguns casos de uso comuns para diferentes modos. - **Modo Build**: Trabalho de desenvolvimento completo com todas as ferramentas habilitadas - **Modo Plan**: Análise e planejamento sem fazer alterações - **Modo Review**: Revisão de código com acesso somente leitura e ferramentas de documentação - **Modo Debug**: Focado em investigação com ferramentas bash e de leitura habilitadas - **Modo Docs**: Redação de documentação com operações de arquivo, mas sem comandos do sistema Você também pode descobrir que diferentes modelos são bons para diferentes casos de uso.