Cortex Agents

Get started with Cortex Agents

Try it in Snowsight

Vue d’ensemble

Les Agents Cortex orchestrent les sources de données structurées et non structurées afin de fournir des insights. Ils planifient des tâches, utilisent des outils pour exécuter ces tâches, et génèrent des réponses. Les Agents utilisent Cortex Analyst (structuré) et Cortex Search (non structuré) comme outils, ainsi que des LLMs, pour analyser des données. Cortex Search extrait des insights à partir de sources non structurées, tandis que Cortex Analyst génère du SQL pour traiter des données structurées. En outre, vous pouvez utiliser des procédures stockées et des fonctions définies par l’utilisateur (UDFs) pour mettre en œuvre des outils personnalisés. Une prise en charge complète de l’identification et de l’exécution des outils permet de fournir des applications sophistiquées basées sur des données d’entreprise.

Le flux de travail comprend quatre éléments clés :

  1. Planification : Les applications passent souvent du traitement de données provenant de sources structurées à celui de sources non structurées. Prenons l’exemple d’une appli conversationnelle conçue pour répondre aux requêtes des utilisateurs. Un utilisateur professionnel peut d’abord demander à connaître les principaux distributeurs en fonction de leur chiffre d’affaires (structurées), puis passer à la recherche d’un contrat (non structurées). Les Cortex Agents peuvent analyser une requête pour orchestrer un plan et parvenir à la solution ou à la réponse.

    1. Explorer les options : Lorsque l’utilisateur pose une question ambiguë (par exemple, « Parlez-moi d’Acme Supplies »), l’agent envisage différentes permutations (produits, lieu ou personnel de vente) pour retirer l’ambiguïté et améliorer la précision.

    2. Diviser en sous-tâches : Les Cortex Agents peuvent diviser une tâche ou une requête (par exemple, « Quelles sont les différences entre les conditions contractuelles pour Acme Supplies et Acme Stationery ? ») en plusieurs parties pour une réponse plus précise.

    3. Effectuer un routage entre les outils : L’agent sélectionne l’outil adéquat, Cortex Analyst ou Cortex Search, pour garantir un accès régi et la conformité aux politiques de l’entreprise.

  2. Utilisation de l’outil : Grâce à la mise en place d’un plan, l’agent récupère les données de manière efficace. Cortex Search extrait des informations de sources non structurées, tandis que Cortex Analyst génère du SQL pour traiter des données structurées. Un support complet pour l’identification et l’exécution des outils permet de fournir des applications sophistiquées basées sur les données de l’entreprise.

  3. Réflexion : Après chaque utilisation de l’outil, l’agent évalue les résultats pour déterminer les étapes suivantes, à savoir demander des éclaircissements, itérer ou générer une réponse finale. Cette orchestration lui permet de traiter des requêtes de données complexes tout en garantissant l’exactitude et la conformité dans le périmètre sécurisé de Snowflake.

  4. Surveillance et adaptation : Après le déploiement, les clients peuvent suivre les métriques, analyser les performances et affiner les comportements pour des améliorations continues. Sur l’application client, les développeurs peuvent utiliser TruLens pour contrôler l’interaction avec l’Agent. En surveillant et en affinant en permanence les contrôles de gouvernance, les entreprises peuvent en toute confiance faire évoluer les agents AI tout en maintenant la sécurité et la conformité.

Pour consulter des tutoriels afin de vous aider pour la prise en main, voir Tutoriels des Cortex Agents.

Note

Bien que Snowflake s’efforce de fournir des réponses de haute qualité, l’exactitude des réponses LLM ou des citations fournies n’est pas garantie. Vous devez examiner toutes les réponses de l’API des Agents avant de les proposer à vos utilisateurs.

Exigences en matière de contrôle d’accès

Pour effectuer une requête auprès d’un Agent Cortex via l’API agent:run, vous pouvez utiliser un rôle qui possède le rôle SNOWFLAKE.CORTEX_USER ou SNOWFLAKE.CORTEX_AGENT_USER. Le rôle CORTEX_USER donne accès à toutes les fonctionnalités d’AI couvertes, y compris les Agents Cortex, tandis que le rôle CORTEX_AGENT_USER donne accès à la fonctionnalité d’Agents.

Note

You must use the user’s default role when calling or updating Cortex Agents. To allow another role to edit the agent, grant USAGE on the database, schema, and agent to that role.

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

Pour utiliser les Agents Cortex avec un modèle sémantique, vous devez également disposer des privilèges suivants :

Privilège

Objet

Remarques

CREATE AGENT

Schéma

Requis pour créer l’Agent Cortex.

USAGE

Cortex Search Service

Nécessaire pour exécuter les Cortex Search Services dans la requête Agents Cortex.

USAGE

Base de données, schéma, table

Nécessaire pour accéder aux objets référencés dans le modèle sémantique Agents Cortex.

OWNERSHIP

Agent

OWNERSHIP est un privilège spécial sur un objet qui est automatiquement accordé au rôle qui a créé l’objet, mais qui peut aussi être transféré à l’aide de la commande GRANT OWNERSHIP à un rôle différent par le rôle propriétaire (ou par tout rôle avec le privilège MANAGE GRANTS). Seul le propriétaire d’un schéma d’accès géré (par exemple, le rôle doté du privilège OWNERSHIP sur le schéma) ou un rôle doté du privilège MANAGE GRANTS peut accorder ou révoquer des privilèges sur les objets du schéma, y compris des autorisations à venir.

MODIFY

Agent

Nécessaire pour mettre à jour l’Agent Cortex.

MONITOR

Agent

Nécessaire pour afficher les threads, les journaux et le traçage de l’Agent Cortex.

USAGE

Agent

Nécessaire pour interroger l’Agent Cortex afin de générer des réponses.

Les requêtes adressées à l’API d’Agents Cortex doivent inclure un jeton d’autorisation. Pour plus de détails sur la manière de s’authentifier dans l’API, voir Authentification d”Snowflake REST APIs avec Snowflake. Notez que l’exemple de cette rubrique utilise un jeton de session pour s’authentifier à un compte Snowflake.

Limiter l’accès à des rôles spécifiques

Par défaut, le rôle CORTEX_USER est accordé au rôle PUBLIC. Le rôle PUBLIC est automatiquement accordé à tous les utilisateurs et à tous les rôles. Si vous ne souhaitez pas que tous les utilisateurs disposent de ce privilège, vous pouvez révoquer l’accès au rôle PUBLIC et accorder l’accès à des rôles spécifiques. Pour plus d’informations, voir Privilèges LLM Cortex.

Pour fournir un accès sélectif aux Agents Cortex afin que seul un sous-ensemble d’utilisateurs ait accès à cette fonctionnalité, utilisez le rôle CORTEX_AGENTS_USER.

Limiter l’accès en utilisant le rôle d’utilisateur Agents Cortex

Pour fournir un accès sélectif aux Agents Cortex à des utilisateurs spécifiques, utilisez le rôle de base de données SNOWFLAKE.CORTEX_AGENT_USER. Ce rôle inclut les privilèges nécessaires pour appeler l’API d’Agents Cortex.

Important

Si vos rôles d’utilisateur disposent du rôle CORTEX_USER, vous devez révoquer l’accès au rôle CORTEX_USER. Pour révoquer le rôle de base de données CORTEX_USER à partir de vos rôles d’utilisateur, exécutez la commande suivante à l’aide du rôle ACCOUNTADMIN :

REVOKE DATABASE ROLE SNOWFLAKE.CORTEX_USER FROM ROLE agent;
Copy

Pour fournir un accès aux Agents Cortex, utilisez le rôle ACCOUNTADMIN pour effectuer les actions suivantes :

  1. Accordez le rôle de base de données SNOWFLAKE.CORTEX_AGENT_USER à un rôle personnalisé.

  2. Attribuez ce rôle personnalisé aux utilisateurs.

Note

Vous ne pouvez pas accorder de rôles de base de données directement aux utilisateurs. Pour plus d’informations, voir GRANT DATABASE ROLE.

L’exemple suivant :

  1. Crée le rôle personnalisé cortex_agent_user_role.

  2. Lui octroie le rôle de base de données CORTEX_AGENT_USER.

  3. Assigne ce rôle à example_user.

USE ROLE ACCOUNTADMIN;
CREATE ROLE cortex_agent_user_role;
GRANT DATABASE ROLE SNOWFLAKE.CORTEX_AGENT_USER TO ROLE cortex_agent_user_role;

GRANT ROLE cortex_agent_user_role TO USER example_user;
Copy

Vous pouvez également accorder l’accès aux Agents Cortex par le biais de rôles existants. Par exemple, si vous avez un rôle agent utilisé par les agents de votre organisation, vous pouvez accorder l’accès avec une seule instruction GRANT :

GRANT DATABASE ROLE SNOWFLAKE.CORTEX_AGENT_USER TO ROLE agent;
Copy

Authentification

Les APIs REST de Snowflake prennent en charge l’authentification par jeton d’accès programmatique (PATs), l’authentification par paire de clés à l’aide de JSON Web Tokens (JWTs), et OAuth. Pour plus de détails, voir Authentification d”Snowflake REST APIs avec Snowflake.

Important

Les Agents Cortex utilisent des modèles qui peuvent ne pas être disponibles dans toutes les régions. Pour accéder à ces modèles, vous devrez activer l’inférence interrégionale, si possible. Pour plus d’informations, consultez Disponibilité régionale.

Considérations relatives aux clients

Cortex Agents incur charges for the orchestration and use of tools.

  • The orchestration usage is charged based on the tokens used.

  • Cortex Analyst is charged per token.

  • Cortex Search charges depend on the size of the index and the time it has persisted.

  • Warehouse charges depend on the size of the warehouse and how long it runs.

For more information, see the Snowflake Service Consumption Table. Also, use of custom tools may incur warehouse costs.

Modèles

Vous pouvez utiliser les modèles suivants avec les Agents Cortex. Si le modèle n’est pas disponible dans votre région locale, vous devez utiliser l’inférence interrégionale.

  • auto

  • claude-sonnet-4-5

  • claude-4-sonnet

  • claude-3-7-sonnet

  • claude-3-5-sonnet

  • openai-gpt-5

  • openai-gpt-4-1

Lors de la création d’un agent, nous vous recommandons de sélectionner auto pour le modèle. Avec cette option, Cortex sélectionne automatiquement le modèle de la meilleure qualité pour votre compte. La qualité s’améliore automatiquement à mesure que de nouveaux modèles deviennent disponibles.

Concepts des Agents Cortex

Les Agents Cortex utilisent Cortex Analyst, Cortex Search et les outils personnalisés pour planifier des tâches et générer des réponses. Vous pouvez influencer l’orchestration avec des instructions. Vous pouvez également spécifier des attributs pour sélectionner dynamiquement un outil en fonction d’une logique métier.

Lors d’une interaction, les agents utilisent un thread pour maintenir le contexte. Un thread permet de récupérer facilement l’ensemble du contexte de la conversation pour l’utiliser dans la logique d’application.

Vous pouvez recueillir les commentaires des utilisateurs finaux au fur et à mesure que vous itérez et affinez l’agent. Un mécanisme de retour explicite (évaluation positive ou négative), associé à des commentaires subjectifs (texte), vous permet de capturer les entrées des utilisateurs tout au long du cycle de vie de l’agent.

Objet d’agent

La configuration de l’agent comprend l’ensemble des métadonnées, des paramètres d’orchestration et des détails d’outil qui sont stockés dans l’objet d’agent. Vous pouvez utiliser l’objet d’agent pour interagir avec l’agent.

Threads

Les threads conservent le contexte de vos interactions avec l’agent, de sorte que vous n’avez pas à maintenir le contexte sur l’application cliente. Pour utiliser les threads, vous créez un objet de thread et faites référence à l’ID du thread dans les interactions de l’agent.

Orchestration

Les Agents Cortex utilisent une orchestration basée sur un LLM pour planifier des tâches et générer des réponses. Vous pouvez contrôler l’orchestration avec les paramètres suivants :

Modèles

Pour plus d’informations sur les modèles que vous pouvez utiliser avec les Agents Cortex pour l’orchestration, consultez Modèles.

Instructions

Les instructions relatives aux réponses vous permettent de configurer les réponses de l’agent en fonction de la forme et de la tonalité de votre choix.

Exemples de questions

Vous pouvez utiliser ces questions pour alimenter la conversation dans votre application cliente. Il s’agit de questions courantes, qui peuvent aider les utilisateurs à démarrer l’interaction.

Outils

Les Agents Cortex peuvent orchestrer les sources de données structurées et non structurées. De plus, les outils personnalisés permettent aux agents d’interagir avec d’autres systèmes backend ou de mettre en œuvre une logique personnalisée.

Vue sémantique Cortex Analyst

Vous pouvez utiliser Cortex Analyst pour créer des requêtes SQL à partir de la langue naturelle. Pour utiliser Cortex Analyst, vous devez créer un modèle sémantique. Pour plus d’informations, voir Créer un modèle sémantique.

Cortex Search Service

Utilisez Cortex Search pour rechercher dans vos données. Pour plus d’informations, voir CREATE CORTEX SEARCH SERVICE.

Note

Le DEFAULT_ROLE de l’utilisateur effectuant la requête doit avoir le privilège USAGE sur le Cortex Search Service, ainsi que sur la base de données et le schéma dans lesquels il réside.

Outils personnalisés

Vous pouvez utiliser des procédures stockées et des fonctions définies par l’utilisateur (UDF) pour mettre en œuvre une logique métier personnalisée en tant qu’outil. Pour plus d’informations, voir Vue d’ensemble des procédures stockées et Vue d’ensemble des fonctions définies par l’utilisateur.

Raisonnement et réflexion

L’agent émet des événements tout au long de l’interaction, ce qui fournit des insights sur le processus de raisonnement. Ces étapes couvrent la répartition initiale des tâches, leur séquençage en sous-tâches, et la sélection des outils pour les sous-tâches. En outre, l’agent expose ses réflexions sur les résultats des outils et sur la manière dont ceux-ci influencent l’orchestration ultérieure.

Surveillance et itération

Vous pouvez recueillir le retour de l’utilisateur final sous forme d’évaluation (positive ou négative), associée à des entrées subjectives (sous forme de texte). Celles-ci peuvent être utilisées pour affiner et améliorer l’agent au cours de son cycle de vie.

Interagir avec les agents

Les Agents Cortex prennent en charge deux méthodes distinctes d’interaction avec les agents via l’API REST :

  • Configurer un objet d’agent pour interagir avec l’agent : Avec cette méthode, vous configurez d’abord un objet d’agent qui peut être réutilisé pour l’ensemble de l’interaction. La configuration d’un objet d’agent simplifie le code client et permet CI/CD pour les applications prêtes à l‘emploi en entreprise.

  • Interagir sans objet d’agent : Avec cette méthode, vous devez transmettre la configuration de l’agent dans le cadre de chaque requête d’interaction. L’interaction sans objet d’agent vous permet d’essayer rapidement des cas d’utilisation et d’expérimenter différents scénarios.

Pour plus d’informations sur ces méthodes, consultez Configurer des agents et interagir avec.