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

1. 소개

상담사 기술 실습 표지 사진

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

실습할 내용

  • 즐겨 찾는 항목에 대한 자체 Agent Skills를 만듭니다.
  • Gemini CLI를 사용하여 스킬을 쿼리합니다.
  • Firebase용 공식 Agent Skills를 설치하고 이를 사용하여 앱을 빌드하고 배포합니다.

학습할 내용

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

2. 프로젝트 설정

  1. 아직 Google 계정이 없다면 Google 계정을 만들어야 합니다.
    • 직장 또는 학교 계정 대신 개인 계정을 사용합니다. 직장 및 학교 계정에는 이 실습에 필요한 API를 사용 설정하지 못하도록 제한이 있을 수 있습니다.
  2. Google Cloud 콘솔에 로그인합니다.
  3. 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. 커스텀 스킬 만들기

Agent Skills는 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가 스킬을 사용하고 'Blue' 또는 'My favorite color is blue'와 같은 내용으로 답변한 것으로 표시되어야 합니다.

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

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

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

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

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

이제 Firebase용 Agent Skills를 사용하여 사용자 인증 및 데이터베이스가 포함된 '할 일' 웹 애플리케이션을 만들고 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이 표시됩니다. 링크를 클릭 하여 새 브라우저 탭에서 로그인 페이지를 엽니다.
      • 1단계 (명령어 확인): 예, 방금 이 명령어를 실행했습니다를 클릭합니다.
      • 2단계 (세션 ID 확인): 세션 ID 가 터미널에 표시된 내용과 일치하는지 확인한 후 예, 세션 ID입니다 를 클릭합니다.
      • 3단계 (코드 복사): 복사를 클릭하여 승인 코드를 클립보드에 복사합니다.
    3. 로그인 완료:
      • Cloud Shell 터미널로 돌아가서 ? Enter authorization code: 프롬프트에 승인 코드를 붙여넣습니다.
      • Enter 키를 누릅니다.
    성공 메시지 ✔ Success! Logged in as 가 표시됩니다.

Firebase용 Agent Skills 설치

이제 프로젝트 디렉터리를 만들었으므로 프로젝트 디렉터리 내에 Firebase용 Agent Skills를 설치해야 합니다.

터미널에서 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-basicsfirebase-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) 또는 cmc+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) 또는 cmc+click (Mac)을 사용하여 Cloud Shell 편집기 터미널에서 링크를 엽니다. 배포된 앱의 URL을 방문합니다.

최신 변경사항이 표시되도록 하려면 ctrl+shift+R (Windows) 또는 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) 또는 cmc+click (Mac)을 사용하여 Cloud Shell 편집기 터미널에서 링크를 엽니다. 배포된 앱의 URL을 방문합니다.

최신 변경사항이 표시되도록 하려면 ctrl+shift+R (Windows) 또는 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을 기본 상태로 재설정해야 하는 경우 공식 문서에서 안전하게 재설정하는 방법을 안내합니다.