Cortex Agents¶
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 :
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.
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.
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.
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.
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.
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.
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.
Pour utiliser les Agents Cortex avec un modèle sémantique, vous devez également disposer des privilèges suivants :
Privilège |
Objet |
|---|---|
CREATE AGENT |
Schéma dans lequel vous prévoyez de créer l’Agent Cortex. |
USAGE |
Cortex Search Services mentionnés dans la requête des Agents Cortex. |
USAGE |
Base de données, schéma et tables référencés dans le modèle sémantique des Agents Cortex. |
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 requis.
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;
Pour fournir un accès aux Agents Cortex, utilisez le rôle ACCOUNTADMIN pour effectuer les actions suivantes :
Accordez le rôle de base de données SNOWFLAKE.CORTEX_AGENT_USER à un rôle personnalisé.
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 :
Crée le rôle personnalisé
cortex_agent_user_role.Lui octroie le rôle de base de données CORTEX_AGENT_USER.
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;
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;
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¶
Dans la prévisualisation, les Agents Cortex n’ont aucune considération de coût autre que celle associée aux fonctionnalités sous-jacentes Cortex Search et Cortex Analyst. Les services Cortex Search et Cortex Analyst sont soumis à des coûts selon les détails listés dans le Tableau de consommation du service Snowflake. De plus, l’utilisation d’outils personnalisés peut entraîner des coûts d’entrepôt.
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.
claude-4-sonnetclaude-3-7-sonnetclaude-3-5-sonnetopenai-gpt-5
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.