00:00:00Al trabajar con Cloud Code, Codex o cualquier otra herramienta de ingeniería basada en agentes, algo muy importante
00:00:05que todas estas herramientas admiten, y que deberías entender y utilizar, es el concepto de
00:00:12habilidades del agente (agent skills). Es fácil ignorarlas porque solo son un montón de archivos Markdown o porque
00:00:18configurarlas puede ser tedioso, pero en mi experiencia vale la pena. Hace un par de días,
00:00:24alguien del equipo de Cloud Code, es decir, de Anthropic, publicó un post donde compartía los
00:00:31diferentes tipos de habilidades que usan internamente, ya que, de hecho, se pueden distinguir
00:00:37entre varios tipos de habilidades que puedes crear. Al final, todas son solo archivos Markdown,
00:00:42aunque puedes añadir algo más, ya volveré a eso; pero, por supuesto, el contenido de ese Markdown puede ser
00:00:49muy diferente. Ahora bien, esta imagen y todo este post pueden resultar abrumadores y pueden llevarte
00:00:56a no hacer nada porque sientes que, si tienes que pasar una semana configurando habilidades, prefieres
00:01:02no usarlas en absoluto. Por eso, en este video quiero ofrecerte una alternativa a eso. Creo que
00:01:08puedes centrarte simplemente en tres tipos principales de habilidades que te darán mejores
00:01:15resultados. Por cierto, como mencioné, todas estas herramientas admiten habilidades; en mis cursos explico
00:01:20cómo configurarlas, invocarlas activamente y cómo crearlas para Cloud Code y Codex. Y si
00:01:26quieres acceder a esos cursos o a todos mis cursos actuales y futuros, ahora mismo
00:01:31tengo una promoción para la membresía anual que te da acceso completo a todo mi contenido
00:01:35mientras mantengas la suscripción, a un precio bajísimo; dejo el enlace abajo. Volviendo a las
00:01:41habilidades, son solo archivos Markdown guardados en una ubicación especial; el
00:01:46lugar exacto depende de la herramienta, pero en esencia sirven para plantillas de prompts o
00:01:52fragmentos extra de contexto que pueden inyectarse en tus sesiones de ingeniería con agentes. El
00:02:01primer tipo de habilidad es la de documentación o conocimiento. ¿A qué me refiero con esto?
00:02:09Aquí estoy en el proyecto de mi sitio web academy.com, y tengo varias
00:02:15habilidades de agente que son básicamente tipos de documentación o conocimientos que expongo al agente de IA.
00:02:25Por ejemplo, algunos conocimientos de TypeScript, información sobre funciones avanzadas de
00:02:33TypeScript, quizás características nuevas como la palabra clave "satisfies", que no lleva
00:02:40diez años con nosotros; cosas que quiero que el agente de IA tenga en cuenta o que se le recuerden porque
00:02:50puede que no sea lo primero que utilice, ya que quizás no vio tanto de eso en sus datos
00:02:58de entrenamiento. Así que esto es realmente algo que podrías encontrar en la documentación oficial de TypeScript. Lo
00:03:04que pasa es que, a menos que se lo digas explícitamente, es muy probable que el agente no vaya a esa
00:03:11documentación oficial; no irá a la de TypeScript por su cuenta, así que prefiero tener mi propia habilidad. Y
00:03:17esta habilidad tiene metadatos. Los metadatos son importantes porque la idea tras las habilidades es que
00:03:24no todas las habilidades disponibles se cargan en la ventana de contexto cada vez; en su lugar,
00:03:30solo se cargan los metadatos y entonces el agente de IA puede decidir qué habilidad quiere
00:03:37leer más a fondo según tu prompt y las tareas que le diste. También puedes invocar habilidades activamente
00:03:43dependiendo de la herramienta, pero la idea principal es que el agente las cargue por su cuenta
00:03:47basándose en esos metadatos. Aquí tengo metadatos con los que intento darle al agente una idea
00:03:55de cuándo usar esta habilidad y, por tanto, ese es un tipo de habilidad: proporcionar
00:04:02documentación o conocimientos adicionales que el agente tal vez no tenga, quizás porque trabajas con una librería
00:04:08que no estaba en los datos de entrenamiento por ser nueva, o porque sabes que no ha visto mucho
00:04:13al respecto y quieres que lo sepa; ese es el primer tipo de habilidad.
00:04:18El segundo tipo de habilidad se refiere a comportamientos, mejores prácticas, enfoques y cosas así. Aquí la idea
00:04:29es que, obviamente, cuando trabajas en un proyecto puedes tener ciertas preferencias sobre el
00:04:37estilo de código o sobre cómo deben hacerse las cosas. Por ejemplo, tengo esta habilidad de
00:04:45código React limpio y moderno, que no trata tanto de documentar funciones de React, sino de
00:04:50establecer reglas que el agente debe seguir al escribir código React para asegurar que ciertos
00:04:59antipatrones sean menos comunes. Al menos para mí, actualmente los agentes de IA tienden a generar
00:05:08código que no siempre es de la máxima calidad; podrías cuestionar si la calidad del código
00:05:13importa en absoluto. Creé un video aparte en otro canal sobre eso. Yo diría que
00:05:18sí importa, porque la calidad es clave para poder revisar el código. Puede tener implicaciones
00:05:23en el rendimiento y en lo fácil que sea de mantener o extender; así que sí importa. Y
00:05:29si tienes ciertos comportamientos o patrones que quieres que el agente use, entonces una
00:05:36habilidad conductual donde le indiques cómo escribir buen código React, qué debe intentar evitar
00:05:43como el uso de "useEffect" y cómo evitarlo, ese tipo de habilidad puede ser interesante. Aquí se trata menos de
00:05:50aportar documentación extra y más de instruir comportamientos. Ahora, lo
00:05:55interesante de esta habilidad es que aquí tengo archivos relacionados, con un archivo con más detalles
00:06:02sobre "useEffect", porque todos estos archivos de habilidades se cargan de forma diferida (lazy), como ya dije, y puedes
00:06:09referenciar otro archivo dentro de un archivo de habilidad, como este "useEffect.md" en la carpeta de referencias,
00:06:15y así la IA puede decidir cargar ese archivo solo cuando sepa que está trabajando con "useEffect"
00:06:21o haciendo algo relacionado. Así que ahí tengo más detalles sobre antipatrones que
00:06:27debe conocer; configurar este tipo de habilidades puede valer mucho la pena porque,
00:06:33por supuesto, puedo copiar eso en cualquier proyecto de React sin tener que reescribirlo todo el tiempo, y
00:06:39puede mejorar el código allí. Ese es el segundo tipo de habilidad que recomiendo; y no tienes
00:06:45que pensar en todos los patrones posibles de antemano, simplemente actúa paso a paso: si
00:06:52ves que en tu proyecto el agente de IA hace constantemente algo que no quieres,
00:06:58añade una habilidad pensando en una buena descripción que aumente las posibilidades de que se cargue
00:07:04en el momento adecuado e incluye tus instrucciones allí. Úsala para arreglar cosas y, con el tiempo,
00:07:11construirás una biblioteca de habilidades con tus mejores prácticas y los comportamientos que quieras imponer,
00:07:17pudiendo usarlas en futuros proyectos; no lo veas como una tarea inicial enorme e
00:07:22intimidante, sino construye esa base paso a paso. Ahora, el tercer tipo de habilidad, que
00:07:29es diferente, son las habilidades impulsadas por funcionalidad. Hasta ahora hablamos de documentación
00:07:37y de imponer comportamientos específicos. Pero estas herramientas de ingeniería como Cloud Code o Codex
00:07:43pueden hacer de todo; pueden escribir código, obviamente, pero no estás limitado solo a eso
00:07:49en los proyectos. Como pueden escribir código, pueden hacer cualquier cosa en tu ordenador si quieres;
00:07:55puedes usarlas para analizar documentos PDF, por ejemplo. Yo tengo algunas habilidades globales en mi sistema que
00:08:03no son exclusivas de programación; algunas sí, pero no todas. Podrías configurar una habilidad que le diga
00:08:09al agente cómo generar una imagen. ¿Qué quiero decir con esto? Bueno, existen
00:08:16varios servicios o APIs que puedes usar para generar imágenes o videos con IA, como Fal AI (este no
00:08:24es un video patrocinado, por cierto); también está Replicate y otros servicios. Por supuesto,
00:08:29si quieres generar una imagen, digamos para un proyecto donde necesitas una imagen de prueba en tu web o
00:08:34para algo totalmente distinto que quieras imprimir y colgar, puedes usar estos
00:08:41servicios. Y podrías usar Codex, Cloud Code o Pye Agent (que me gusta mucho) y pedirle que genere
00:08:49una imagen por ti. Por defecto, lo más probable es que falle porque estas herramientas
00:08:54no tienen capacidad de generación de imágenes integrada. Pero si les das la habilidad adecuada, que sigue siendo
00:09:00solo un archivo Markdown, allí puedes describir cómo interactuar con una API de
00:09:06terceros para generar esa imagen. Describir la interacción sería una forma, pero puedes
00:09:12ir un paso más allá: tus habilidades también pueden incluir scripts. No todas los necesitan, pero aquí mi
00:09:18habilidad de generar imágenes sí. Este script, para ser honesto, fue escrito por IA mediante "vibe coding"
00:09:26y contiene scripts que interactúan con la API de Fal, el servicio de generación de imágenes.
00:09:34Básicamente tomé su documentación, la puse en un prompt y le dije a un agente de IA que me escribiera
00:09:40una herramienta capaz de utilizar o hablar con esa API de Fal para generar imágenes. Así se creó
00:09:49una pequeña herramienta de CLI, un script que se comunica con la API y genera imágenes con diferentes
00:09:56parámetros y demás. Y luego, el archivo skill.md simplemente explica cómo usar ese script;
00:10:02lo señala e indica al agente cómo ejecutarlo, qué parámetros pasar, etc.
00:10:08Luego tengo el archivo .env con mi clave de Fal, y cuando el script se invoca a través de Bun (que es
00:10:18lo que le indico a la IA en el archivo Markdown), el .env se cargará automáticamente. Así no
00:10:23tengo que dar acceso a mi clave al agente; no tengo que decirle "genera una imagen y, por cierto,
00:10:29aquí tienes la clave". En lugar de eso, solo le digo que genere la imagen y él,
00:10:34gracias a la descripción, cargará la habilidad cuando deba y aprenderá que solo necesita ejecutar
00:10:39un script sin preocuparse por los detalles de implementación. Ese es otro tipo de
00:10:45habilidad que me parece interesante, y no solo relacionada con la programación. Podrías tener un
00:10:52script que formatee el código o cualquier otra cosa. En general,
00:10:57puedes usar estos agentes para mucho más que solo generar código y, por lo tanto, esta
00:11:02es definitivamente otra categoría de habilidades a tener en cuenta. Pero bueno, en resumen, diría que no lo
00:11:08compliques demasiado, pero tampoco lo ignores; construye tu biblioteca de habilidades paso a paso. Cabe destacar
00:11:14que existen registros de habilidades como skills.sh donde puedes explorar habilidades creadas por otros.
00:11:21Solo dos notas importantes: esto puede ser útil, pero lo que yo no haría es decir: "Vale, voy a hacer
00:11:29un proyecto de React con Tailwind y Better Auth y no sé qué más, así que buscaré todas las habilidades
00:11:35que podrían ser interesantes e instalaré todas en mi proyecto". Eso podría ser
00:11:40contraproducente porque estás cargando más y más metadatos en tu ventana de contexto y
00:11:47algunas de esas habilidades simplemente no importarán. Eso es algo a tener en cuenta; no intentaría
00:11:53añadir siempre todas las habilidades posibles, sino que deberías ser selectivo y centrarte en
00:11:57lo que la IA falla constantemente o donde sepas que se necesitará documentación extra.
00:12:04Esa es una cosa, y lo otro sobre estos registros es que, por supuesto, estás
00:12:09incluyendo habilidades escritas por otros. Estas habilidades, como vimos, son solo prompts. Si
00:12:16hay algo malicioso en uno de esos prompts, podría ser un problema; podría llevar a un
00:12:22ataque de inyección de prompts y debes ser consciente de ello. Algunos registros como skills.sh,
00:12:28según tengo entendido, realizan algún tipo de escaneo para reducir el riesgo, pero nunca estás seguro
00:12:36al 100 %. Por eso, cuando uses una habilidad escrita por
00:12:40alguien más, léela; está ahí para que la revises y veas si contiene algo
00:12:47malicioso. Es solo una advertencia. Pero aparte de eso, usa habilidades; no sientas que
00:12:54necesitas construir un sistema supercomplejo desde el principio. Juega con ellas y mantén estos
00:13:00tres tipos básicos de habilidades en mente.