ManzGPU

Skills e instrucciones

Hype-Generator 3000™: It's a game-changer

Cómo configurar el comportamiento de un agente de IA con instrucciones y reglas en ficheros Markdown.

Introducción

Cuando trabajas con un agente de IA, no solo importa el modelo que uses, sino también cómo le instruyes. Un agente bien configurado puede marcar la diferencia entre respuestas genéricas y resultados precisos, relevantes y adaptados a tu proyecto.

Un agente como opencode ofrece varias capas de personalización que se combinan para construir las instrucciones generales que recibe el modelo. Desde un archivo simple hasta skills reutilizables, cada nivel permite un mayor control sobre el comportamiento del agente.

System prompt

El system prompt es la instrucción base que opencode envía al LLM en cada sesión. Define el comportamiento del agente: qué herramientas tiene disponibles, cómo debe actuar y qué reglas seguir.

El agente construye el system prompt automáticamente combinando:

El system prompt no es editable directamente, pero se puede configurar indirectamente a través de los agentes y las instrucciones que mencionaremos a continuación.

AGENTS.md

AGENTS.md es un archivo markdown que contiene instrucciones personalizadas prioritarias para el LLM. Este archivo puede existir en varios lugares:

El AGENTS.md debe incluir:

Puedes crear un AGENTS.md ejecutando el comando /init desde opencode, que escanea tu proyecto y genera el archivo automáticamente.

Con opencode también puedes cargar automáticamente los archivos Markdown que tengas en el campo instructions de tu fichero de configuración opencode.json, desde múltiples rutas o incluso desde una URL remota:

✅ opencode.json
{
"instructions": [
"CONTRIBUTING.md",
"docs/style-guide.md",
"docs/design/*.md",
"https://raw.githubusercontent.com/org/shared-rules/main/style.md"
]
}

Esto es útil para reutilizar reglas existentes sin duplicarlas, compartir convenciones o cargar instrucciones remotas desde URLs (con timeout de 5 segundos, cuidado con páginas lentas).

Instrucciones adicionales

Una práctica común es crear una carpeta docs/ en el proyecto con ficheros markdown que contengan instrucciones específicas y detalladas. Estos archivos se referencian desde AGENTS.md usando la sintaxis @docs/filename.md para que el agente los lea bajo demanda.

Un ejemplo de estructura podría ser el siguiente:

AGENTS.md Reglas principales del proyecto
docs
arquitectura.md Estructura, patrones de diseño, decisiones técnicas...
testing.md Reglas e información sobre el testing
estilos.md Convenciones de código, naming, formato...
despliegue.md CI/CD, variables de entorno, comandos...

Veamos ahora el contenido de nuestro AGENTS.md:

✅ Referencia en AGENTS.md
# Reglas

- No levantes servidores de desarrollo ni hagas builds salvo que se pida expresamente.
- No elimines ficheros ni carpetas sin confirmación.
- No instales dependencias sin preguntar.
- No realices acciones irreversibles sin confirmación.

## Adicional
Para más contexto sobre cada área, consulta:
- Arquitectura y estructura: @docs/arquitectura.md
- Estrategia de testing: @docs/testing.md
- Guía de estilos: @docs/estilos.md
- Proceso de despliegue: @docs/despliegue.md

Las ventajas de este enfoque:

Skills

Los skills son definiciones reutilizables de comportamiento que el agente puede cargar bajo demanda usando la herramienta skill. A diferencia de las instrucciones anteriores, los skills no se cargan por defecto.

El agente sólo tiene un índice con el título y descripción breve de cada skill, y decide cuándo cargarlos si la tarea está relacionada por su descripción. Esto permite que el agente tenga un comportamiento más flexible y adaptativo, sin sobrecargarlo con información irrelevante.

La estructura de archivos de nuestro proyecto sería la siguiente:

.opencode/skills
javascript-vanilla El nombre de esta carpeta representa el skill
SKILL.md

Los skills también se pueden buscar globalmente en ~/.config/opencode/skills/, o en ~/.agents/skills/, no solo en la carpeta .opencode del proyecto.

Veamos un ejemplo de un skill:

✅ SKILL.md
---
name: git-release
description: Crear versiones y changelogs de forma consistente
---

## Que hacer

- Redactar notas de versión a partir de los PR fusionados
- Proponer un incremento de versión
- Proporcionar un comando `gh release create` listo para copiar y pegar

## Cuando usar

- Úsame cuando estés preparando una versión tag
- Haz preguntas de aclaración si el esquema de versionado no es claro

Los campos name y description del fichero de skills son obligatorios.

Ten mucho cuidado al utilizar usar skills. Hay muchos skills interesantes por Internet que podemos descargar y utilizar para personalizar nuestro agente. Pero como siempre, pueden haber skills que no sean seguros o que tengan instrucciones maliciosas que puedan ser dañinas. Usa solo skills de confianza y que hayan sido revisados.

Resumen

Estas son las 4 capas de personalización que opencode ofrece, de menor a mayor especificidad:

Combinados, estos mecanismos permiten crear agentes altamente personalizados y adaptados a las necesidades de cada proyecto y equipo.