Antigravity CLI를 사용하여 데이터 컨텍스트 테스트

AI 에이전트는 추론할 수 있지만 특정 회사에 대한 지식은 전혀 없는 상태에서 시작합니다. 에이전트에게 '1분기 수익이 얼마야?'라고 묻는다고 상상해 보세요. 안내 없이 에이전트는 공식 보고서부터 정리되지 않은 테스트 데이터에 이르기까지 데이터베이스에서 '수익'이라는 이름의 수십 개 테이블 중에서 선택할 수 있습니다. 에이전트가 가장 비슷한 이름의 테이블을 선택하면 검증되지 않은 소스를 기반으로 그럴듯하지만 잘못된 답변을 반환할 수 있습니다.

메타데이터 보강은 이 컨텍스트 문제를 해결하는 방법입니다. 이 튜토리얼에서는 이 컨텍스트를 제공하는 관점을 설정하고 Antigravity CLI를 사용하여 데이터 컨텍스트를 테스트하고 에이전트가 신뢰할 수 있는 인증된 데이터를 기반으로 답변을 정확하게 제공할 수 있는지 확인합니다.

목표

  • 테스트를 위해 BigQuery에 실제와 같은 다중 계층 데이터 레이크를 배포합니다.
  • Knowledge Catalog에서 공식 데이터 제품과 원시 샌드박스 테이블을 구분하기 위해 커스텀 메타데이터 템플릿 (관점 유형)을 설계하고 등록합니다.
  • Antigravity CLI (agy)를 사용하여 데이터 거버넌스 규칙 및 AI 에이전트 기반을 확인합니다.

시작하기 전에

시작하기 전에 다음 사항을 확인하세요.

이 튜토리얼을 완료하려면 BigQueryKnowledge Catalog에 대한 기본적인 이해도 있어야 합니다.

개발 환경 준비

이 튜토리얼에서는 Google Cloud Shell을(를) 사용합니다. 이 Shell은 클라우드에서 실행되는 명령줄 환경입니다. Antigravity CLI (agy)는 Google Cloud Shell에 사전 설치되어 있습니다.

  1. 콘솔 Google Cloud 에서 오른쪽 상단 툴바 에 있는 Cloud Shell 활성화 를 클릭합니다. 환경을 프로비저닝하고 연결하는 데 몇 분 정도 소요됩니다.

  2. Cloud Shell에서 향후 모든 명령어가 특정 Google Cloud 프로젝트를 타겟팅하도록 PROJECT_IDREGION 변수를 설정합니다.

    export PROJECT_ID=$(gcloud config get-value project)
    gcloud config set project $PROJECT_ID
    export REGION="us-central1"
    
  3. 필요한 Google Cloud 서비스를 사용 설정합니다.

    gcloud services enable \
      artifactregistry.googleapis.com \
      bigquery.googleapis.com \
      dataplex.googleapis.com \
      aiplatform.googleapis.com \
      run.googleapis.com \
      cloudbuild.googleapis.com \
      iam.googleapis.com
    
  4. Google Cloud DevRel 데모 저장소를 클론합니다.

    GitHub에서 인프라 코드와 스크립트를 다운로드합니다. 스파스 체크아웃을 사용하여 이 튜토리얼에 필요한 특정 폴더만 가져옵니다.

    # Perform a shallow clone to get only the latest repository structure without the full history
    git clone --depth 1 --filter=blob:none --sparse https://github.com/GoogleCloudPlatform/devrel-demos.git
    cd devrel-demos
    
    # Specify and download only the folder you need for this tutorial
    git sparse-checkout set data-analytics/governance-context
    cd data-analytics/governance-context
    

BigQuery에 샘플 데이터 레이크 배포

실제 데이터 환경은 정리된 경우가 거의 없습니다. 실제와 같은 환경을 시뮬레이션하려면 '공식' 데이터 마트와 신뢰할 수 없는 '샌드박스' 테이블을 혼합해야 합니다.

설정 스크립트를 사용하여 BigQuery 데이터 세트와 테이블을 배포합니다.

설정 스크립트를 실행 가능하게 만들고 실행합니다. 이렇게 하면 세 개의 BigQuery 데이터 세트 (finance_mart, marketing_prod, analyst_sandbox)가 생성되고 테이블에 샘플 데이터가 채워집니다.

chmod +x ./setup_bq_tables.sh
./setup_bq_tables.sh

이제 완전히 채워졌지만 관리되지 않는 데이터 레이크가 있습니다. AI 에이전트에게는 모든 테이블이 똑같아 보입니다.

Knowledge Catalog에서 커스텀 관점 유형 정의

이제 데이터 거버넌스 규칙을 정의합니다. Knowledge Catalog에서 이 작업을 수행하려면 재사용 가능한 강력한 유형의 메타데이터 템플릿인 관점 유형을 만듭니다.

이 섹션에서는 gcloud CLI를 사용하여 이 템플릿을 등록하여 정의 방법을 확인할 수 있습니다.

관점 템플릿 스키마 검사

aspect_template.json의 콘텐츠를 출력하여 스키마 정의를 확인합니다.

cat aspect_template.json

다음 JSON 구조가 표시됩니다.

{
  "name": "OfficialDataProductSpec",
  "type": "record",
  "recordFields": [
    {
      "name": "product_tier",
      "type": "enum",
      "enumValues": [
        { "name": "GOLD_CRITICAL", "index": 1 },
        { "name": "SILVER_STANDARD", "index": 2 },
        { "name": "BRONZE_ADHOC", "index": 3 }
      ],
      ...
    },
    {
      "name": "is_certified",
      "type": "bool",
      "...": "..."
    }
  ]
}

이 스키마는 중요도 등급 (GOLD_CRITICAL, SILVER_STANDARD, BRONZE_ADHOC)의 enumis_certifiedbool과 같은 엄격한 데이터 유형을 적용합니다. 이렇게 하면 메타데이터가 구조화되고 머신 판독 가능하게 유지됩니다.

Knowledge Catalog에 관점 유형 등록

다음 gcloud 명령어를 실행하여 Knowledge Catalog 레지스트리에 이 템플릿을 등록합니다.

gcloud dataplex aspect-types create official-data-product-spec \
    --location="${REGION}" \
    --project="${PROJECT_ID}" \
    --description="Defines the comprehensive profile of a data product for data governance agents." \
    --display-name="Official Data Product Spec" \
    --metadata-template-file-name="aspect_template.json"

데이터 레이크 테이블에 거버넌스 관점 연결

이 단계는 매우 중요한 엔지니어링 단계입니다. 현재 테이블 finance_mart.fin_monthly_closing_internalanalyst_sandbox.tmp_data_dump_v2_final_real은 AI 에이전트에게 동일하게 보입니다. 열이 있는 객체일 뿐입니다.

이를 구분하려면 인증된 메타데이터 라벨을 이러한 테이블에 연결하여 구분하는 관점을 적용합니다. 실제 엔터프라이즈에서는 CI/CD 파이프라인으로 이 작업을 자동화합니다. 이 튜토리얼에서는 스크립트로 자동화를 시뮬레이션합니다.

관점 메타데이터 페이로드 생성

Knowledge Catalog 관점 키는 전역적으로 고유해야 합니다 (프로젝트 ID로 시작). ./generate_payloads.sh 스크립트는 YAML 메타데이터 파일을 동적으로 생성합니다.

chmod +x ./generate_payloads.sh
./generate_payloads.sh

이렇게 하면 다양한 데이터 거버넌스 시나리오 (fin_internal.yaml, fin_public.yaml, mkt_realtime.yaml, sandbox.yaml)를 정의하는 4개의 YAML 파일이 포함된 aspect_payloads/ 디렉터리가 생성됩니다.

BigQuery 테이블에 관점 연결

  1. 스크립트를 실행하기 전에 테이블에 연결할 데이터를 살펴봅니다. 다음 명령어를 실행하여 내부 금융 데이터의 메타데이터를 확인합니다.

    cat aspect_payloads/fin_internal.yaml
    

    YAML 파일은 테이블의 비즈니스 컨텍스트를 정의합니다.

    your-project-id.us-central1.official-data-product-spec:
      data:
        product_tier: GOLD_CRITICAL
        data_domain: FINANCE
        usage_scope: INTERNAL_ONLY
        update_frequency: DAILY_BATCH
        is_certified: true
    

    is_certified: true를 설정하고 GOLD_CRITICAL 등급을 할당하는 등 비즈니스 컨텍스트를 명시적으로 정의하는 방법을 확인합니다. 이렇게 하면 AI 에이전트가 테이블 이름을 기반으로 추측하는 대신 평가할 수 있는 명확하고 구조화된 규칙이 제공됩니다.

  2. 애플리케이션 스크립트를 실행합니다. 이 스크립트는 BigQuery 테이블을 반복하고 gcloud dataplex entries update 명령어를 사용하여 각 테이블에 메타데이터 페이로드를 연결합니다.

    chmod +x ./apply_governance.sh
    ./apply_governance.sh
    

콘솔 Google Cloud 에서 적용된 관점 확인

계속하기 전에 스크립트가 Google Cloud 콘솔에서 관점을 올바르게 적용했는지 확인합니다.

  1. 콘솔에서 Knowledge Catalog 페이지를 Google Cloud 엽니다. 상단의 검색창을 사용해 찾을 수 있습니다.
  2. fin_monthly_closing_internal을 검색합니다. 결과에서 BigQuery 테이블 이름을 선택하여 세부정보 페이지를 엽니다.
  3. 하단의 선택적 태그 및 관점 섹션에서 official-data-product-spec 관점을 찾습니다. 값이 적용한 'Gold Internal' 시나리오와 일치하는지 확인합니다.

이제 기술적으로 동일한 BigQuery 테이블 (fin_monthly_closing_internaltmp_data_dump_v2_final_real)이 머신 판독 가능 메타데이터로 논리적으로 구분된다는 것을 확인했습니다.

Antigravity CLI로 데이터 컨텍스트 테스트

애플리케이션을 빌드하기 전에 Antigravity CLI를 사용하여 데이터 거버넌스 로직을 로컬에서 확인할 수 있습니다. 이렇게 하려면 Knowledge Catalog 플러그인을 설치하고 에이전트 스킬을 구성합니다.

Knowledge Catalog 플러그인 설치

Cloud Shell에서 서비스 플러그인을 설치합니다.

export DATAPLEX_PROJECT="${PROJECT_ID}"

agy plugin install https://github.com/gemini-cli-extensions/dataplex

에이전트 스킬 정의 검사

에이전트 스킬은 .agents/skills/knowledge-catalog-governance/SKILL.md에 있는 재사용 가능한 정적 정의 파일입니다. 여기에는 '안전한 데이터가 필요합니다'와 같은 추상적인 인간 규칙을 구조화된 기술 조회로 변환하는 로직이 포함되어 있습니다.

기술 설정을 확인하고 데이터 컨텍스트가 작동하는 방식을 이해하려면 SKILL.md 파일을 검사합니다.

cat .agents/skills/knowledge-catalog-governance/SKILL.md

모델이 엄격한 1단계 (메타데이터 확인) 및 2단계 (쿼리 실행) 루프를 따르도록 안내합니다. 모델은 SQL 문을 구성하기 전에 메타데이터를 검색하고 확인해야 합니다. 이 검색 우선 로직은 에이전트가 테이블 이름을 추측하거나 검증되지 않은 소스에서 답변을 생성하는 것을 방지합니다.

Antigravity CLI 세션 시작

Antigravity CLI 세션을 시작합니다. 프로젝트 폴더에 있으므로 CLI는 .agents/skills 디렉터리에서 스킬을 자동으로 검색하고 로드합니다.

agy

CLI에서 플러그인 설치 확인

Antigravity CLI 프롬프트에서 플러그인이 활성 상태인지 확인합니다. /mcp를 입력하여 구성된 도구 및 플러그인을 나열합니다.

/mcp

출력에 사용 가능한 도구가 있는 활성 플러그인으로 knowledge-catalog가 표시되어야 합니다.

MCP Servers ... >  ✓ knowledge-catalog  Tools: search_entries, lookup_context, lookup_entry

데이터 컨텍스트 확인 시나리오 실행

이제 데이터 컨텍스트가 실제로 작동하는지 확인할 차례입니다. 이러한 프롬프트를 Antigravity CLI 세션에 하나씩 붙여넣습니다.

시나리오 1: 인증된 골드 등급 데이터 검색

Antigravity CLI가 중요한 이사회 회의에 가장 신뢰할 수 있는 데이터를 찾을 수 있는지 확인합니다.

We are preparing the deck for an internal Board of Directors meeting next week. I need the numbers to be absolutely finalized, trustworthy, and kept strictly confidential. Which table is safe to use?

CLI는 원시 데이터를 건너뛰고 fin_monthly_closing_internal을 찾아야 합니다. 이는 '완료된' 및 '기밀' 데이터에 대한 요청을 이전에 적용한 GOLD_CRITICALINTERNAL_ONLY 태그와 일치시켜 수행합니다.

시나리오 2: 외부 승인 데이터로 검색 제한

데이터를 외부적으로 공유한다고 가정해 보겠습니다. CLI가 내부 비밀을 유출하지 않도록 해야 합니다.

I need to share our quarterly financial summary with an external consulting firm. It is critical that we do not leak any raw or internal metrics. Which dataset is officially scrubbed and explicitly approved for external sharing?

내부 테이블에 가장 자세한 정보가 포함되어 있지만 CLI는 이를 무시해야 합니다. EXTERNAL_READY로 태그된 유일한 테이블이므로 fin_quarterly_public_report를 가리켜야 합니다.

시나리오 3: 실시간 스트리밍 데이터 검색

데이터 과학자는 최신 정보가 필요한 경우가 많습니다. Antigravity CLI가 일일 일괄 처리와 실시간 스트림의 차이점을 이해하는지 확인합니다.

My dashboard needs to show what's happening right now with our ad spend. I can't wait for the overnight load. What do you recommend?

CLI는 mkt_realtime_campaign_performance를 찾아야 합니다. 메타데이터에서 REALTIME_STREAMING 업데이트 빈도를 식별합니다.

시나리오 4: 인증되지 않은 샌드박스 데이터 탐색

'완벽'한 것보다 '충분히 좋은' 것이 더 나은 경우도 있습니다. Antigravity CLI가 일부 실험적 ML 작업을 위한 원시 샌드박스 데이터를 찾을 수 있는지 확인합니다.

I'm just playing around with some new ML models and need a lot of raw data. It doesn't need to be perfect, just a sandbox environment.

CLI는 tmp_data_dump_v2_final_real을 찾아야 합니다. BRONZE_ADHOC 등급과 일치하고 is_certified: false로 명시적으로 표시되어 있으므로 올바른 선택임을 알고 있습니다.

테스트를 마치면 CLI 세션을 종료할 수 있습니다.

/quit

정리

반복 청구를 방지하려면 다음 단계를 따르세요.

  1. Antigravity CLI 세션에 있는 경우 Ctrl+C를 두 번 누르거나 /quit를 입력하여 세션을 종료합니다.

  2. 삭제 스크립트를 실행하여 이 튜토리얼에서 만든 BigQuery 테이블, 데이터 세트, Knowledge Catalog 관점 유형을 삭제합니다.

    chmod +x ./cleanup_data_lake.sh
    ./cleanup_data_lake.sh
    
  3. 서비스 플러그인을 제거하고 로컬 데모 파일을 삭제합니다.

    agy plugin uninstall dataplex
    cd ~
    rm -rf ~/devrel-demos
    

다음 단계