Cómo crear skills de agente: Mejores prácticas y validaciones

best-practices-agent-skills

Best Practices for Creating Agent Skills: Terminología Precisa, Scripts Deterministas y Validación Rigurosa

Tiempo estimado de lectura: 6 min

  • Ideas clave:
  • Diseña skills con terminología única por concepto para evitar ambigüedad y mejorar el descubrimiento.
  • Externaliza parseos frágiles a CLIs deterministas que emitan JSON en stdout y errores humanos en stderr.
  • Usa SKILL.md como orquestador conciso y assets/references para contenido pesado; aplica Progressive Disclosure.
  • Valida metadata, lógica y edge cases con LLMs antes de publicar.

La frase “Best Practices for Creating Agent Skills” no es un titular elegante: es una exigencia operativa. Si quieres que tus agentes hagan trabajo real —no demos bonitas— debes diseñar skills que sean predecibles, detectables y comprobables por otros LLMs. Aquí tienes el marco concreto para hacerlo.

¿Por qué importa esto? Porque un agente solo carga una skill si su metadata lo dice con claridad. Porque los LLMs no compilan, razonan por patrones. Y porque el mayor coste en producción no es el desarrollo inicial: es el tiempo que pasas corrigiendo alucinaciones y errores intermitentes.

Resumen rápido (lectores con prisa)

Diseña skills con terminología única y metadata precisa; externaliza parseos frágiles a CLIs que emitan JSON en stdout y errores humanos en stderr; usa SKILL.md como orquestador y carga assets/references solo cuando sea necesario. Valida metadata, lógica y edge cases con LLMs antes de publicar.

Best Practices for Creating Agent Skills — Principios fundamentales

1. Un término = un concepto

  • Selecciona una terminología única por concepto y úsala siempre.
  • Ejemplo: en Angular usa “template” —nunca “HTML” ni “view”.
  • Beneficio: reduces ambigüedad semántica y mejoras el routing de la skill.

2. Metadata optimizada para descubrimiento

  • name: 1–64 chars, minúsculas, números y guiones, debe coincidir EXACTAMENTE con el nombre del directorio.
  • description: 1.024 chars max, redactada en tercera persona e incluye “negative triggers” (qué NO debe hacer la skill).
  • Resultado: el agente decide cargar o no la skill con confianza, sin falsos positivos.

3. SKILL.md como orquestador, no como libro

  • Mantén SKILL.md <500 líneas.
  • Contenido: pasos de alto nivel, decisiones condicionales y rutas relativas a referencias concretas.
  • No pongas plantillas pesadas ni reglas densas; apunta a assets/ o references/ y di “Leer X cuando proceda”.

4. Progressive Disclosure (Just-in-Time loading)

  • No cargues todo el contexto al inicio.
  • Indica explícitamente cuándo el agente debe leer archivos en references/ o assets/.
  • Ejemplo de instrucción: “Si detectas error 401, abrir references/auth-flow.md”.

Best Practices for Creating Agent Skills — Ejecución determinista

1. Scripts deterministas en scripts/

  • Mueve parseos complejos y tareas frágiles a scripts/ (Python/Bash/Node).
  • Los scripts deben ser CLIs pequeños, con salida JSON consistente en stdout y errores humanos en stderr.
  • Nunca pidas al LLM que genere parseadores complejos cada ejecución.

2. Diseño de salida: stdout y stderr accionables

  • stdout: resultados parseables (JSON).
  • stderr: errores descriptivos, orientación de corrección y códigos únicos.
  • Ejemplo (stderr): “CRITICAL: package.json missing ‘build’ script. Run ‘npm set-script build \”ng build\”‘ or abort.”
  • Con esto, el agente puede decidir: reintentar, aplicar fix automatizado o pedir intervención humana.

3. Plantillas en assets/

  • Pon schemas y templates JSON/TS en assets/.
  • Instruye al agente a copiar la estructura y rellenar campos; evita describir la plantilla en palabras.

Best Practices for Creating Agent Skills — Validación con LLMs

1. Discovery Validation

  • Testea la metadata en un LLM limpio: pide 3 prompts que sí deberían activar la skill y 3 que no.
  • Si el modelo duda, reescribe la descripción hasta que haya cero ambigüedad.

2. Logic Validation

  • Dale al LLM tu SKILL.md y estructura de archivos; pídele simular una ejecución paso a paso con monólogo interno.
  • Resultado esperado: cada paso referencia archivos concretos y no contiene “tengo que adivinar”.

3. Edge Case Testing (Red Team)

  • Pide al LLM actuar como QA agresivo y formular 3–5 preguntas que busquen romper la skill (versiones de Node, custom builders, filesystems case-insensitive, etc.).
  • Resuelve estos casos con scripts y referencias antes de publicar.

Patrones y anti-patrones prácticos

  • Anti-patrón: incluir README largos y guías de instalación en cada skill. El agente no los usará.
  • Patrón: flat directory (references/foo.md, assets/bar.json) — un nivel profundo solo.
  • Anti-patrón: pedir al LLM que “mapee automáticamente” configuraciones Webpack complejas.
  • Patrón: detectar programáticamente la presencia de custom builders y forzar auditoría manual (scripts deben reportarlo claramente).

Checklist para publicar una skill

  • [ ] name y description optimizados y con negative triggers.
  • [ ] SKILL.md <500 líneas, pasos numerados en imperativo tercera persona.
  • [ ] scripts/ con CLIs deterministas y mensajes stderr accionables.
  • [ ] assets/ y references/ planos, indicados por ruta relativa en SKILL.md.
  • [ ] Tests: Discovery, Logic y Edge Case pasados por LLMs.

Conclusión

Construir skills es ingeniería, no copywriting. La disciplina en terminología, la obligatoriedad de scripts deterministas y la validación colaborativa con LLMs transforman una función bonita en una herramienta fiable. Hazlo bien: tus agentes dejarán de “fallar de forma creativa” y pasarán a resolver trabajo real. Hazlo mal: perderás tiempo parado en debugging y explicando por qué la IA tomó decisiones erróneas.

Aplica estas Best Practices for Creating Agent Skills y evita que tus agentes vuelvan a ser promesas incumplidas.

Si trabajas con automatización, agentes o workflows y buscas recursos prácticos para aplicar estas prácticas, considera explorar Dominicode Labs como continuación lógica para pruebas y experimentos. Encontrarás plantillas y ejemplos orientados a integración con pipelines de validación.

FAQ

¿Qué debe incluir la metadata de una skill?

La metadata debe incluir un name (1–64 chars, minúsculas, números y guiones) que coincida exactamente con el nombre del directorio, y una description (hasta 1.024 chars) redactada en tercera persona que incluya “negative triggers” indicando lo que la skill no debe hacer.

¿Por qué usar CLIs en scripts/ en vez de pedir al LLM que parseé?

Porque los CLIs producen salidas deterministas y repetibles (JSON en stdout, errores humanos en stderr). Evitan la variabilidad de respuestas generadas por LLMs y facilitan decisiones automatizadas del agente.

¿Qué es SKILL.md y cómo debe estructurarse?

SKILL.md es el orquestador de la skill: debe ser conciso (<500 líneas), con pasos de alto nivel, decisiones condicionales y rutas relativas a archivos en assets/ o references/. No debe incluir plantillas pesadas ni documentación completa.

¿Cuál es el propósito de Progressive Disclosure?

Evitar cargar todo el contexto al inicio. Indica explícitamente cuándo leer archivos adicionales para reducir costos y mejorar rendimiento; por ejemplo, instruir a abrir references/auth-flow.md solo si se detecta un error 401.

¿Cómo validar que la skill será detectada correctamente?

Realiza Discovery Validation con un LLM limpio: proporciona 3 prompts que deberían activar la skill y 3 que no. Si el modelo duda, reescribe la descripción hasta eliminar ambigüedades.

¿Qué deben contener los mensajes en stderr?

Mensajes humanos y accionables: descripción del error, orientación de corrección y códigos únicos (por ejemplo, “CRITICAL: package.json missing ‘build’ script. Run ‘npm set-script build \”ng build\”‘ or abort.”) para que el agente pueda decidir reintentos o intervenciones.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *