CREATE AGENT

Crée un nouvel objet d’Agent Cortex avec les attributs et la spécification spécifiés.

Voir aussi :

DESCRIBE AGENT, DROP AGENT, SHOW AGENTS

Syntaxe

CREATE [ OR REPLACE ] AGENT [ IF NOT EXISTS ] <name>
  [ COMMENT = '<comment>' ]
  [ PROFILE = '<profile_object>' ]
  FROM SPECIFICATION
  $$
  <specification_object>
  $$;
Copy

Paramètres requis

name

Chaî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 = comment

Description de l’agent.

PROFILE = profile_object

Spé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_object en une chaîne, procédez comme suit :

'{"display_name": "<display_name>", "avatar": "<avatar>", "color": "<color>"}'
Copy

Le tableau suivant décrit les paires clé-valeur de cet objet :

Clé

Type

Description

display_name

Chaîne

Nom d’affichage de l’agent.

avatar

Chaîne

Nom ou identificateur du fichier image avatar.

color

Chaî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>'
    ...
  ...
Copy

Le tableau suivant décrit les paires clé-valeur de cet objet :

Clé

Type

Description

models

ModelConfig

Configuration 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.

orchestration

OrchestrationConfig

Configuration facultative de l’orchestration, y compris les contraintes budgétaires (par exemple, secondes, jetons).

instructions

AgentInstructions

Instructions facultatives relatives au comportement de l’agent, y compris la réponse, l’orchestration, le système et les exemples de questions.

tools

tableau d”Tool

Liste facultative des outils disponibles pour l’agent à utiliser. Chaque outil inclut une tool_spec avec un type, un nom, une description et un schéma d’entrée. Les outils peuvent avoir une configuration correspondante dans tool_resources.

tool_resources

carte 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>"
  $$;
Copy