- Categorias:
Funções de cadeia de caracteres e binários (funções de AI)
DATA_AGENT_RUN (SNOWFLAKE.CORTEX)¶
Executa um Cortex Agent e retorna a resposta como JSON.
É possível usar essa função para executar um Cortex Agent, que orquestra fontes de dados estruturadas e não estruturadas para fornecer insights. Isso inclui planejar tarefas, usar ferramentas para executar essas tarefas e gerar respostas.
Nota
SNOWFLAKE.CORTEX.DATA_AGENT_RUN é um wrapper utilitário em torno do Cortex Agents Run API. Para a maioria das integrações de aplicativos, a Snowflake recomenda chamar o streaming REST API diretamente.
- Consulte também:
Sintaxe¶
SNOWFLAKE.CORTEX.DATA_AGENT_RUN( '<agent_name>', <request_body> )
Argumentos¶
'agent_name'Nome totalmente qualificado do agente a ser executado, no formato
database.schema.agent_name.request_bodyCorpo da solicitação JSON a ser enviado ao agente. Esse valor deve ser uma cadeia de caracteres (por exemplo, um literal
$$...$$).Os seguintes campos são compatíveis no corpo da solicitação:
Campo
Tipo
Descrição
thread_idinteiro
O ID do thread da conversa. Se thread_id for usado, então parent_message_id também deve ser passado.
parent_message_idinteiro
O ID da mensagem pai no thread. Se essa for a primeira mensagem, parent_message_id deve ser 0.
messagesMatriz de Message
Se thread_id e parent_message_id forem passados na solicitação, as mensagens incluirão a mensagem do usuário atual na conversa. Caso contrário, as mensagens incluem o histórico da conversa e a mensagem atual. As mensagens contêm consultas do usuário e respostas do assistente em ordem cronológica.
streambooleano
Seja para retornar uma resposta de streaming (
text/event-stream) ou uma resposta JSON sem streaming (application/json). Se for verdadeiro, a resposta será transmitida como eventos enviados pelo servidor. Se for falso, a resposta será retornada como JSON.tool_choiceConfigura como o agente deve selecionar e usar as ferramentas durante a interação. Controla se o uso de ferramentas é automático, obrigatório ou se ferramentas específicas devem ser usadas.
Exemplo
{ "thread_id": 0, "parent_message_id": 0, "messages": [ { "role": "user", "content": [ { "type": "text", "text": "What is the total revenue for 2023?" } ] } ], "stream": false, "tool_choice": { "type": "auto", "name": [ "analyst_tool", "search_tool" ] } }
Importante
O campo stream é ignorado. Uma resposta não streaming é sempre retornada.
Retornos¶
Retorna uma cadeia de caracteres JSON contendo a resposta do agente.
Requisitos de controle de acesso¶
Para executar um agente, você deve usar uma função que possa acessar os Cortex Agents e o objeto do agente que você está chamando. Para obter mais detalhes, consulte Requisitos de controle de acesso.
Notas de uso¶
A função retorna uma cadeia de caracteres JSON. Passe essa cadeia de caracteres para TRY_PARSE_JSON para converter a resposta em um valor VARIANT.
Exemplos¶
Execute um agente e analise a resposta JSON:
SELECT
TRY_PARSE_JSON(
SNOWFLAKE.CORTEX.DATA_AGENT_RUN(
'MY_DB.MY_SCHEMA.MY_AGENT',
$${
"parent_message_id": 1234,
"thread_id": 5678,
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "What are some types of products?" }
]
}
]
}$$
)
) AS resp;
Valor de retorno de amostra:
{
"role": "assistant",
"content": [
{
"thinking": {
"text": "\n...\n"
},
"type": "thinking"
},
{
"tool_use": {
"input": {
"...": "..."
},
"name": "<tool_name>",
"tool_use_id": "<tool_use_id>",
"type": "<tool_type>"
},
"type": "tool_use"
},
{
"text": "Based on the data available, there are two main types of products...",
"type": "text"
}
],
"metadata": {
"run_id": "<run_id>"
}
}