CREATE AGENT

Cria um novo objeto Cortex Agent com os atributos e especificação especificados.

Consulte também:

DESCRIBE AGENT, DROP AGENT, SHOW AGENTS

Sintaxe

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

Parâmetros obrigatórios

name

String que especifica o identificador (ou seja, nome) do livro. Deve ser único para o esquema no qual o livro é criada.

Além disso, o identificador deve começar com um caractere alfabético e não pode conter espaços ou caracteres especiais, a menos que toda a cadeia de caracteres do identificador esteja entre aspas duplas (por exemplo, "My object"). Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.

Para obter mais informações, consulte Requisitos para identificadores.

Parâmetros opcionais

COMMENT = comment

Descrição do agente.

PROFILE = profile_object

Especifica o OBJECT Valor contendo informações de perfil do agente, como nome de exibição, atalho e cor. Serializar o profile_object em uma string da seguinte forma:

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

A tabela a seguir descreve os pares chave-valor nesse objeto:

Chave

Tipo

Descrição

display_name

Cadeia de caracteres

Nome de exibição do agente.

avatar

Cadeia de caracteres

Nome ou identificador do arquivo de imagem Avatar.

color

Cadeia de caracteres

Tema de cores do agente (como “azul”, “verde”, “vermelho”)

FROM SPECIFICATION $$ specification_object $$

Especifica o VARCHAR Valor contendo as configurações para um agente como um YAML Objeto.

O YAML O objeto deve ter a seguinte estrutura:

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

A tabela a seguir descreve os pares chave-valor nesse objeto:

Chave

Tipo

Descrição

models

ModelConfig

Uma configuração de modelo opcional para o agente. Inclui o modelo de orquestração (por exemplo, claude-4-sonnet). Se não for fornecido, um modelo será selecionado automaticamente. Atualmente disponível apenas para a etapa orchestration.

orchestration

OrchestrationConfig

Uma configuração opcional da orquestração, incluindo restrições orçamentárias (por exemplo, segundos, tokens).

instructions

AgentInstructions

Instruções opcionais para o comportamento do agente, incluindo resposta, orquestração, sistema e perguntas de amostra.

tools

Matriz de Tool

Uma lista de ferramentas opcionais disponíveis para o agente usar. Cada ferramenta inclui uma tool_spec com tipo, nome, descrição e esquema de entrada. As ferramentas podem ter uma configuração correspondente em tool_resources.

tool_resources

mapa de ToolResource

Uma configuração opcional de cada ferramenta referenciada na matriz de ferramentas. As chaves devem corresponder ao nome da respectiva ferramenta.

Requisitos de controle de acesso

A função usada para executar essa operação deve ter, no mínimo, os seguintes privilégios:

Privilégio

Objeto

Notas

CREATE AGENT

Esquema

Necessário para criar o Cortex Agent.

USAGE

Cortex Search Service

Necessário para executar os Cortex Search Services na solicitação Cortex Agents.

USAGE

Banco de dados, esquema, tabela

Necessário para acessar os objetos referenciados no modelo semântico dos Cortex Agents.

Notas de uso

  • As cláusulas OR REPLACE e IF NOT EXISTS são mutuamente exclusivas. Os dois não podem ser usados na mesma instrução.

  • Instruções CREATE OR REPLACE <object> são atômicas. Ou seja, quando um objeto é substituído, o objeto antigo é excluído e o novo objeto é criado em uma única transação.

  • Em relação aos metadados:

    Atenção

    Os clientes devem garantir que nenhum dado pessoal (exceto para um objeto do usuário), dados sensíveis, dados controlados por exportação ou outros dados regulamentados sejam inseridos como metadados ao usar o serviço Snowflake. Para obter mais informações, consulte Campos de metadados no Snowflake.

Exemplos

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