CREATE AGENT¶
Crée un nouvel objet d’Agent Cortex avec les attributs et la spécification spécifiés.
- Voir aussi :
Syntaxe¶
CREATE [ OR REPLACE ] AGENT [ IF NOT EXISTS ] <name>
[ COMMENT = '<comment>' ]
[ PROFILE = '<profile_object>' ]
FROM SPECIFICATION
$$
<specification_object>
$$;
Paramètres requis¶
nameChaîne qui indique l’identificateur (c’est-à-dire le nom) du livre ; doit être unique pour le schéma dans lequel le livre est créé.
De plus, l’identificateur doit commencer par un caractère alphabétique et ne peut pas contenir d’espaces ou de caractères spéciaux à moins que toute la chaîne d’identificateur soit délimitée par des guillemets doubles (par exemple,
"My object"). Les identificateurs entre guillemets doubles sont également sensibles à la casse.Pour plus d’informations, voir Exigences relatives à l’identificateur.
Paramètres facultatifs¶
COMMENT = commentDescription de l’agent.
PROFILE = profile_objectSpécifie la valeur OBJECT contenant des informations sur le profil de l’agent, telles que le nom d’affichage, l’avatar et la couleur. Pour sérialiser l’
profile_objecten une chaîne, procédez comme suit :'{"display_name": "<display_name>", "avatar": "<avatar>", "color": "<color>"}'Le tableau suivant décrit les paires clé-valeur de cet objet :
Clé
Type
Description
display_nameChaîne
Nom d’affichage de l’agent.
avatarChaîne
Nom ou identificateur du fichier image avatar.
colorChaîne
Thème de couleur de l’agent (comme « bleu », « vert », « rouge »).
FROM SPECIFICATION $$ specification_object $$Spécifie la valeur VARCHAR contenant les paramètres d’un agent sous forme d’objet YAML.
L’objet YAML doit avoir la structure suivante :
models: orchestration: <model_name> orchestration: budget: seconds: <number_of_seconds> tokens: <number_of_tokens> instructions: response: '<response_instructions>' orchestration: '<orchestration_instructions>' system: '<system_instructions>' sample_questions: - question: '<sample_question>' answer: '<sample_answer>' ... tools: - tool_spec: type: '<tool_type>' name: '<tool_name>' description: '<tool_description>' input_schema: type: 'object' properties: <property_name>: type: '<property_type>' description: '<property_description>' required: <required_property_names> ... tool_resources: <tool_name>: <resource_key>: '<resource_value>' ... ...
Le tableau suivant décrit les paires clé-valeur de cet objet :
Clé
Type
Description
modelsConfiguration facultative du modèle pour l’agent. Inclut le modèle d’orchestration (par exemple, claude-4-sonnet). S’il n’est pas fourni, un modèle est automatiquement sélectionné. Actuellement disponible uniquement pour l’étape d’
orchestration.orchestrationConfiguration facultative de l’orchestration, y compris les contraintes budgétaires (par exemple, secondes, jetons).
instructionsInstructions facultatives relatives au comportement de l’agent, y compris la réponse, l’orchestration, le système et les exemples de questions.
toolstableau d”Tool
Liste facultative des outils disponibles pour l’agent à utiliser. Chaque outil inclut une
tool_specavec un type, un nom, une description et un schéma d’entrée. Les outils peuvent avoir une configuration correspondante danstool_resources.tool_resourcescarte de ToolResource
Configuration facultative pour chaque outil référencé dans le tableau des outils. Les clés doivent correspondre au nom de l’outil correspondant.
Exigences en matière de contrôle d’accès¶
Un rôle utilisé pour exécuter cette opération doit au minimum 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. |
Notes sur l’utilisation¶
Les clauses OR REPLACE et IF NOT EXISTS s’excluent mutuellement. Elles ne peuvent pas être utilisées dans la même instruction.
Les instructions CREATE OR REPLACE <objet> sont atomiques. En d’autres termes, lorsqu’un objet est remplacé, l’ancien objet est supprimé et le nouvel objet est créé dans une seule transaction.
Concernant les métadonnées :
Attention
Les clients doivent s’assurer qu’aucune donnée personnelle (autre que pour un objet utilisateur), donnée sensible, donnée à exportation contrôlée ou autre donnée réglementée n’est saisie comme métadonnée lors de l’utilisation du service Snowflake. Pour plus d’informations, voir Champs de métadonnées dans Snowflake.
Exemples¶
CREATE OR REPLACE AGENT my_agent1
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 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: "Analyst1"
description: "Converts natural language to SQL queries for financial analysis"
- tool_spec:
type: "cortex_search"
name: "Search1"
description: "Searches company policy and documentation"
tool_resources:
Analyst1:
semantic_view: "db.schema.semantic_view"
Search1:
name: "db.schema.service_name"
max_results: "5"
filter:
"@eq":
region: "North America"
title_column: "<title_name>"
id_column: "<column_name>"
$$;