IS_AGENT_ACTIVATED

IS_AGENT_ACTIVATED (SYS_CONTEXT 함수)

현재 실행 컨텍스트에 에이전트가 활성화되어 있으면 VARCHAR 값 'TRUE'를, 활성화된 에이전트가 없으면 'FALSE'를 반환해요.

출처: Snowflake SQL Reference - IS_AGENT_ACTIVATED

본문

구문

SYS_CONTEXT(
  'SNOWFLAKE$CURRENT' ,
  'IS_AGENT_ACTIVATED'
)

인자

'SNOWFLAKE$CURRENT'

  • 현재 실행 컨텍스트에 대한 컨텍스트 정보를 반환하는 함수를 호출하고 싶다고 지정해요.

'IS_AGENT_ACTIVATED'

  • IS_AGENT_ACTIVATED 함수를 호출해요. 이 함수는 추가 인자를 받지 않고, 현재 실행 컨텍스트에서 에이전트가 활성화되어 있는지 여부를 반환해요.

반환 값

이 함수는 다음 VARCHAR 값 중 하나를 반환해요.

  • 현재 실행 컨텍스트에 에이전트가 활성화되어 있으면 'TRUE'.
  • 활성화된 에이전트가 없으면 'FALSE'.

함수는 다음 시나리오에서 'TRUE'를 반환해요.

  • Snowflake 1자사(당사) 에이전트가 쿼리를 실행하는 경우. 여기에는 다음이 포함돼요: 명명된 Cortex Agent(데이터 에이전트). Snowflake CoCo 클라이언트(CLI, 데스크톱 또는 웹) 또는 REST API를 통해 호출된 상태 비저장 lite 에이전트. Snowflake CoWork를 통해 시작된 쿼리.
  • 외부 에이전트가 쿼리를 실행하는 경우. 여기에는 다음이 포함돼요: 관리형 MCP 서버를 통해 Snowflake에 연결하는 에이전트. SERVICE_AGENT 사용자가 연 세션(자동으로 에이전트 활성 상태). IS_AGENTIC = TRUE로 구성된 Snowflake OAuth 커스텀 클라이언트 통합 또는 External OAuth 통합을 사용하는 세션.

Snowflake가 에이전트 세션을 식별·감사·관리하는 방법에 대한 개요는 Agent identity 문서를 참고하세요.

이 반환 값을 BOOLEAN 값 TRUE 또는 FALSE와 비교하려면 반환 값을 BOOLEAN으로 캐스팅하세요. 예를 들어:

SELECT SYS_CONTEXT('SNOWFLAKE$CURRENT', 'IS_AGENT_ACTIVATED')::BOOLEAN = TRUE;

2026_06 동작 변경 번들

계정에서 2026_06 동작 변경 번들을 활성화하고 SYS_CONTEXT를 통해 이 함수를 호출하면, VARCHAR 문자열 'TRUE' 또는 'FALSE' 대신 BOOLEAN을 반환해요.

기존 캐스팅(예: ::BOOLEAN 또는 ::NUMBER)은 계속 그대로 동작해요.

네임스페이스별 모든 속성과 함수의 반환 타입은 SYS_CONTEXT return types 문서를 참고하세요.

예시

다음 예시는 현재 실행 컨텍스트에 에이전트가 활성화되어 있는지 확인해요.

SELECT SYS_CONTEXT('SNOWFLAKE$CURRENT', 'IS_AGENT_ACTIVATED');

에이전트 접근을 제한하는 마스킹 정책

IS_AGENT_ACTIVATED를 마스킹 정책에서 사용해 에이전트가 쿼리를 실행할 때 민감 데이터를 마스킹할 수 있어요.

CREATE OR REPLACE MASKING POLICY mask_ssn_from_agents
  AS (val STRING) RETURNS STRING ->
  CASE
    WHEN SYS_CONTEXT('SNOWFLAKE$CURRENT', 'IS_AGENT_ACTIVATED') = 'TRUE'
      THEN '***-**-' || RIGHT(val, 4)
    ELSE val
  END;

ALTER TABLE hr.employees
  MODIFY COLUMN ssn
  SET MASKING POLICY mask_ssn_from_agents;

에이전트가 시작한 쿼리가 ssn 열에 접근하면 마지막 네 자리만 보여요. 직접 사용자 쿼리는 전체 값을 볼 수 있어요.

더 알아보기