Herramientas de OpenCode

Las capacidades principales de OpenCode no solo provienen del modelo en sí, sino también de las herramientas que puede invocarherramientas (Tools)。

La esencia de las herramientas: hacer que el LLM pase de hablar a hacer cosas.

Tools = capacidad de ejecución de OpenCode, y permisos = frontera de seguridad.


1. ¿Qué son las herramientas (Tools)?

Las herramientas son interfaces de capacidad del LLM para realizar operaciones en el proyecto, por ejemplo:

  • Leer código
  • Modificar archivos
  • Ejecutar comandos
  • Buscar código
  • Acceder a la red

Sin herramientas: solo puede generar código

Con herramientas: puedeOperar directamente sobre el proyecto


2. Control de permisos de herramientas (lo más importante)

Por defecto:

  • Todas las herramientas están habilitadas
  • y pueden ejecutarse sin confirmación

¡En producción es obligatorio configurar permisos!

1、Configuración básica de permisos

{
  "$schema": "https://opencode.ai/config.json",
  "permission": {
    "edit": "deny",
    "bash": "ask",
    "webfetch": "allow"
  }
}
Valor de permiso Descripción
allow Permitir ejecución directa
deny Prohibir por completo
ask Requiere confirmación humana antes de ejecutar

2、Control con comodines

Se pueden controlar herramientas en lote:

{
  "permission": {
    "mymcp_*": "ask"
  }
}

Todas las herramientas provenientes de MCP requieren aprobación


<<<SEP>>> 3. Explicación detallada de las herramientas integradas

OpenCode incluye un conjunto completo de herramientas de nivel de ingeniería:

1、bash (ejecución de comandos)

{
  "permission": {
    "bash": "allow"
  }
}

Función:

  • Ejecutar comandos de shell
  • como npm install, git status

Riesgo:Alto (se recomienda configurarlo como ask)

2、edit (herramienta principal)

{
  "permission": {
    "edit": "allow"
  }
}

Función:

  • Modificar archivos existentes
  • Basado en reemplazo de texto exacto

Nota:Esta es la capacidad principal de la IA para modificar código

3、write (creación de archivos)

Función:

  • Crear nuevos archivos
  • Sobrescribir archivos existentes

Atención:

write está controlado por el permiso de edit

4、read (lectura de archivos)

{
  "permission": {
    "read": "allow"
  }
}

Función:

  • Leer archivos de código
  • Admite lectura línea por línea

Riesgo:Bajo (se recomienda always allow)

5、grep (búsqueda de contenido)

{
  "permission": {
    "grep": "allow"
  }
}

Función:

  • Buscar código con expresiones regulares

6、glob (coincidencia de archivos)

Función:

  • Buscar rutas de archivos (por ejemplo, src/**/*.ts)

7、list (exploración de directorios)

Función:

  • Listar la estructura de directorios

8、patch (aplicación de parches)

Función:

  • Aplicar parches diff

Nota:Controlado por el permiso de edit

9、lsp (experimental)

Función:

  • Análisis inteligente de código (ir a definición, consultar referencias)

Forma de habilitación:

OPENCODE_EXPERIMENTAL_LSP_TOOL=true

10、skill (carga de habilidades)

Función:

  • Cargar SKILL.md
  • Mejorar el comportamiento de la IA

11、todowrite (gestión de tareas)

Función:

  • Mantener la lista de tareas
  • Seguir flujos complejos

12、webfetch (lectura de páginas web)

Función:

  • Obtener el contenido de una URL específica

13、websearch (búsqueda en línea)

Forma de habilitación:

OPENCODE_ENABLE_EXA=1 opencode

Función:

  • Buscar información en internet

Diferencia:

  • websearch: buscar información (descubrimiento)
  • webfetch: leer contenido (obtención)

14、question (preguntas interactivas)

Función:

  • Hacer preguntas al usuario
  • Recopilar requisitos

Adecuado para:

  • Requisitos poco claros
  • Decisiones que requieren del usuario

4. Herramientas personalizadas

Puedes definir tus propias herramientas para que la IA ejecute lógica personalizada.

Por ejemplo:

  • Llamar a API internas
  • Operar bases de datos
  • Ejecutar lógica de negocio

Esencia:Hacer que el LLM invoque funciones


5. Servidores MCP (capacidades avanzadas)

MCP (Model Context Protocol) te permite conectar sistemas externos:

  • Bases de datos
  • API de terceros
  • Servicios internos

Equivale a conectar "capacidades externas" a la IA


6. Mecanismo subyacente (importante)

OpenCode utiliza ripgrep como motor de búsqueda:

  • Respeta el .gitignore
  • Ignora por defecto directorios como node_modules

Cómo anular las reglas de ignorado

Crear archivo:

.ignore

Ejemplo:

!node_modules/
!dist/
!build/

Forzar la inclusión de estos directorios


7. Mejores prácticas (muy recomendado)

  • read / grep / glob → allow
  • edit → ask (etapa de desarrollo)
  • bash → ask (entorno de producción)
  • webfetch → allow

Principios clave:

  • La lectura se puede liberar
  • La modificación debe controlarse
  • La ejecución de comandos debe hacerse con precaución
Otras extensiones