Buenas prácticas para crear Skills de agentes

Skills - Como escrirlos correctamente

Esta guía explica cómo escribir skills de nivel profesional para agentes, validarlas con LLMs y mantener una ventana de contexto ligera.

Se trata de un conjunto concentrado de buenas prácticas para crear skills de agentes. Si buscas la documentación completa, consulta la documentación de Claude.

Estructura de una skill

Toda skill debe seguir esta estructura de directorios:

Plaintext

nombre-de-la-skill/
├── SKILL.md              # Obligatorio: Metadatos e instrucciones principales (<500 líneas)
├── scripts/              # Código ejecutable (Python/Bash) diseñado como mini CLIs
├── references/           # Contexto complementario (esquemas, hojas de referencia)
└── assets/               # Plantillas o archivos estáticos para la salida

Optimiza el frontmatter para que sea fácil de encontrar

Los campos name y description en el frontmatter de tu SKILL.md son lo único que el agente ve antes de activar una skill. Si no están optimizados para ser detectables y lo bastante específicos, tu skill será invisible.

Revelación progresiva y gestión de recursos

Mantén la ventana de contexto limpia cargando información solo cuando haga falta. SKILL.md es el "cerebro" para la lógica de alto nivel; delega los detalles a subdirectorios.

Las skills son para agentes, no para humanos. Para mantener la ventana de contexto ligera y evitar un consumo innecesario de tokens, no crees:

Usa instrucciones procedimentales específicas en lugar de prosa

Escribe instrucciones para LLMs, no para humanos.

Sé específico y consistente en la forma en que referencias conceptos en tus archivos de skill.

Incluye scripts deterministas para operaciones repetitivas

No le pidas al LLM que escriba lógica compleja de parsing o código boilerplate desde cero cada vez que ejecuta una skill.

Guía de validación

Dado que los LLMs van a usar tus skills, la mejor forma que he identificado para asegurar su utilidad es colaborando con LLMs.

Es fundamental contar con evaluaciones para tus skills que confirmen que los cambios que haces tienen un impacto positivo y no provocan regresiones. Un benchmark popular para skills es SkillsBench, que puede servir de inspiración.

Una vez que tengas el borrador inicial de tus skills, puedes validar tu trabajo siguiendo estos pasos:

Validación de detección

Los agentes cargan skills basándose exclusivamente en el frontmatter YAML. Prueba cómo un LLM interpreta tu descripción de forma aislada para evitar activaciones falsas (como dispararse para una app React cuando está pensada para Angular).

Pega exactamente el siguiente texto en un chat nuevo con un LLM:

Estoy creando una Skill de Agente basada en la especificación de agentskills.io. Los agentes decidirán si cargar esta skill basándose enteramente en los metadatos YAML de abajo.

name: angular-vite-migrator
description: Migrates Angular CLI projects from Webpack to Vite and esbuild. Use when the user wants to update builder configurations, replace webpack plugins with rollup equivalents, or speed up Angular compilation.

Basándote estrictamente en esta descripción:

  1. Genera 3 prompts realistas de usuario que estés 100% seguro de que deberían activar esta skill.
  2. Genera 3 prompts de usuario que suenen parecido pero que NO deberían activarla (por ejemplo, migrar una app React a Vite, o simplemente actualizar versiones de Angular).
  3. Critica la descripción: ¿Es demasiado amplia? Sugiere una reescritura optimizada.

Además, envía a los agentes tareas que esperas que activen la lectura de una skill e inspecciona el proceso de razonamiento. Ve y viene con el agente para identificar por qué eligió (o no) determinadas skills.

Validación de lógica

Asegúrate de que tus instrucciones paso a paso sean deterministas y no obliguen al agente a alucinar pasos que faltan.

Pásale al LLM tu SKILL.md completo y la estructura de directorios:

Aquí está el borrador completo de mi SKILL.md y el árbol de directorios con sus archivos de soporte.

├── SKILL.md
├── scripts/esbuild-optimizer.mjs
└── assets/vite.config.template.ts

[Pega aquí el contenido de tu SKILL.md] Actúa como un agente autónomo que acaba de activar esta skill. Simula tu ejecución paso a paso a partir de una solicitud para "Migrar mi app Angular v17 a Vite".

Para cada paso, escribe tu monólogo interno:

  1. ¿Qué estás haciendo exactamente?
  2. ¿Qué archivo o script específico estás leyendo o ejecutando?
  3. Señala cualquier bloqueo de ejecución: indica la línea exacta donde te ves obligado a adivinar o alucinar porque mis instrucciones son ambiguas (por ejemplo, cómo mapear los archivos de entorno de Angular a import.meta.env de Vite).

Pruebas de casos límite

Obliga al LLM a buscar vulnerabilidades, configuraciones no soportadas y estados de fallo inherentes a las herramientas web.

Pídele al LLM que ataque tu lógica:

Ahora cambia de rol. Actúa como un tester QA implacable. Tu objetivo es romper esta skill. Hazme de 3 a 5 preguntas muy específicas y desafiantes sobre casos límite, estados de fallo o fallbacks que faltan en el SKILL.md. Enfócate en:

  • ¿Qué pasa si scripts/esbuild-optimizer.mjs falla por una dependencia legacy en CommonJS?
  • ¿Qué pasa si el angular.json del usuario tiene builders de Webpack muy personalizados (@angular-builders/custom-webpack) que Vite no soporta?
  • ¿Hay suposiciones implícitas que hice sobre el entorno de Node del usuario?

No corrijas estos problemas todavía. Solo hazme las preguntas numeradas y espera a que las responda.

Refinamiento de arquitectura

Los LLMs suelen intentar meter archivos de configuración grandes directamente en el prompt principal. Usa este paso para aplicar la revelación progresiva y reducir el consumo de tokens.

Haz que el LLM aplique tus correcciones y reestructure la skill:

Basándote en mis respuestas a tus preguntas sobre casos límite, reescribe el archivo SKILL.md aplicando estrictamente el patrón de diseño de revelación progresiva:

  1. Mantén el SKILL.md principal estrictamente como un conjunto de pasos de alto nivel usando comandos imperativos en tercera persona (por ejemplo, "Ejecutar el script de esbuild", "Leer la plantilla de configuración de Vite").
  2. Si hay reglas densas, plantillas extensas de vite.config.ts o esquemas complejos de angular.json actualmente en el archivo, elimínalos. Indícame que cree un nuevo archivo en references/ o assets/, y reemplaza el texto en SKILL.md con una instrucción estricta para leer ese archivo específico solo cuando sea necesario.
  3. Añade una sección dedicada de manejo de errores al final que incorpore mis respuestas sobre los fallbacks de Webpack y la resolución de CommonJS.

Revision #1
Created 2026-02-26 07:30:43 UTC by Abkrim
Updated 2026-02-26 07:33:39 UTC by Abkrim