빌드 에이전트

다음 메서드를 사용하여 Snowflake Intelligence 용 에이전트를 빌드할 수 있습니다.

다음 섹션에서는 SQL 명령을 사용하여 Snowflake Intelligence 용 에이전트를 빌드하는 방법에 대한 정보를 제공합니다. 각 섹션에서는 에이전트 구성의 다른 부분에 대한 정보를 제공합니다. 마지막 섹션에서는 이 항목에서 설명하는 모든 구성 요소를 포함하는 에이전트 구성의 예제를 보여줍니다.

에이전트를 생성하는 다른 방법과 사용 가능한 옵션에 대한 자세한 내용은 에이전트 구성 및 상호 작용 섹션을 참조하세요.

에이전트 구조

에이전트는 다음 부분으로 구성됩니다.

  • 에이전트 동작의 기반을 제공하는 기본 모델

  • 의도를 해석하고, 올바른 도구를 선택하며, 일련의 작업을 계획하는 모델(오케스트레이터)

  • 에이전트 동작 지침

  • 에이전트가 사용할 도구

  • 도구에 대한 리소스

다음 섹션에서는 모델 선택 및 도구 구성에 대한 정보를 제공합니다. 이 예제에서는 의미 체계 뷰, Cortex Search Service, 사용자 지정 도구를 사용하여 답변을 제공합니다. 이러한 도구를 전혀 사용하지 않는 기본 에이전트를 생성할 수는 있지만, 해당 기본 에이전트는 답변을 제공하기 위해 기본 모델만 사용할 수 있습니다. 결과적으로 에이전트는 해당 Snowflake 계정 내 데이터에 액세스할 수 없으며 답변을 위한 컨텍스트가 제한됩니다.

에이전트의 다른 구성 요소에 대한 자세한 내용은 Cortex Agents 섹션을 참조하세요.

전제 조건

Cortex Agent를 생성하려면 다음 권한이 있는 역할을 사용해야 합니다.

권한

오브젝트

참고

CREATE AGENT

스키마

Cortex Agent를 생성하는 데 필요합니다.

USAGE

데이터베이스, 스키마

지정된 데이터베이스 및 스키마에서 Cortex Agent를 생성하는 데 필요합니다.

다음 코드는 Cortex Agent를 생성하는 데 필요한 권한을 부여합니다.

GRANT USAGE ON DATABASE <database_name> to ROLE <role_name>;
GRANT USAGE ON SCHEMA <database_name>.<schema_name> to ROLE <role_name>;
GRANT CREATE AGENT ON SCHEMA <database_name>.<schema_name> to ROLE <role_name>;
Copy

Cortex Agent를 생성하는 데 필요한 권한 외에도, 에이전트를 특정 도구에 연결하려면 다음 전제 조건이 필요합니다.

  • 에이전트에 연결하기 위한 의미 체계 뷰

    의미 체계 뷰 생성에 대한 자세한 내용은 의미 체계 뷰 개요 섹션을 참조하세요.

  • 에이전트에 연결하기 위한 Cortex Analyst 도구

    Cortex Analyst 도구 생성에 대한 자세한 내용은 Cortex Analyst 섹션을 참조하세요.

  • 에이전트에 연결할 데이터베이스의 비정형 데이터

  • 에이전트에 연결하기 위한 Cortex Search 도구

    Cortex Search 도구 생성 방법에 대한 자세한 내용은 Cortex Search 섹션을 참조하세요.

  • 에이전트에 연결하기 위한 사용자 지정 도구

    사용자 정의 함수(UDFs) 및 저장 프로시저를 생성하여 사용자 지정 도구로 사용하는 것에 대한 자세한 내용은 함수와 프로시저로 Snowflake 확장하기 섹션을 참조하세요.

에이전트에 도구를 연결하려면 에이전트를 생성하는 데 사용되는 역할에 다음 권한이 있어야 합니다.

권한

오브젝트

참고

USAGE

Cortex Search Service

Cortex Agent에 Cortex Search Service를 추가하는 데 필요합니다.

SELECT

테이블 및 뷰

에이전트의 의미 체계 뷰 및 모델에서 참조되는 오브젝트에 액세스하는 데 필요합니다.

USAGE

도구

에이전트에 연결할 모든 사용자 지정 도구에 액세스하는 데 필요합니다. 예를 들어, 사용자 지정 도구가 저장 프로시저인 경우 프로시저에 대한 USAGE 권한이 있어야 합니다.

USAGE

의미 체계 뷰 및 모델

에이전트에 연결할 의미 체계 뷰 및 모델에 액세스하는 데 필요합니다.

에이전트 구성 기본 사항

에이전트를 생성할 때 이름, 설명, 모델 등 에이전트에 대한 정보를 지정해야 합니다. 에이전트가 사용할 수 있는 도구와 에이전트가 액세스할 수 있는 리소스를 지정할 수도 있습니다. 이러한 리소스는 CREATE AGENT 명령의 FROM SPECIFICATION 절에서 YAML 사양으로 전달됩니다.

다음 권장 사항은 해당 구성에 대한 모범 사례를 제공합니다.

에이전트 범위 좁히기: 도구를 추가하거나 지침을 작성하기 전에 에이전트의 존재 이유, 해당 역할, 답변해야 하는 구체적인 질문을 정의합니다. 이 단계는 도구 선택에서 성능 및 신뢰에 이르기까지 모든 후속 단계를 형성합니다. Snowflake는 에이전트의 범위를 구체적이고 가치가 높은 사용 사례로 좁힐 것을 권장합니다.

에이전트가 한 영역에서 신뢰할 수 있는 것으로 입증되면 다른 영역에 대해 패턴을 복제할 수 있습니다. 예를 들어, 매장의 최근 판매 및 마케팅 데이터를 분석하는 에이전트와 소매업체에 제안할 최고의 SKUs를 추천하는 다른 에이전트가 있을 수 있습니다.

신중하게 도구 수 선택: 모든 에이전트는 필요한 도구에만 액세스할 수 있어야 합니다. 이를 확인하려면 에이전트가 목적을 달성하는 데 필요한 문서 또는 데이터를 고려합니다. 에이전트가 비정형 데이터에 액세스해야 하는 경우 Cortex Search 를 사용합니다. 에이전트가 정형 데이터에 액세스해야 하는 경우 Cortex Analyst 를 사용합니다. 에이전트에 다른 도구가 필요한 경우 사용자 지정 도구를 사용할 수 있습니다.

유용한 도구 설명 작성: 이러한 설명은 에이전트가 도구의 기능과 사용 방법을 이해하는 데 도움이 됩니다. 명확하지 않은 도구 설명은 계단식 오류를 발생시키고 “할루시네이션(hallucination)”을 유발할 수 있습니다.

유용한 도구 설명을 생성하려면 다음 지침을 따릅니다.

  • 도구의 도메인(“고객”, “영업”)과 함수(“Analytics”, “Search”)를 명시하는 명확하고 구체적인 도구 이름을 추가합니다.

  • 에이전트에 다음 사항을 알려주는 목적 중심의 도구 설명을 작성합니다.

    • 도구의 기능

    • 액세스하는 데이터

    • 사용하는 경우

    • 사용하지 않는(NOT) 경우

  • 도구의 예상 입력에 대해 명시해야 합니다. 도구에 대한 모호한 입력은 잘못된 도구 호출과 오류로 이어집니다.

    • 구체적으로 설명하십시오.

    • 데이터 형식을 지정합니다.

    • 명확한 데이터 지침을 제공합니다.

    • 기본 지침을 제공합니다.

    • 일관된 용어를 사용합니다.

더 많은 에이전트 구성 권장 사항은 `Cortex Agent 빌드 모범 사례 <https://www.snowflake.com/en/developers/guides/best-practices-to-building-cortex-agents/>`_를 참조하세요.

모델 선택

에이전트를 생성할 때 모델에 대해 auto`를 선택하는 것이 좋습니다. 이 옵션을 사용하면 Cortex가 계정에 대해 가장 높은 품질의 모델을 자동으로 선택하며, 새 모델을 사용할 수 있게 되면 품질이 자동으로 향상됩니다. 사용 가능한 모델에 대한 자세한 내용은 :ref:`label_snowflake_intelligence_models 섹션을 참조하세요.

다음 예제에서는 에이전트의 모델을 지정하는 방법을 보여줍니다.

models:
  orchestration: auto
Copy

리전 간 추론

중요

리전 간 추론은 기본적으로 비활성화되어 있습니다. 전체 LLMs 세트에 액세스하고 단일 리전 내의 제한을 방지하려면 리전 간 추론을 사용하는 것이 좋습니다.

로컬 리전에서 사용할 수 없는 모델을 사용하는 경우 Cortex 리전 간 추론을 사용해야 합니다. 이 설정을 사용하면 기본 리전과 다른 리전에서 추론 요청을 처리할 수 있습니다. 리전 간 추론을 위한 매개 변수는 사용자 또는 세션 수준이 아닌 ACCOUNTADMIN 역할을 통해 계정 수준에서만 설정할 수 있습니다.

매개 변수를 설정하려면 다음 명령을 사용합니다.

ALTER ACCOUNT SET CORTEX_ENABLED_CROSS_REGION = 'ANY_REGION';
Copy

Cortex 리전 간 추론 구성에 대한 자세한 내용은 리전 간 추론 섹션을 참조하세요.

Cortex Analyst를 사용하여 의미 체계 뷰 연결(정형 데이터)

Snowflake Intelligence는 에이전트에 데이터를 쿼리하거나 해석하는 방법을 알려주는 지침이 포함된 정형 데이터 유형인 의미 체계 뷰를 지원합니다. Cortex Agent는 Cortex Analyst를 통해 자연어 요청을 SQL 쿼리로 변환하여 의미 체계 뷰에서 정형 데이터를 검색합니다. 에이전트는 여러 의미 체계 뷰에 걸쳐 라우팅하여 응답을 제공할 수 있습니다.

각 의미 체계 뷰는 유사한 테이블 세트를 포함해야 합니다. 지정하지 않은 경우 항상 지난 3개월 동안의 날짜 필터를 추가하거나 항상 내부 계정을 제외하는 등 데이터별 기본값을 설정할 수 있습니다.

의미 체계 뷰를 도구 리소스의 일부로 지정하여 의미 체계 뷰를 에이전트에 연결할 수 있습니다. 다음 예제에서는 의미 체계 뷰를 에이전트에 연결하는 방법과 의미 체계 뷰에서 정형 데이터를 검색하기 위해 Cortex Analyst 도구를 지정하는 방법을 보여줍니다.

tools:
  - tool_spec:
      type: "cortex_analyst_text_to_sql"
      name: "<your cortex analyst tool name>"
      description: "<clear and specific tool description>"

tool_resources:
  <your cortex analyst tool name>:
    semantic_view: "<db>.<schema>.<semantic_view>"
Copy

의미 체계 뷰의 모범 사례

의미 체계 뷰는 Snowflake Intelligence 가 데이터를 이해하고 쿼리하는 방식을 강화합니다. 잘 설계된 의미 체계 뷰는 정확도를 개선하고, 대기 시간을 줄이며, 사용자 신뢰를 구축합니다. 다음 모범 사례는 정확하고 효율적인 의미 체계 뷰를 생성하는 데 도움이 되도록 설계되었습니다.

소규모로 집중적으로 시작: 단일 비즈니스 도메인에서 5~10개의 테이블로 시작합니다. 데이터 구조가 아닌 사용 사례(판매 실적, 고객 지원 메트릭)별로 구성합니다. 정확도를 확인한 후 규모를 확장합니다.

명확한 설명 작성: 설명은 가장 중요한 요소입니다. 모든 테이블과 열에는 해당 이름뿐만 아니라 데이터가 나타내는 내용을 설명하는 비즈니스 친화적인 설명이 있어야 합니다. 계산 논리, 비즈니스 정의 및 레거시 용어와 같은 컨텍스트를 포함합니다.

검증된 쿼리 추가: 다음은 검증된 SQL과 쌍을 이루는 질문의 예제입니다. 유사한 질문에 대한 정확도를 높이고, 대기 시간을 줄이며, 시스템이 비즈니스 패턴을 학습하는 데 도움이 됩니다. 가장 일반적인 질문을 다루는 10~20개의 쿼리로 시작하여 실제 사용량에 따라 더 추가합니다.

메트릭 및 필터 정의: 재사용 가능한 계산(예: 총 수익 또는 평균 주문 금액) 및 일반적인 조건(예: 활성 고객 또는 현재 회계 연도)을 사전 정의합니다. 이를 통해 일관성을 크게 개선할 수 있습니다.

비즈니스 논리에 사용자 지정 지침 사용: 데이터 이상 징후, 회계 연도 정의, 기본 필터 또는 도메인별 규칙에 대한 SQL 생성 지침을 추가합니다. “날짜별 필터링”보다는 “날짜 필터가 제공되지 않으면 기본값은 지난 12개월로 설정됨”과 같이 구제적으로 명시합니다.

텍스트 일치를 위해 Cortex Search 활성화: 제품 이름, 고객 이름 또는 회사 이름과 같이 카디널리티가 높은 텍스트 열의 경우 Cortex Search는 사용자 입력이 데이터와 정확히 일치하지 않을 때 퍼지 일치를 활성화합니다.

테스트 및 반복: 대표적인 질문으로 구성된 평가 세트를 만들고, 정확도를 측정하며, 실제 사용 패턴을 기반으로 구체화합니다. 제안을 정기적으로 검토하여 검증된 쿼리를 추가하고 시간이 지남에 따라 설명을 개선합니다.

의미 체계 뷰 생성 모범 사례에 대한 자세한 내용은 `Cortex Analyst의 의미 체계 뷰 모범 사례 <https://www.snowflake.com/en/developers/guides/best-practices-semantic-views-cortex-analyst/>`_를 참조하세요.

Cortex Search 연결(비정형 데이터)

비정형 데이터를 처리하려면 도구 리소스의 일부로 YAML 사양에서 Cortex Search 도구를 지정하여 Cortex Search 도구를 에이전트에 연결하면 됩니다. Cortex Search 서비스는 의미 체계 검색을 사용하여 비정형 데이터 소스에서 문서와 레코드를 검색합니다. Cortex Search의 두 가지 주요 사용 사례는 RAG(retrieval augmented generation) 및 엔터프라이즈 검색입니다 Cortex Search Service 생성 방법에 대한 정보는 Cortex Search 섹션을 참조하세요. 공유된 Cortex Knowledge Extension(CKE)도 사용할 수 있습니다.

Cortex Search 도구를 에이전트에 연결할 때 매개 변수와 예상 값에 대한 다음 정보를 포함하는 것이 특히 중요합니다.

  • 유형 및 형식(예제 포함)

  • 필수 또는 선택 사항(기본값 포함)

  • 유효한 값 또는 제약 조건(열거형, 범위, 형식)

  • 다른 매개 변수와의 관계(종속성, 충돌)

  • 값을 얻는 방법(특히 IDs의 경우)

다음 예제에서는 Cortex Search 도구를 에이전트에 연결하는 방법과 YAML 사양에서 Cortex Search 도구를 지정하는 방법을 보여줍니다.

tools:
  - tool_spec:
      type: "cortex_search"
      name: "<your cortex search tool name>"
      description: "<clear and specific tool description>"

tool_resources:
  <your cortex search tool name>:
    name: "<db>.<schema>.<search_service_name>"
    max_results: "5"
    filter:
      "@eq":
        region: "North America"
    title_column: "<title_name>"
    id_column: "<column_name>"
Copy

사용자 지정 도구

Snowflake Intelligence는 사용자 지정 비즈니스 논리를 구현하는 데 사용할 수 있는 사용자 정의 함수 또는 저장 프로시저인 사용자 지정 도구를 지원합니다. 도구 리소스의 일부로 YAML 사양에서 사용자 지정 도구를 지정하여 사용자 지정 도구를 에이전트에 연결할 수 있습니다.

다음 예제에서는 사용자 지정 도구를 에이전트에 연결하는 방법과 YAML 사양에서 사용자 지정 도구를 지정하는 방법을 보여줍니다.

tools:
  - tool_spec:
      type: "custom_tool"
      name: "<your custom tool name>"
      description: "<clear and specific tool description>"

tool_resources:
  <your custom tool name>:
    user-defined-function-argument: "argument1"
Copy

에이전트 생성하기

  • 모든 도구와 구성 요소를 결합하여 SQL을 통해 에이전트를 생성합니다.

    CREATE OR REPLACE AGENT <agent_name>
        COMMENT = 'agent level comment'
        PROFILE = '{"display_name": "My Business Assistant", "avatar":  "business-icon.png", "color": "blue"}'
        FROM SPECIFICATION
        $$
        models:
        orchestration: claude-4-sonnet
    
        orchestration:
        budget:
            seconds: 30
            tokens: 16000
    
        instructions:
        response: "You will respond in a friendly but concise manner"
        orchestration: "For any revenue question, use Analyst; for policy questions, use Search"
        system: "You are a friendly agent that helps with business questions"
        sample_questions:
            - question: "What was our revenue last quarter?"
            answer: "I'll analyze the revenue data using our financial database."
    
        tools:
        - tool_spec:
            type: "cortex_analyst_text_to_sql"
            name: "<your cortex analyst tool name>"
            description: "<clear and specific tool description>"
        - tool_spec:
            type: "cortex_search"
            name: "<your cortex search tool name>"
            description: "<clear and specific tool description>"
        - tool_spec:
            type: "data_to_chart"
            name: "data_to_chart"
            description: "Generates visualizations from data"
    
        tool_resources:
        <your cortex analyst tool name>:
            semantic_view: "<db>.<schema>.<semantic_view>"
        <your cortex search tool name>:
            name: "<db>.<schema>.<search_service_name>"
            max_results: "5"
            filter:
            "@eq":
                region: "North America"
            title_column: "<title_name>"
            id_column: "<column_name>"
        $$;
    
    Copy

기존 에이전트 수정하기

도구 추가 및 기타 세부 정보 업데이트를 포함하여 기존 에이전트의 구성을 수정하는 방법에 대한 지침은 도구 추가 섹션을 참조하세요.