Español
Documentación
Modos

Modos

Diferentes modos para diferentes casos de uso.

Precaución: Los modos ahora se configuran a través de la opción agent en la configuración de opencode. La opción mode está obsoleta. Más información.

Los modos en opencode te permiten personalizar el comportamiento, las herramientas y los prompts para diferentes casos de uso.

Viene con dos modos integrados: build y plan. Puedes personalizarlos o configurar los tuyos propios a través de la configuración de opencode.

Puedes cambiar entre modos durante una sesión o configurarlos en tu archivo de configuración.


Integrados

opencode viene con dos modos integrados.

Build

Build es el modo predeterminado con todas las herramientas habilitadas. Este es el modo estándar para trabajo de desarrollo donde necesitas acceso completo a operaciones de archivos y comandos del sistema.

Plan

Un modo restringido diseñado para planificación y análisis. En el modo plan, las siguientes herramientas están deshabilitadas por defecto:

  • write – No puede crear archivos nuevos
  • edit – No puede modificar archivos existentes, excepto archivos ubicados en .opencode/plans/*.md para detallar el plan en sí
  • patch – No puede aplicar parches
  • bash – No puede ejecutar comandos de shell

Este modo es útil cuando quieres que la IA analice código, sugiera cambios o cree planes sin realizar modificaciones reales en tu base de código.


Cambiar

Puedes cambiar entre modos durante una sesión usando la tecla Tab. O tu atajo de teclado configurado switch_mode.

Ver también: Formateadores para información sobre la configuración de formateo de código.


Configurar

Puedes personalizar los modos integrados o crear los tuyos propios a través de la configuración. Los modos se pueden configurar de dos maneras:

Configuración JSON

Configura los modos en tu archivo de configuración opencode.json:

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
      }
    }
  }
}

Configuración Markdown

También puedes definir modos usando archivos markdown. Colócalos en:

  • Global: ~/.config/opencode/modes/
  • Proyecto: .opencode/modes/

~/.config/opencode/modes/review.md

---
model: anthropic/claude-sonnet-4-20250514
temperature: 0.1
tools:
  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.

El nombre del archivo markdown se convierte en el nombre del modo (por ejemplo, review.md crea un modo review).

Veamos estas opciones de configuración en detalle.


Model

Usa la configuración model para anular el modelo predeterminado para este modo. Útil para usar diferentes modelos optimizados para diferentes tareas. Por ejemplo, un modelo más rápido para planificación, un modelo más capaz para implementación.

opencode.json

{
  "mode": {
    "plan": {
      "model": "anthropic/claude-haiku-4-20250514"
    }
  }
}

Temperature

Controla la aleatoriedad y creatividad de las respuestas de la IA con la configuración temperature. Valores más bajos hacen las respuestas más enfocadas y deterministas, mientras que valores más altos aumentan la creatividad y variabilidad.

opencode.json

{
  "mode": {
    "plan": {
      "temperature": 0.1
    },
    "creative": {
      "temperature": 0.8
    }
  }
}

Los valores de temperature típicamente van de 0.0 a 1.0:

  • 0.0-0.2: Respuestas muy enfocadas y deterministas, ideales para análisis de código y planificación
  • 0.3-0.5: Respuestas equilibradas con algo de creatividad, buenas para tareas de desarrollo general
  • 0.6-1.0: Respuestas más creativas y variadas, útiles para lluvia de ideas y exploración

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}"
    }
  }
}

Si no se especifica temperature, opencode usa valores predeterminados específicos del modelo (típicamente 0 para la mayoría de los modelos, 0.55 para modelos Qwen).


Prompt

Especifica un archivo de prompt del sistema personalizado para este modo con la configuración prompt. El archivo de prompt debe contener instrucciones específicas para el propósito del modo.

opencode.json

{
  "mode": {
    "review": {
      "prompt": "{file:./prompts/code-review.txt}"
    }
  }
}

Esta ruta es relativa a donde se encuentra el archivo de configuración. Así que esto funciona tanto para la configuración global de opencode como para la configuración específica del proyecto.


Tools

Controla qué herramientas están disponibles en este modo con la configuración tools. Puedes habilitar o deshabilitar herramientas específicas estableciéndolas en true o false.

{
  "mode": {
    "readonly": {
      "tools": {
        "write": false,
        "edit": false,
        "bash": false,
        "read": true,
        "grep": true,
        "glob": true
      }
    }
  }
}

Si no se especifican herramientas, todas las herramientas están habilitadas por defecto.

Herramientas disponibles

Aquí están todas las herramientas que se pueden controlar a través de la configuración de modo.

HerramientaDescripción
bashEjecutar comandos de shell
editModificar archivos existentes
writeCrear archivos nuevos
readLeer contenido de archivos
grepBuscar en contenido de archivos
globEncontrar archivos por patrón
listListar contenido de directorios
patchAplicar parches a archivos
todowriteGestionar listas de tareas
todoreadLeer listas de tareas
webfetchObtener contenido web

Modos personalizados

Puedes crear tus propios modos personalizados agregándolos a la configuración. Aquí hay ejemplos usando ambos enfoques:

Usando configuración JSON

opencode.json

{
  "$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 archivos markdown

Crea archivos de modo en .opencode/modes/ para modos específicos del proyecto o ~/.config/opencode/modes/ para modos globales:

.opencode/modes/debug.md

---
temperature: 0.1
tools:
  bash: true
  read: true
  grep: true
  write: false
  edit: false
---
 
You are in debug mode. Your primary goal is to help investigate and diagnose issues.
 
Focus on:
- Understanding the problem through careful analysis
- Using bash commands to inspect system state
- Reading relevant files and logs
- Searching for patterns and anomalies
- Providing clear explanations of findings
 
Do not make any changes to files. Only investigate and report.

~/.config/opencode/modes/refactor.md

---
model: anthropic/claude-sonnet-4-20250514
temperature: 0.2
tools:
  edit: true
  read: true
  grep: true
  glob: true
---
 
You are in refactoring mode. Focus on improving code quality without changing functionality.
 
Priorities:
- Improve code readability and maintainability
- Apply consistent naming conventions
- Reduce code duplication
- Optimize performance where appropriate
- Ensure all tests continue to pass

Casos de uso

Aquí hay algunos casos de uso comunes para diferentes modos.

  • Modo Build: Trabajo de desarrollo completo con todas las herramientas habilitadas
  • Modo Plan: Análisis y planificación sin realizar cambios
  • Modo Review: Revisión de código con acceso de solo lectura más herramientas de documentación
  • Modo Debug: Enfocado en investigación con herramientas bash y lectura habilitadas
  • Modo Docs: Escritura de documentación con operaciones de archivos pero sin comandos del sistema

También puedes encontrar que diferentes modelos son mejores para diferentes casos de uso.