AI 에이전트 스킬 사용 방법 (Gemini CLI 및 Firebase용 에이전트 스킬 사용)

1. 소개

에이전트 스킬 실습 표지 사진

이 실습에서는 LLM에 맞춤 지식과 워크플로에 대한 액세스 권한을 제공하는 에이전트 기술을 만드는 방법을 알아봅니다. Gemini CLI에서 액세스할 수 있는 로컬 스킬로 만듭니다.

실습할 내용

  • 좋아하는 항목에 대한 나만의 에이전트 스킬을 만드세요.
  • Gemini CLI를 사용하여 스킬을 쿼리합니다.
  • Firebase용 공식 에이전트 스킬을 설치하고 이를 사용하여 앱을 빌드하고 배포합니다.

학습할 내용

  • 스킬을 구성하는 방법
  • SKILL.md 파일을 작성하는 방법
  • Gemini CLI로 로컬 스킬을 사용하는 방법

2. 프로젝트 설정

  1. 아직 Google 계정이 없다면 Google 계정을 만들어야 합니다.
    • 직장 또는 학교 계정 대신 개인 계정을 사용하세요. 직장 및 학교 계정에는 이 실습에 필요한 API를 사용 설정하지 못하도록 하는 제한이 있을 수 있습니다.
  2. Google Cloud 콘솔에 로그인합니다.
  3. Cloud 콘솔에서 결제를 사용 설정합니다.
    • 이 실습을 완료하는 데 드는 Cloud 리소스 비용은 미화 1달러 미만입니다.
    • 이 실습이 끝나면 단계에 따라 리소스를 삭제하여 추가 요금이 발생하지 않도록 할 수 있습니다.
    • 신규 사용자는 미화$300 상당의 무료 체험판을 이용할 수 있습니다.
  4. 새 프로젝트를 만들거나 기존 프로젝트를 재사용합니다.
    • 프로젝트 할당량에 관한 오류가 표시되면 기존 프로젝트를 재사용하거나 기존 프로젝트를 삭제하여 새 프로젝트를 만드세요.

3. Cloud Shell 편집기 열기

  1. 이 링크를 클릭하여 Cloud Shell 편집기로 바로 이동합니다.
  2. 오늘 언제든지 승인하라는 메시지가 표시되면 승인을 클릭하여 계속합니다. 클릭하여 Cloud Shell 승인
  3. 터미널이 화면 하단에 표시되지 않으면 다음 단계에 따라 엽니다.
    • 보기를 클릭합니다.
    • 터미널을 클릭합니다.Cloud Shell 편집기에서 새 터미널 열기
  4. 터미널에서 다음 명령어를 사용하여 프로젝트를 설정합니다.
    • 형식:
      gcloud config set project [PROJECT_ID]
      
    • 예:
      gcloud config set project lab-project-id-example
      
    • 프로젝트 ID를 기억할 수 없는 경우 다음 단계를 따르세요.
      • 다음 명령어를 사용하여 모든 프로젝트 ID를 나열할 수 있습니다.
        gcloud projects list | awk '/PROJECT_ID/{print $2}'
        
      Cloud Shell 편집기 터미널에서 프로젝트 ID 설정
  5. 다음 메시지가 표시되어야 합니다.
    Updated property [core/project].
    
    WARNING이 표시되고 Do you want to continue (Y/n)?이 표시되면 프로젝트 ID를 잘못 입력한 것일 수 있습니다. n를 누르고 Enter를 누른 다음 gcloud config set project 명령어를 다시 실행해 보세요.

4. 맞춤형 스킬 만들기

에이전트 스킬은 AI 에이전트에게 안내와 지식을 제공하는 SKILL.md 파일이 최소한으로 포함된 디렉터리입니다. 이 섹션에서는 Gemini CLI에 좋아하는 것을 알려주는 스킬을 만듭니다.

  1. 이 실습의 디렉터리를 만들고 해당 디렉터리로 이동합니다.
    mkdir ~/agent-skills-lab && cd ~/agent-skills-lab
    
  2. 프로젝트 스킬의 디렉터리를 만듭니다.
    mkdir -p ~/agent-skills-lab/.agents/skills/my-favorite-things
    
  3. 스킬에 사용할 새 SKILL.md 파일을 만들고 엽니다.
    cloudshell edit ~/agent-skills-lab/.agents/skills/my-favorite-things/SKILL.md
    
    cloudshell edit 명령어를 사용하면 터미널 위의 편집기에서 SKILL.md 파일이 열립니다.
  4. 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.
    

SKILL.md 파일 하나로 첫 번째 스킬을 만들었습니다. 이제 Gemini CLI에서 이 스킬을 사용할 시간입니다.

5. Gemini CLI에서 스킬 사용하기

이제 스킬이 .agents/skills 디렉터리에 있으므로 Gemini CLI에서 스킬을 검색할 수 있습니다.

  1. Gemini CLI를 시작합니다.
    gemini
    
    Gemini CLI가 새로운 스킬을 인식하는 것을 확인할 수 있습니다. 일부 기본 설정을 수락하려면 Enter 키를 눌러야 할 수 있습니다.
  1. Gemini가 컨텍스트 내에서 사용할 수 있는 기술을 나열하도록 합니다.
    /skills
    
    사용 가능한 스킬 목록에 my-favorite-things이 표시됩니다.
  2. 좋아하는 색에 관해 Gemini에게 물어보세요.
    What is my favorite color?
    
    Gemini CLI는 my-favorite-things 스킬을 사용하여 질문에 답변해야 합니다. 메시지가 표시되면 Gemini CLI가 스킬을 사용할 수 있도록 허용합니다.

출력에는 Gemini CLI가 스킬을 사용하고 '파란색' 또는 '가장 좋아하는 색은 파란색입니다'과 같은 대답을 한 것으로 표시되어야 합니다.

완료했습니다. Gemini CLI를 사용하여 스킬을 만들고 테스트했습니다.

세션을 종료할 준비가 되면 /quit를 입력한 다음 Enter를 눌러 Gemini CLI를 종료합니다.

6. (선택사항) 애플리케이션을 빌드하고 Firebase 호스팅에 배포

자체 스킬을 만드는 것 외에도 다른 사용자가 만든 스킬을 설치할 수 있습니다. 이는 쉽게 공유하고 재사용할 수 있는 지식, 안내, 워크플로의 자체 포함 모듈인 이동 가능한 기술의 사용을 보여줍니다.

Firebase용 Agent Skills는 이러한 휴대용 모듈의 좋은 예입니다. AI 어시스턴트가 Firebase 권장사항을 이해하고 더 높은 정확도와 더 낮은 토큰 비용으로 복잡한 작업을 실행할 수 있도록 설계되었습니다.

이제 Agent Skills for Firebase를 사용하여 사용자 인증 및 데이터베이스가 있는 '할 일' 웹 애플리케이션을 만들고 Firebase 호스팅에 배포합니다.

프로젝트 설정

  1. 아직 Gemini CLI에 있는 경우 /quit를 입력하여 종료합니다.
  2. 프로젝트의 새 디렉터리를 만들고 디렉터리로 이동합니다.
    mkdir ~/todo-app && cd ~/todo-app
    
  3. Google 계정을 사용하여 Firebase에 로그인합니다. Cloud Shell에 있으므로 --no-localhost 플래그를 사용합니다.
    firebase login --no-localhost
    
    1. CLI 프롬프트와 상호작용:
      • Enable Gemini in Firebase features?라는 메시지가 표시되면 Y (예)를 입력하고 Enter를 누릅니다.
      • Allow Firebase to collect CLI and Emulator Suite usage and error reporting information?라는 메시지가 표시되면 Y (예)를 입력하고 Enter를 누릅니다.
    2. 브라우저에서 승인:
      • 터미널에 URL이 표시됩니다. 링크를 클릭합니다. 클릭할 수 없는 경우 Cloud Shell에서 URL을 강조 표시하여 복사한 다음 브라우저에 붙여넣습니다. 그러면 새 브라우저 탭에서 로그인 페이지가 열립니다.
      • 1/3단계 (명령어 확인): 예, 방금 이 명령어를 실행했습니다를 클릭합니다.
      • 2/3단계 (세션 ID 확인): 세션 ID가 터미널에 표시된 ID와 일치하는지 확인한 다음 예, 세션 ID입니다를 클릭합니다.
      • 3단계 중 3단계 (코드 복사): 복사를 클릭하여 승인 코드를 클립보드에 복사합니다.
    3. 로그인 완료:
      • Cloud Shell 터미널로 돌아가 ? Enter authorization code: 프롬프트에 승인 코드를 붙여넣습니다.
      • Enter 키를 누릅니다.
    ✔ Success! Logged in as 과 같은 성공 메시지가 표시됩니다.

Firebase용 Agent Skills 설치

이제 프로젝트 디렉터리를 만들었으므로 그 안에 Firebase용 에이전트 스킬을 설치해야 합니다.

터미널에서 skills CLI를 사용하여 Firebase용 Agent Skills를 설치할 수 있습니다.

npx skills add firebase/agent-skills

설치 중에 설치할 스킬을 선택하라는 메시지가 표시됩니다. 화살표 키를 사용하여 목록을 탐색하고 스페이스바를 사용하여 이러한 기술을 선택합니다.

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

Firebase 스킬 4개 선택

후속 프롬프트의 경우 Enter를 눌러 기본값을 수락해도 됩니다.

이 명령어는 firebase-basics 및 firebase-hosting-basics를 비롯한 스킬을 다운로드하고 설치하여 my-favorite-things 스킬과 함께 Gemini CLI에서 사용할 수 있도록 합니다.

Firebase용 Agent Skills에 대해 자세히 알아보려면 사용 가능한 스킬을 참고하세요.

기본 웹 앱 만들기 및 배포

  1. 프로젝트에 필요한 API를 사용 설정합니다.
    gcloud services enable \
      cloudresourcemanager.googleapis.com \
      firebase.googleapis.com
    
  2. 현재 Google Cloud 프로젝트에서 Firebase를 사용 설정합니다.
    firebase projects:addfirebase ${GOOGLE_CLOUD_PROJECT}
    
  3. Gemini CLI를 시작합니다.
    gemini
    
  4. Gemini에게 기본 index.html를 생성해 달라고 요청하세요.
    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는 index.html를 만들고 firebase를 실행하도록 요청합니다. Enter를 눌러 허용합니다.Gemini CLI는 Firebase용 Agent Skills를 사용하여 웹사이트를 만들고 배포해야 합니다. 필요에 따라 승인과 함께 상담사를 안내합니다.

배포가 완료되면 웹 앱의 URL이 제공됩니다. ctrl+click (Windows/Linux) 또는 cmd+click (Mac)를 사용하여 Cloud Shell 편집기 터미널에서 링크를 엽니다. 배포된 앱의 URL을 방문하세요.

Firebase 인증 추가

  1. 아직 시작하지 않은 경우 Gemini CLI를 시작합니다.
    gemini
    
    Gemini가 '이 폴더를 신뢰하시나요?'와 같은 질문을 할 수 있습니다. Enter 키를 눌러 기본값을 수락합니다.
  2. 이제 Gemini에게 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.
    
    Gemini에서 index.html, style.css, script.js과 같은 파일을 만들거나 업데이트하도록 요청할 수 있습니다. Gemini가 Firebase 콘솔에서 몇 가지 작업을 수행하도록 요청할 수 있습니다. CLI는 요청하면 이러한 작업을 대부분 실행할 수 있지만 Cloud Shell 인스턴스에 이전 버전의 Firebase CLI가 설치되어 있는 경우 Google OAuth를 사용 설정하는 등 단계를 수동으로 완료해야 할 수 있습니다.

배포가 완료되면 웹 앱의 URL이 제공됩니다. ctrl+click (Windows/Linux) 또는 cmd+click (Mac)를 사용하여 Cloud Shell 편집기 터미널에서 링크를 엽니다. 배포된 앱의 URL을 방문하세요.

최신 변경사항을 확인하려면 ctrl+shift+R (Windows/Linux) 또는 cmd+shift+R (Mac)를 사용하여 '강제 새로고침'을 실행해야 할 수 있습니다.

Cloud Firestore 추가

  1. 아직 시작하지 않은 경우 Gemini CLI를 시작합니다.
    gemini
    
    Gemini가 '이 폴더를 신뢰하시나요?'와 같은 질문을 할 수 있습니다. Enter 키를 눌러 기본값을 수락합니다.
  2. Gemini에게 Firestore를 추가하여 작업을 저장하도록 요청합니다.
    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가 파일을 업데이트합니다. 허용합니다.

배포가 완료되면 웹 앱의 URL이 제공됩니다. ctrl+click (Windows/Linux) 또는 cmd+click (Mac)를 사용하여 Cloud Shell 편집기 터미널에서 링크를 엽니다. 배포된 앱의 URL을 방문하세요.

최신 변경사항을 확인하려면 ctrl+shift+R (Windows/Linux) 또는 cmd+shift+R (Mac)를 사용하여 '강제 새로고침'을 실행해야 할 수 있습니다.

애플리케이션이 예상대로 작동하지 않으면 Gemini CLI를 계속 사용하여 원하는 기능을 구현하세요. 예: shell Hide the task form when the user is logged out. Update the security rules so the user can see their TODOs.

실험실에서 계속 실험하여 새 Firebase 애플리케이션에 원하는 기능을 추가하세요.

7. 결론

수고하셨습니다 스킬을 만들고 Gemini CLI용 추가 스킬을 설치하는 방법을 알아보았습니다.

(선택사항) 정리

정리하려면 클라우드 프로젝트를 삭제하여 추가 요금이 청구되지 않도록 하면 됩니다.

원하는 경우 프로젝트를 삭제합니다.

gcloud projects delete $GOOGLE_CLOUD_PROJECT

Cloud Shell 디스크에서 불필요한 리소스를 삭제하여 공간을 확보할 수도 있습니다.

  1. 실습 디렉터리를 삭제합니다 (이렇게 하면 스킬과 앱이 모두 삭제됨).
    rm -rf ~/agent-skills-lab
    
  2. '할 일' 애플리케이션 디렉터리를 삭제합니다 (외부에서 만든 경우).
    rm -rf ~/todo-app
    

Cloud Shell을 기본 상태로 재설정해야 하는 경우 공식 문서에서 안전하게 재설정하는 방법을 확인하세요.