Cómo usar las habilidades de agentes de IA (con Gemini CLI y Agent Skills para Firebase)

1. Introducción

Foto de portada del lab de Habilidades de agentes

En este lab, aprenderás a crear habilidades de agente para proporcionar a los LLM acceso a conocimientos y flujos de trabajo personalizados. La crearás como una habilidad local a la que se puede acceder desde Gemini CLI.

Actividades

  • Crea tus propias habilidades de agente para tus cosas favoritas.
  • Usa Gemini CLI para consultar tu skill.
  • Instala habilidades de agentes oficiales para Firebase y úsalas para compilar e implementar una app.

Qué aprenderás

  • Cómo estructurar una habilidad
  • Cómo escribir un archivo SKILL.md
  • Cómo usar habilidades locales con Gemini CLI

2. Configuración del proyecto

  1. Si aún no tienes una Cuenta de Google, debes crear una.
    • Usar una cuenta personal en lugar de una cuenta laboral o educativa Es posible que las cuentas laborales y educativas tengan restricciones que te impidan habilitar las APIs necesarias para este lab.
  2. Accede a la consola de Google Cloud.
  3. Habilita la facturación en la consola de Cloud.
    • Completar este lab debería costar menos de USD 1 en recursos de Cloud.
    • Puedes seguir los pasos al final de este lab para borrar recursos y evitar cargos adicionales.
    • Los usuarios nuevos pueden acceder a la prueba gratuita de USD 300.
  4. Crea un proyecto nuevo o elige reutilizar uno existente.
    • Si ves un error sobre la cuota del proyecto, reutiliza un proyecto existente o bórralo para crear uno nuevo.

3. Abre el editor de Cloud Shell

  1. Haz clic en este vínculo para navegar directamente al editor de Cloud Shell.
  2. Si se te solicita autorización en algún momento, haz clic en Autorizar para continuar. Haz clic para autorizar Cloud Shell
  3. Si la terminal no aparece en la parte inferior de la pantalla, ábrela:
    • Haz clic en Ver.
    • Haz clic en Terminal.Abre una terminal nueva en el editor de Cloud Shell
  4. En la terminal, configura tu proyecto con este comando:
    • Formato:
      gcloud config set project [PROJECT_ID]
      
    • Ejemplo:
      gcloud config set project lab-project-id-example
      
    • Si no recuerdas el ID de tu proyecto, haz lo siguiente:
      • Puedes enumerar todos los IDs de tus proyectos con el siguiente comando:
        gcloud projects list | awk '/PROJECT_ID/{print $2}'
        
      Establece el ID del proyecto en la terminal del editor de Cloud Shell
  5. Deberías ver el siguiente mensaje:
    Updated property [core/project].
    
    Si ves un WARNING y se te pregunta Do you want to continue (Y/n)?, es probable que hayas ingresado el ID del proyecto de forma incorrecta. Presiona n, presiona Enter y vuelve a intentar ejecutar el comando gcloud config set project.

4. Crea tu skill personalizada

Las Habilidades del agente son directorios que contienen, como mínimo, un archivo SKILL.md que proporciona instrucciones y conocimientos a un agente de IA. En esta sección, crearás una habilidad que le enseñará a Gemini CLI sobre tus cosas favoritas.

  1. Crea un directorio para este lab y navega a él:
    mkdir ~/agent-skills-lab && cd ~/agent-skills-lab
    
  2. Crea un directorio para la skill de tu proyecto:
    mkdir -p ~/agent-skills-lab/.agents/skills/my-favorite-things
    
  3. Crea y abre un nuevo archivo SKILL.md para tu skill:
    cloudshell edit ~/agent-skills-lab/.agents/skills/my-favorite-things/SKILL.md
    
    El comando cloudshell edit abrirá el archivo SKILL.md en el editor que se encuentra sobre la terminal.
  4. Agrega el siguiente contenido al archivo SKILL.md:
    ---
    name: my-favorite-things
    description: Provides personal information about my favorite color, food, and programming language. Use this skill when the user asks questions about my personal preferences or favorite things.
    ---
    
    # Knowledge
    
    - **Favorite Color:** Blue
    - **Favorite Food:** Pizza
    - **Favorite Programming Language:** Python
    
    If asked about one of my favorite things, please respond with the information provided above.
    

Con solo un archivo SKILL.md, creaste tu primera skill. Es hora de usar esta habilidad en Gemini CLI.

5. Usa tu habilidad desde Gemini CLI

Ahora que creaste correctamente una habilidad, Gemini CLI ya la puede detectar porque se encuentra en el directorio .agents/skills.

  1. Inicia Gemini CLI:
    gemini
    
    Deberías ver que Gemini CLI reconoce la nueva habilidad. Es posible que debas presionar Enter para aceptar algunos parámetros de configuración predeterminados.
  1. Haz que Gemini enumere las habilidades disponibles en su contexto.
    /skills
    
    Deberías ver my-favorite-things en la lista de habilidades disponibles.
  2. Pregúntale a Gemini sobre tu color favorito:
    What is my favorite color?
    
    Gemini CLI debería usar la habilidad my-favorite-things para responder tu pregunta. Si se te solicita, permite que Gemini CLI use la habilidad.

El resultado debería mostrar que Gemini CLI usó tu habilidad y respondió con algo como "Azul" o "Mi color favorito es el azul".

¡Lo lograste! Creaste correctamente una habilidad y la probaste con Gemini CLI.

Cuando quieras finalizar tu sesión, escribe /quit y, luego, presiona Enter para salir de Gemini CLI.

6. (Opcional) Compila e implementa una aplicación en Firebase Hosting

Además de crear tus propias habilidades, puedes instalar las que crearon otras personas. Esto demuestra el uso de habilidades portátiles, es decir, módulos autónomos de conocimiento, instrucciones y flujos de trabajo que se pueden compartir y reutilizar fácilmente.

Las Agent Skills para Firebase son un excelente ejemplo de estos módulos portátiles. Están diseñadas para ayudar a los asistentes de IA a comprender las prácticas recomendadas de Firebase y ejecutar tareas complejas con mayor precisión y un menor costo de tokens.

Ahora usa Agent Skills for Firebase para crear una aplicación web de "tareas pendientes" con autenticación de usuarios y una base de datos, y luego impleméntala en Firebase Hosting.

Configura tu proyecto

  1. Si aún estás en Gemini CLI, escribe /quit para salir.
  2. Crea un directorio nuevo para tu proyecto y navega hasta él:
    mkdir ~/todo-app && cd ~/todo-app
    
  3. Accede a Firebase con tu Cuenta de Google. Usa la marca --no-localhost, ya que estás en Cloud Shell:
    firebase login --no-localhost
    
    1. Interactúa con las indicaciones de la CLI:
      • Cuando se te pregunte Enable Gemini in Firebase features?, escribe Y (para Sí) y presiona Enter.
      • Cuando se te pregunte Allow Firebase to collect CLI and Emulator Suite usage and error reporting information?, escribe Y (para Sí) y presiona Enter.
    2. Autoriza en el navegador:
      • Verás una URL en la terminal. Haz clic en el vínculo para abrir la página de acceso en una nueva pestaña del navegador.
      • Paso 1 de 3 (confirmar el comando): Haz clic en Yes, I just ran this command.
      • Paso 2 de 3 (Confirmar ID de sesión): Asegúrate de que el ID de sesión coincida con el que se muestra en tu terminal y, luego, haz clic en Yes, this is my session ID.
      • Paso 3 de 3 (Copiar código): Haz clic en Copiar para copiar el código de autorización en el portapapeles.
    3. Completa el acceso:
      • Vuelve a la terminal de Cloud Shell y pega el código de autorización en el mensaje de ? Enter authorization code:.
      • Presiona Enter.
    Deberías ver un mensaje de éxito: ✔ Success! Logged in as .

Instala Agent Skills para Firebase

Ahora que creaste el directorio de tu proyecto, debes instalar las habilidades de agentes para Firebase en él.

Puedes instalar las Agent Skills para Firebase con la CLI de skills en tu terminal:

npx skills add firebase/agent-skills

Durante la instalación, se te pedirá que selecciones qué habilidades instalar. Usa las teclas de flecha para navegar por la lista y la barra espaciadora para seleccionar estas habilidades.

  • firebase-basics
  • firebase-hosting-basics
  • firebase-auth-basics
  • firebase-firestore-enterprise-native-mode

Seleccionar cuatro habilidades de Firebase

Para los mensajes posteriores, puedes aceptar los valores predeterminados de forma segura presionando Enter.

Este comando descargará e instalará habilidades, incluidas firebase-basics y firebase-hosting-basics, y las pondrá a disposición para su uso en Gemini CLI junto con tu habilidad my-favorite-things.

Para obtener más información sobre las habilidades de agentes de Firebase, consulta las habilidades disponibles.

Crea e implementa una app web básica

  1. Habilita las APIs obligatorias para tu proyecto:
    gcloud services enable \
      cloudresourcemanager.googleapis.com \
      firebase.googleapis.com
    
  2. Habilita Firebase en tu proyecto actual de Google Cloud:
    firebase projects:addfirebase ${GOOGLE_CLOUD_PROJECT}
    
  3. Inicia Gemini CLI:
    gemini
    
  4. Pídele a Gemini que genere un index.html básico:
    Generate an index.html file with the content "Hello Firebase Hosting" and
    deploy the application to Firebase Hosting using the current Google Cloud
    Project.
    
    Gemini te pedirá que crees index.html y ejecutes firebase. Presiona Enter para permitirlo.Gemini CLI debería usar Agent Skills for Firebase para crear e implementar tu sitio web. Guía al agente junto con las aprobaciones según sea necesario.

Cuando finalice la implementación, se debería proporcionar una URL para tu app web. Usa ctrl+click (Windows) o cmc+click (Mac) para abrir vínculos en la terminal del Editor de Cloud Shell. Visita la URL de tu app implementada.

Agrega Firebase Authentication

  1. Inicia Gemini CLI si aún no lo hiciste:
    gemini
    
    Es posible que Gemini te haga preguntas como "¿Confías en esta carpeta?". Presiona Enter para aceptar los valores predeterminados.
  2. Ahora, pídele a Gemini que agregue el acceso con Google:
    Generate HTML, CSS, and Javascript for a single page application.
    It should use Google Sign-in with Firebase Authentication.
    A user should be able to sign in with their Google Account.
    Deploy when you are done and give the URL to the user.
    
    Es posible que Gemini te pida que crees o actualices archivos como index.html, style.css y script.js. Permite que lo haga. Es posible que Gemini te pida que realices algunas acciones en Firebase console. La CLI puede realizar la mayoría de estas acciones si se lo pides, pero es posible que debas completar los pasos de forma manual (como habilitar Google OAuth) si tu instancia de Cloud Shell tiene instalada una versión anterior de Firebase CLI.

Cuando finalice la implementación, se debería proporcionar una URL para tu app web. Usa ctrl+click (Windows) o cmc+click (Mac) para abrir vínculos en la terminal del Editor de Cloud Shell. Visita la URL de tu app implementada.

Para ver los cambios más recientes, es posible que debas realizar una "actualización forzada" con ctrl+shift+R (Windows) o cmd+shift+R (Mac).

Agrega Cloud Firestore

  1. Inicia Gemini CLI si aún no lo hiciste:
    gemini
    
    Es posible que Gemini te haga preguntas como "¿Confías en esta carpeta?". Presiona Enter para aceptar los valores predeterminados.
  2. Pídele a Gemini que agregue Firestore para guardar tareas:
    Update the application to save tasks in Cloud Firestore for the signed-in user.
    A user should be able to add new tasks and see a list of their tasks.
    Deploy when you are done and give the URL to the user.
    
    Gemini actualizará los archivos. Permite que lo haga.

Cuando finalice la implementación, se debería proporcionar una URL para tu app web. Usa ctrl+click (Windows) o cmc+click (Mac) para abrir vínculos en la terminal del Editor de Cloud Shell. Visita la URL de tu app implementada.

Para ver los cambios más recientes, es posible que debas realizar una "actualización forzada" con ctrl+shift+R (Windows) o cmd+shift+R (Mac).

Si tu aplicación no funciona como se espera, sigue trabajando con Gemini CLI para obtener la funcionalidad que esperas. Ejemplo: shell Hide the task form when the user is logged out. Update the security rules so the user can see their TODOs.

Sigue experimentando con el lab para agregar las funciones que te gustaría ver en tu nueva aplicación de Firebase.

7. Conclusión

¡Felicitaciones! Creaste correctamente una habilidad y aprendiste a instalar habilidades adicionales para Gemini CLI.

(Opcional) Limpieza

Si deseas limpiar el proyecto, puedes borrarlo para evitar que se generen cargos adicionales.

Si quieres, borra el proyecto:

gcloud projects delete $GOOGLE_CLOUD_PROJECT

También puedes borrar los recursos innecesarios del disco de Cloud Shell para liberar espacio.

  1. Borra el directorio del lab (esto quita la habilidad y la app):
    rm -rf ~/agent-skills-lab
    
  2. Borra el directorio de la aplicación "To Do" (si lo creaste fuera):
    rm -rf ~/todo-app
    

Si alguna vez necesitas restablecer Cloud Shell a su estado predeterminado, puedes seguir la documentación oficial para obtener instrucciones sobre cómo hacerlo de forma segura.