Categories:

Context functions (General)

IS_AGENT_ACTIVATED (SYS_CONTEXT function)

Returns the VARCHAR value 'TRUE' if an agent is active in the current execution context.

See also:

SYS_CONTEXT (SNOWFLAKE$CURRENT namespace)

Syntax

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

Arguments

'SNOWFLAKE$CURRENT'

Specifies that you want to call a function to return context information about the current execution context.

'IS_AGENT_ACTIVATED'

Calls the IS_AGENT_ACTIVATED function. This function takes no additional arguments and returns whether any agent is active in the current execution context.

Returns

The function returns one of the following VARCHAR values:

  • 'TRUE' if any agent is active in the current execution context.
  • 'FALSE' if no agent is active.

The function returns 'TRUE' in the following scenarios:

  • A Snowflake first-party agent is executing the query, including:
    • A named Cortex Agent (data agent)
    • A stateless lite agent invoked through a Snowflake CoCo client (CLI, Desktop, or web) or the REST API
    • A query initiated through Snowflake CoWork
  • An external agent is executing the query, including:
    • An agent that connects to Snowflake through a managed MCP server
    • A session opened by a SERVICE_AGENT user, which is automatically agent-active
    • A session using a custom OAuth integration configured with IS_AGENTIC = TRUE

To compare this return value against the BOOLEAN value TRUE or FALSE, cast the return value to BOOLEAN. For example:

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

2026_06 behavior change bundle

When the 2026_06 behavior change bundle is enabled in your account, when you call this function through SYS_CONTEXT, it returns BOOLEAN instead of the VARCHAR string 'TRUE' or 'FALSE'.

Existing casts, such as ::BOOLEAN or ::NUMBER, continue to work unchanged.

For the return type of every property and function by namespace, see SYS_CONTEXT return types.

Examples

The following example checks whether any agent is active in the current execution context:

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

Masking policy to restrict agent access

You can use IS_AGENT_ACTIVATED in a masking policy to mask sensitive data when an agent runs a query:

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;

When an agent-initiated query accesses the ssn column, only the last four digits are visible. Direct user queries see the full value.