Agentes
Configure e use agentes especializados.
Agentes são assistentes de AI especializados que podem ser configurados para tarefas e fluxos de trabalho específicos. Eles permitem que você crie ferramentas focadas com prompts, modelos e acesso a ferramentas personalizados.
Você pode alternar entre agentes durante uma sessão ou invocá-los com a menção @.
Tipos
Existem dois tipos de agentes no opencode; agentes primários e subagentes.
Agentes primários
Agentes primários são os principais assistentes com os quais você interage diretamente. Você pode alternar entre eles usando a tecla Tab ou sua tecla de atalho configurada switch_agent. Esses agentes lidam com sua conversa principal. O acesso às ferramentas é configurado por meio de permissões — por exemplo, Build tem todas as ferramentas habilitadas, enquanto Plan é restrito.
opencode vem com dois agentes primários integrados, Build e Plan. Vamos ver isso abaixo.
Subagentes
Subagentes são assistentes especializados que agentes primários podem invocar para tarefas específicas. Você também pode invocá-los manualmente mencionando-os com @ em suas mensagens.
opencode vem com dois subagentes integrados, General e Explore. Vamos ver isso abaixo.
Integrado
opencode vem com dois agentes primários integrados e dois subagentes integrados.
Usar build
Modo: primary
Build é o agente primário padrão com todas as ferramentas habilitadas. Este é o agente padrão para trabalho de desenvolvimento onde você precisa de acesso total a operações de arquivo e comandos do sistema.
Usar plan
Modo: primary
Um agente restrito projetado para planejamento e análise. Usamos um sistema de permissões para lhe dar mais controle e evitar alterações não intencionais.
Por padrão, todos os seguintes estão configurados para ask:
file edits: Todas as gravações, patches e ediçõesbash: Todos os comandos bash
Este agente é útil quando você deseja que o LLM analise código, sugira alterações ou crie planos sem fazer modificações reais em seu código.
Usar general
Modo: subagent
Um agente de propósito geral para pesquisar questões complexas e executar tarefas em múltiplas etapas. Tem acesso total às ferramentas (exceto todo), portanto, pode fazer alterações em arquivos quando necessário. Use isso para executar várias unidades de trabalho em paralelo.
Usar explore
Modo: subagent
Um agente rápido e somente leitura para explorar bases de código. Não pode modificar arquivos. Use isso quando você precisar encontrar rapidamente arquivos por padrões, pesquisar código por palavras-chave ou responder perguntas sobre a base de código.
Usar compaction
Modo: primary
Agente de sistema oculto que compacta longos contextos em um resumo menor. Ele é executado automaticamente quando necessário e não é selecionável na interface.
Usar title
Modo: primary
Agente de sistema oculto que gera títulos curtos para sessões. Ele é executado automaticamente e não é selecionável na interface.
Usar summary
Modo: primary
Agente de sistema oculto que cria resumos de sessões. Ele é executado automaticamente e não é selecionável na interface.
Uso
-
Para agentes primários, use a tecla Tab para alternar entre eles durante uma sessão. Você também pode usar sua tecla de atalho configurada
switch_agent. -
Subagentes podem ser invocados:
-
Automaticamente por agentes primários para tarefas especializadas com base em suas descrições.
-
Manualmente mencionando um subagente em sua mensagem. Por exemplo.
@general help me search for this function
-
-
Navegação entre sessões: Quando subagentes criam suas próprias sessões filhas, você pode navegar entre a sessão pai e todas as sessões filhas usando:
- <Leader>+Right (ou sua tecla de atalho configurada
session_child_cycle) para alternar para frente através de pai → child1 → child2 → … → pai - <Leader>+Left (ou sua tecla de atalho configurada
session_child_cycle_reverse) para alternar para trás através de pai ← child1 ← child2 ← … ← pai
Isso permite que você mude perfeitamente entre a conversa principal e o trabalho especializado do subagente.
- <Leader>+Right (ou sua tecla de atalho configurada
Configurar
Você pode personalizar os agentes integrados ou criar os seus próprios através da configuração. Os agentes podem ser configurados de duas maneiras:
JSON
Configure os agentes em seu arquivo de configuração opencode.json:
{ "$schema": "https://opencode.ai/config.json", "agent": { "build": { "mode": "primary", "model": "anthropic/claude-sonnet-4-20250514", "prompt": "{file:./prompts/build.txt}", "tools": { "write": true, "edit": true, "bash": true } }, "plan": { "mode": "primary", "model": "anthropic/claude-haiku-4-20250514", "tools": { "write": false, "edit": false, "bash": false } }, "code-reviewer": { "description": "Reviews code for best practices and potential issues", "mode": "subagent", "model": "anthropic/claude-sonnet-4-20250514", "prompt": "You are a code reviewer. Focus on security, performance, and maintainability.", "tools": { "write": false, "edit": false } } }}Markdown
Você também pode definir agentes usando arquivos markdown. Coloque-os em:
- Global:
~/.config/opencode/agents/ - Por projeto:
.opencode/agents/
---description: Reviews code for quality and best practicesmode: subagentmodel: anthropic/claude-sonnet-4-20250514temperature: 0.1tools: write: false edit: false bash: false---
You are in code review mode. Focus on:
- Code quality and best practices- Potential bugs and edge cases- Performance implications- Security considerations
Provide constructive feedback without making direct changes.O nome do arquivo markdown se torna o nome do agente. Por exemplo, review.md cria um agente review.
Opções
Vamos analisar essas opções de configuração em detalhes.
Descrição
Use a opção description para fornecer uma breve descrição do que o agente faz e quando usá-lo.
{ "agent": { "review": { "description": "Reviews code for best practices and potential issues" } }}Esta é uma opção de configuração obrigatória.
Temperatura
Controle a aleatoriedade e criatividade das respostas do LLM com a configuração temperature.
Valores mais baixos tornam as respostas mais focadas e determinísticas, enquanto valores mais altos aumentam a criatividade e variabilidade.
{ "agent": { "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 gerais
- 0.6-1.0: Respostas mais criativas e variadas, úteis para brainstorming e exploração
{ "agent": { "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; tipicamente 0 para a maioria dos modelos, 0.55 para modelos Qwen.
Máximo de etapas
Controle o número máximo de iterações que um agente pode realizar antes de ser forçado a responder apenas com texto. Isso permite que usuários que desejam controlar custos definam um limite nas ações do agente.
Se isso não for definido, o agente continuará a iterar até que o modelo decida parar ou o usuário interrompa a sessão.
{ "agent": { "quick-thinker": { "description": "Fast reasoning with limited iterations", "prompt": "You are a quick thinker. Solve problems with minimal steps.", "steps": 5 } }}Quando o limite é alcançado, o agente recebe um prompt especial do sistema instruindo-o a responder com um resumo de seu trabalho e tarefas recomendadas restantes.
Desativar
Defina como true para desativar o agente.
{ "agent": { "review": { "disable": true } }}Prompt
Especifique um arquivo de prompt do sistema personalizado para este agente com a configuração prompt. O arquivo de prompt deve conter instruções específicas para o propósito do agente.
{ "agent": { "review": { "prompt": "{file:./prompts/code-review.txt}" } }}Este caminho é relativo ao local 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.
Modelo
Use a configuração model para substituir o modelo para este agente. Ú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.
{ "agent": { "plan": { "model": "anthropic/claude-haiku-4-20250514" } }}O ID do modelo em sua configuração do opencode usa o formato provider/model-id. Por exemplo, se você estiver usando OpenCode Zen, você usaria opencode/gpt-5.1-codex para GPT 5.1 Codex.
Ferramentas
Controle quais ferramentas estão disponíveis neste agente com a configuração tools. Você pode habilitar ou desabilitar ferramentas específicas definindo-as como true ou false.
{ "$schema": "https://opencode.ai/config.json", "tools": { "write": true, "bash": true }, "agent": { "plan": { "tools": { "write": false, "bash": false } } }}Você também pode usar curingas para controlar várias ferramentas ao mesmo tempo. Por exemplo, para desativar todas as ferramentas de um servidor MCP:
{ "$schema": "https://opencode.ai/config.json", "agent": { "readonly": { "tools": { "mymcp_*": false, "write": false, "edit": false } } }}Permissões
Você pode configurar permissões para gerenciar quais ações um agente pode realizar. Atualmente, as permissões para as ferramentas edit, bash e webfetch podem ser configuradas para:
"ask"— Solicitar aprovação antes de executar a ferramenta"allow"— Permitir todas as operações sem aprovação"deny"— Desativar a ferramenta
{ "$schema": "https://opencode.ai/config.json", "permission": { "edit": "deny" }}Você pode substituir essas permissões por agente.
{ "$schema": "https://opencode.ai/config.json", "permission": { "edit": "deny" }, "agent": { "build": { "permission": { "edit": "ask" } } }}Você também pode definir permissões em agentes Markdown.
---description: Code review without editsmode: subagentpermission: edit: deny bash: "*": ask "git diff": allow "git log*": allow "grep *": allow webfetch: deny---
Only analyze code and suggest changes.Você pode definir permissões para comandos bash específicos.
{ "$schema": "https://opencode.ai/config.json", "agent": { "build": { "permission": { "bash": { "git push": "ask", "grep *": "allow" } } } }}Isso pode aceitar um padrão glob.
{ "$schema": "https://opencode.ai/config.json", "agent": { "build": { "permission": { "bash": { "git *": "ask" } } } }}E você também pode usar o curinga * para gerenciar permissões para todos os comandos.
Como a última regra correspondente tem precedência, coloque o curinga * primeiro e regras específicas depois.
{ "$schema": "https://opencode.ai/config.json", "agent": { "build": { "permission": { "bash": { "*": "ask", "git status *": "allow" } } } }}Modo
Controle o modo do agente com a configuração mode. A opção mode é usada para determinar como o agente pode ser usado.
{ "agent": { "review": { "mode": "subagent" } }}A opção mode pode ser definida como primary, subagent ou all. Se nenhum mode for especificado, o padrão é all.
Oculto
Oculte um subagente do menu de autocompletar @ com hidden: true. Útil para subagentes internos que devem ser invocados apenas programaticamente por outros agentes através da ferramenta Task.
{ "agent": { "internal-helper": { "mode": "subagent", "hidden": true } }}Isso afeta apenas a visibilidade do usuário no menu de autocompletar. Agentes ocultos ainda podem ser invocados pelo modelo através da ferramenta Task, se as permissões permitirem.
Permissões de tarefa
Controle quais subagentes um agente pode invocar através da ferramenta Task com permission.task. Usa padrões globais para correspondência flexível.
{ "agent": { "orchestrator": { "mode": "primary", "permission": { "task": { "*": "deny", "orchestrator-*": "allow", "code-reviewer": "ask" } } } }}Quando definido como deny, o subagente é removido da descrição da ferramenta Task completamente, então o modelo não tentará invocá-lo.
Cor
Personalize a aparência visual do agente na interface com a opção color. Isso afeta como o agente aparece na interface.
Use uma cor hex válida (por exemplo, #FF5733) ou cor de tema: primary, secondary, accent, success, warning, error, info.
{ "agent": { "creative": { "color": "#ff6b6b" }, "code-reviewer": { "color": "accent" } }}Top P
Controle a diversidade das respostas com a opção top_p. Alternativa à temperatura para controlar a aleatoriedade.
{ "agent": { "brainstorm": { "top_p": 0.9 } }}Os valores variam de 0.0 a 1.0. Valores mais baixos são mais focados, valores mais altos são mais diversos.
Adicional
Quaisquer outras opções que você especificar em sua configuração de agente serão passadas diretamente para o provedor como opções de modelo. Isso permite que você use recursos e parâmetros específicos do provedor.
Por exemplo, com os modelos de raciocínio da OpenAI, você pode controlar o esforço de raciocínio:
{ "agent": { "deep-thinker": { "description": "Agent that uses high reasoning effort for complex problems", "model": "openai/gpt-5", "reasoningEffort": "high", "textVerbosity": "low" } }}Essas opções adicionais são específicas do modelo e do provedor. Verifique a documentação do seu provedor para parâmetros disponíveis.
Criar agentes
Você pode criar novos agentes usando o seguinte comando:
opencode agent createEste comando interativo irá:
- Perguntar onde salvar o agente; global ou específico do projeto.
- Descrição do que o agente deve fazer.
- Gerar um prompt de sistema apropriado e identificador.
- Permitir que você selecione quais ferramentas o agente pode acessar.
- Finalmente, criar um arquivo markdown com a configuração do agente.
Casos de uso
Aqui estão alguns casos de uso comuns para diferentes agentes.
- Agente Build: Trabalho de desenvolvimento completo com todas as ferramentas habilitadas
- Agente Plan: Análise e planejamento sem fazer alterações
- Agente Review: Revisão de código com acesso somente leitura e ferramentas de documentação
- Agente Debug: Focado em investigação com ferramentas bash e de leitura habilitadas
- Agente Docs: Redação de documentação com operações de arquivo, mas sem comandos do sistema
Exemplos
Aqui estão alguns agentes de exemplo que você pode achar úteis.
Agente de documentação
---description: Writes and maintains project documentationmode: subagenttools: bash: false---
You are a technical writer. Create clear, comprehensive documentation.
Focus on:
- Clear explanations- Proper structure- Code examples- User-friendly languageAuditor de segurança
---description: Performs security audits and identifies vulnerabilitiesmode: subagenttools: write: false edit: false---
You are a security expert. Focus on identifying potential security issues.
Look for:
- Input validation vulnerabilities- Authentication and authorization flaws- Data exposure risks- Dependency vulnerabilities- Configuration security issues