Creando mi primer agent skill de IA

Enviado por christian el

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.md

Sobre 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

Dinahosting: dominios y alojamiento web
My investor

Regístrate en MyInvestory tendrás un extra de 20€ ! :D

 

Menciona que vienes de mi parte y te llevas un regalo en tu primera inversión :)

Usa el código U048395 y te llevas un regalo en tu primera inversión :)

 

Usa el código 22c80f y te llevas un regalo en tu primera inversión :)