본문 바로가기
Snowflake

[Snowflake] Snowflake Intelligence로 나만의 에이전트를 만들어보자

by heed159 2025. 12. 11.


GPT에게 Snowflake Intelligence가 무엇인지 설명해보라고 한 답변이다.

 

Snowflake Intelligence는 조직의 데이터를 기반으로 인사이트를 얻고 행동을 취할 수 있도록 도와주는 AI 기반 플랫폼입니다.

  • 자연어 쿼리: 기술적 전문 지식 없이도 자연어를 사용하여 차트를 생성하고 즉각적인 답변을 얻을 수 있습니다
  • 다양한 데이터 소스 통합: 구조화된 데이터와 비구조화된 데이터를 함께 분석할 수 있으며, 스프레드시트, 문서, 이미지, 데이터베이스의 인사이트를 동시에 연결할 수 있습니다

Snowflake Intelligence를 사용하여 Snowflake Docs를 기반으로 답변을 해주는 에이전트를 만들어보자.

 

1. Snowflake Intelligenct 관련 오브젝트 생성

AI 에이전트가 저장될 공간을 마련해보자.

-- Snowflake Intelligence 데이터베이스 생성
CREATE DATABASE IF NOT EXISTS SNOWFLAKE_INTELLIGENCE;
GRANT USAGE ON DATABASE SNOWFLAKE_INTELLIGENCE TO ROLE PUBLIC;
 
-- 에이전트를 저장할 스키마 생성
CREATE SCHEMA IF NOT EXISTS SNOWFLAKE_INTELLIGENCE.AGENTS;
GRANT USAGE ON SCHEMA SNOWFLAKE_INTELLIGENCE.AGENTS TO ROLE PUBLIC;
 
-- 에이전트 생성 권한 부여
GRANT CREATE AGENT ON SCHEMA SNOWFLAKE_INTELLIGENCE.AGENTS TO ROLE SYSADMIN;

 

2. 역할 생성 및 권한 부여

관리자 / 모델링 / 사용자를 명확히 분리해서 거버넌스를 강화해보자.

USE ROLE USERADIN;

-- 관리자 역할
CREATE ROLE SNOWFLAKE_INTELLIGENCE_ADMIN_RL;
 
-- 모델링 역할 (에이전트 생성 가능)
CREATE ROLE SNOWFLAKE_INTELLIGENCE_MODELING_RL;
 
-- 읽기 전용 역할 (일반 사용자)
CREATE ROLE SNOWFLAKE_INTELLIGENCE_RO_RL;
 
-- 역할 계층 구조 설정
GRANT ROLE SNOWFLAKE_INTELLIGENCE_RO_RL       TO ROLE SNOWFLAKE_INTELLIGENCE_MODELING_RL;
GRANT ROLE SNOWFLAKE_INTELLIGENCE_MODELING_RL TO ROLE SNOWFLAKE_INTELLIGENCE_ADMIN_RL;

 

3. WH 생성 및 권한 부여

에이전트가 실행할 LLM Interface용 compute를 준비한다.

USE ROLE SYSADMIN;

-- Snowflake Intelligence 전용 웨어하우스 생성
CREATE WAREHOUSE SNOWFLAKE_INTELLIGENCE_WH
  WITH WAREHOUSE_SIZE = 'XSMALL'
  AUTO_SUSPEND = 60
  AUTO_RESUME = TRUE
 ;
 
-- 사용 권한 부여
GRANT USAGE ON WAREHOUSE SNOWFLAKE_INTELLIGENCE_WH TO ROLE SNOWFLAKE_INTELLIGENCE_RO_RL;

 

4. Snowflake Docs Extension 설치

Snowflake 공식 문서를 기반한 Cortex Knowledge Extension(CKE)을 설치하여 이를 기반으로 답변을 제공할 수 있도록 한다.
Marketplace에서 "Cortex Knowledge Extension for Snowflake Documentation"  검색 후 아래와 같이 Get 버튼 클릭하여 설치한다.

위처럼 Docs가 설치될 데이터베이스를 지정해주고 해당 데이터베이스에 접근 가능한 역할도 추가해준다. 필자는 앞서 위에서 생성한 모든 역할을 선택해주었다.

 

5. Docs 데이터베이스에 대한 권한 부여

에이전트가 Snowflake Docs(Knowledge Source)를 읽을 수 있도록 설정한다.

GRANT IMPORTED PRIVILEGES ON DATABASE SNOWFLAKE_DOCUMENTATION TO ROLE SYSADMIN;
GRANT IMPORTED PRIVILEGES ON DATABASE SNOWFLAKE_DOCUMENTATION TO ROLE SNOWFLAKE_INTELLIGENCE_ADMIN_RL;
GRANT IMPORTED PRIVILEGES ON DATABASE SNOWFLAKE_DOCUMENTATION TO ROLE SNOWFLAKE_INTELLIGENCE_MODELING_RL;
GRANT IMPORTED PRIVILEGES ON DATABASE SNOWFLAKE_DOCUMENTATION TO ROLE SNOWFLAKE_INTELLIGENCE_RO_RL;

 

6. 에이전트 생성

Agent(에이전트)는 AI와 Snowflake 데이터를 연결해주는 인터페이스라고 이해하면 된다. 즉, Snowflake 내부 데이터 + 외부 데이터(문서/Marketplace CKE 등) + LLM 모델을 결합하여 도메인에 특화된 에이전트를 만드는 것이다.

필자가 이해한 바로는 사용자가 자연어로 질문하면

→ 에이전트가 LLM을 호출하고

→ Knowledge Source를 검색하고

→ 답변을 생성하고

→ SQL도 자동으로 생성해서 실행 또는 답변한다

 

 

에이전트가 정상적으로 만들어지면 아래와 같은 화면을 볼 수 있다. 이제 여기서 에이전트가 앞서 설치한 CKE를 기반으로 답변할 수 있도록 설정해준다.

 

 

Snowflake 문서나 내부 데이터를 Assistant가 자연어로 검색할 수 있도록 연결하는 과정이다.

 

1. Schema 선택 (Cortex Search 혹은 Knowledge Extension)

  • Assistant가 검색에 사용할 Cortex Search Service 또는 Knowledge Extension을 선택하는 영역
  • SNOWFLAKE_DOCUMENTATION_SHARED 스키마 내부의
    CKE_SNOWFLAKE_DOCS_SERVICE 라는 Cortex Search Service를 사용
  • 이 서비스는 Snowflake 문서(Snowflake Documentation)를 인덱싱해둔 검색 엔진 같은 것

2. Max results

  • Assistant가 검색 결과를 반환할 때 최대 몇 개의 검색 문서를 가져올지 설정

3. ID column

  • 검색 결과에서 hyperlink(원본 문서 링크)를 만들 때 사용할 컬럼
  • 여기서는 SOURCE_URL → Snowflake 공식 문서 URL을 의미

✅ 4. Title column

  • Assistant가 검색 결과를 요약하거나 보여줄 때 사용하는 제목 컬럼
  • 여기서는 DOCUMENT_TITLE 필드를 사용

✅ 5. Search results filters

  • 결과를 특정 조건으로 필터링하는 기능
  • 예: 문서 타입, 태그, 위치 등으로 제한 가능

✅ 6. Tool details

  • Assistant 내부에서 이 검색 도구를 어떤 이름으로 표시할지 설정

 

마지막으로 오케스트레이션을 설정해보자. 이 설정은 Assistant가 어떻게 생각하고, 어떤 모델을 사용해서 답변을 제공하고, 어떤 말투로 대답할지를 결정하는 부분이다.

 1. Model 설정

Assistant가 사용할 AI 모델 종류를 선택한다. auto로 설정하면 Snowflake가 가장 적합한 모델을 자동으로 선택하지만 GPT, Claude Sonnet 같은 특정 모델을 선택할 수도 있다(각 리전에서 제공하는 모델은 상이함)

 

 2. Orchestration instructions

Assistant의 사고 방식을 제어한다. 예를 들면

  • 도구 먼저 확인 → 필요하면 검색(코텍스 서치) → SQL 생성
  • 가능하면 테이블 스키마 조회 후 정확한 컬럼 기반 SQL 작성
  • Snowflake Best Practice 준수

이런 것들을 구체적으로 지시할 수 있다.

즉, 위에서는 Cortex Search 결과(Snowflake Docs)를 참고하여 SQL을 만드는 방식으로 동작하도록 지시한 것이다.

 

3. Reponse instructions

Assistant가 어떤 말투, 언어, 스타일로 대답할지 결정한다. 아래와 같은 예시가 가능하다.

  • 항상 한국어로 답변
  • 설명은 짧게, 예시는 길게
  • 반말/존댓말 선택 가능
  • 기술적 설명은 단계별로 제공
  • SQL과 함께 실제 예제를 꼭 포함

 

※만약 아래와 같은 에러로 에이전트가 생성이 되지 않는다면 Cross-Region 기능을 활성화해야한다.

None of the preferred models are authorized or available in your region: claude-4-sonnet, claude-3-7-sonnet, claude-3-5-sonnet, openai-gpt-5, openai-gpt-4.1, openai-o4-mini. Please contact your administrator.

USE ROLE ACCOUNTADMIN;

ALTER ACCOUNT SET CORTEX_ENABLED_CROSS_REGION = 'ANY_REGION';

 

7. Snowflake Intelligence로 질의

위의 과정을 정상적으로 수행하면 모든 준비는 마쳤다. Snowsight 왼쪽 배너에서 AI & ML 탭의 Snowflake Intelligence를 클릭하면 새로운 탭이 열리게 되며 아래와 같은 화면을 볼 수 있게 된다.

 

 

간단한 질문을 해보자.

 

위처럼 cortex search를 기반으로 질문에 대한 답변을 하고 있는 것을 알 수 있다.

또한, 공식 문서를 기반으로 답변을 생성하는 것이기 때문에 어떠한 근거로 생성한 것인지 참고 URL까지 보여주고 있는 것을 확인 할 수 있다.

 

Snowflake Intelligence는 LLM(OpenAI GPT, Claude, Snowflake Arctic 등)과 CKE, 자체 내부 데이터, 정형·비정형 데이터를 활용하여 자연어 기반의 사용자 질문에 검색을 하고 LLM을 통한 답변을 생성한다. 또한 에이전트는 Role 기반으로 동작하기 때문에 특정 사용자가 접근 가능한 데이터에 한해서만 정보를 제공해 주는 등 안전한 접근 제어 또는 거버넌스도 신경 쓰고 있는 것을 확인할 수 있다.