Llevo varios meses dándole caña (cada vez más) a las herramientas de IA que van saliendo para los desarrolladores. La mayoría de ellas son humo básicamente o "wrappers" que llaman a chatGPT/Claude por detrás para hacer "magia".
Pero de vez en cuando salen cosillas bastante interesantes. Una de estas cosillas son las especificaciones para crear agentes propios. La verdad es que ya se empezaba a echar algo en falta de tener un estándar porque cada servicio tiene su propio formato. Por ejemplo Cursor - Claude en relación al contexto: .cursorrules vs .coude. Esto hace que si quieres hacer algo "chulo", tengamos que programar varias veces con lo mismo... y es un coñazo! jeje
AGENT SKILLS
Aquí es donde he descubierto el estándar para la creación de agentes propios dedicados a un propósito. Esto es lo denominado "agent-skills". Y tu dirás, y para que me sirve esto a mí? Pues te lo cuento con un ejemplo!
Actualmente en mi trabajo estamos con un proyecto de migración de Arquitectura Handlers a arquitectura Servicios (Service Layer). Qué implica esto?, principalmente la re-estructuración de gran parte del código y organización de una forma más fácil de gestionar. Esto hace que realmente lógica nueva no hay, si no que básicamente es mover de un sitio a otro el código.
Teniendo esto en cuenta mi propósito era intentar automatizar este proceso para intentar mantener un estándar para que todo quede igual así que me he puesto a construir mi propio agente dedicado a esto para que haga la mayor parte posible.
La creación es bastante sencilla la verdad, básicamente tenemos que definir el agente y una política de accesos para definir cuando la IA puede usar este agente. Entonces:
LA ESPECIFICACIÓN DEL AGENTE
Básicamente es un fichero .md con la definición de tu agente. La ubicación del agente ya depende de cómo quieras organizar tu tus proyectos. En mi caso lo dejo genérico:
Project Claude-compatible: .claude/skills/<name>/SKILL.md
Global Claude-compatible: ~/.claude/skills/<name>/SKILL.mdSobre cómo definir el funcionamiento del agente.... paciencia y iterar, iterar, iterar y más iterar.. La verdad es que no he encontrado ningún patrón para la definición porque después de definir los pasos guiados, en alguna ejecución, la IA empezaba a desvariar... Lo que sí que he notado:
- Necesitas reglas muy muy concretas sobre los pasos
- Definir ejemplos completos y plantillas de código a modo de ejemplo
- Reglas estilo MUST HAVE para "obligar" a siempre ejecutar lo que tu digas
- Repasar la definición X veces contra varios modelos IA para obtener diferentes "opiniones" y ser más estándar contra diferentes modelos
ESPECIFICACIÓN DE PERMISOS
Esta segunda parte es opcional si estás probando pero si quieres montar algo que vas a usar en producción o que usará varias personas, es bueno indicar si lo quieres usar o no.
Básicamente la definición de permisos es un fichero a mayores (JSON, MD, etc..) donde indicas los permisos de cada agente que desarrolles. Tienes 3 opciones de permisos:
- Allow: ejecuta el agente automáticamente
- Ask: pregunta antes de ejecutar
- Deny: nunca ejecutes el agente
{
"permission": {
"skill": {
"*": "ask"
}
}
}
Y no mucho más la verdad. Tengo pendiente de hacer un post sobre trucos o consejos para mejorar el feedback de tus agentes y mejorarlos con el tiempo pero eso es lo que me falta, tiempo! jaja






