CREATE AGENT¶
Cria um novo objeto Cortex Agent com os atributos e especificação especificados.
- Consulte também:
Sintaxe¶
CREATE [ OR REPLACE ] AGENT [ IF NOT EXISTS ] <name>
[ COMMENT = '<comment>' ]
[ PROFILE = '<profile_object>' ]
FROM SPECIFICATION
$$
<specification_object>
$$;
Parâmetros obrigatórios¶
nameString 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 = commentDescrição do agente.
PROFILE = profile_objectEspecifica o OBJECT Valor contendo informações de perfil do agente, como nome de exibição, atalho e cor. Serializar o
profile_objectem uma string da seguinte forma:'{"display_name": "<display_name>", "avatar": "<avatar>", "color": "<color>"}'A tabela a seguir descreve os pares chave-valor nesse objeto:
Chave
Tipo
Descrição
display_nameCadeia de caracteres
Nome de exibição do agente.
avatarCadeia de caracteres
Nome ou identificador do arquivo de imagem Avatar.
colorCadeia 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>' ... ...
A tabela a seguir descreve os pares chave-valor nesse objeto:
Chave
Tipo
Descrição
modelsUma 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.orchestrationUma configuração opcional da orquestração, incluindo restrições orçamentárias (por exemplo, segundos, tokens).
instructionsInstruções opcionais para o comportamento do agente, incluindo resposta, orquestração, sistema e perguntas de amostra.
toolsMatriz de Tool
Uma lista de ferramentas opcionais disponíveis para o agente usar. Cada ferramenta inclui uma
tool_speccom tipo, nome, descrição e esquema de entrada. As ferramentas podem ter uma configuração correspondente emtool_resources.tool_resourcesmapa 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>"
$$;