API de execução de Cortex Agents¶
Existem dois métodos para interagir com um agente:
Criar um objeto de agente e fazer referência a ele em uma solicitação para a API
agent:run.Chamar a
agent:rundiretamente sem um objeto de agente. Você fornece a configuração no corpo da solicitação deagent:run.
Ambos os métodos usam APIs de streaming que respondem com os eventos enviados pelo servidor especificados em Streaming Responses.
Solicitação de execução do agente com objeto de agente¶
POST /api/v2/databases/{database}/schemas/{schema}/agents/{name}:run
Envia uma consulta do usuário ao objeto de agente e retorna sua resposta como um fluxo de eventos.
Parâmetros de caminho¶
Parâmetro |
Descrição |
|---|---|
|
(Obrigatório) O banco de dados que contém o agente. Você pode usar a solicitação |
|
(Obrigatório) O esquema que contém o agente. Você pode usar a solicitação |
|
(Obrigatório) O nome do agente. |
Cabeçalhos de solicitação¶
Cabeçalho |
Descrição |
|---|---|
|
Token de autorização (obrigatório). Consulte Autenticação. |
|
Aplicativo/json (obrigatório) |
Corpo da solicitação¶
Campo |
Tipo |
Descrição |
|---|---|---|
|
inteiro |
O ID do thread da conversa. Se thread_id for usado, então parent_message_id também deve ser passado. |
|
inteiro |
O ID da mensagem pai no thread. Se essa for a primeira mensagem, parent_message_id deve ser 0. |
|
Matriz 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. |
|
Configura 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?"
}
]
}
],
"tool_choice": {
"type": "auto",
"name": [
"analyst_tool",
"search_tool"
]
}
}
Execução do agente sem um objeto de agente¶
POST /api/v2/cortex/agent:run
Envia uma consulta de usuário ao serviço Cortex Agents fornecido no corpo da solicitação e retorna sua resposta. Interage com o agente sem criar um objeto de agente.
Nota
Antes de 1º de setembro de 2025, os esquemas de solicitação e resposta para a API agent:run eram diferentes do esquema listado neste documento. Anteriormente, a orquestração era estática e a mesma sequência de ferramentas era usada para gerar uma resposta. agent:run agora tem um esquema atualizado tanto para a solicitação quanto para a resposta. Além disso, a API agora orquestra e itera dinamicamente para chegar à resposta final. Recomendamos usar o esquema descrito neste documento para uma melhor experiência do usuário final.
Para usar o esquema e o comportamento legados, use o seguinte esquema:
{
"model": "claude-4-sonnet",
"messages": [
{"role":"user", "content": [] }
]
}
Cabeçalhos de solicitação¶
Cabeçalho |
Descrição |
|---|---|
|
Token de autorização (obrigatório). Consulte Autenticação. |
|
Aplicativo/json (obrigatório) |
Corpo da solicitação¶
Campo |
Tipo |
Descrição |
|---|---|---|
|
inteiro |
O ID do thread da conversa. Se thread_id for usado, então parent_message_id também deve ser passado. |
|
inteiro |
O ID da mensagem pai no thread. Se essa for a primeira mensagem, parent_message_id deve ser 0. |
|
Matriz 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. |
|
Configura 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. |
|
|
Configuração do modelo para o agente. Inclui o modelo de orquestração (por exemplo, cláusula-4-sonnet). Se não for fornecido, um modelo será selecionado automaticamente. Atualmente disponível apenas para a etapa de |
|
|
Instruções para o comportamento do agente, incluindo resposta, orquestração, sistema e perguntas de amostra. |
|
|
Configuração da orquestração, incluindo restrições orçamentárias (por exemplo, segundos, tokens). |
|
|
Matriz de Tool |
Lista de ferramentas 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. |
|
Mapa de ToolResource |
Configuração de cada ferramenta referenciada na matriz de ferramentas. As chaves devem corresponder ao nome da respectiva ferramenta. |
Exemplo
{
"thread_id": 0,
"parent_message_id": 0,
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is the total revenue for 2023?"
}
]
}
],
"tool_choice": {
"type": "auto",
"name": [
"analyst_tool",
"search_tool"
]
},
"models": {
"orchestration": "claude-4-sonnet"
},
"instructions": {
"response": "You will respond in a friendly but concise manner",
"orchestration": "For any query related to revenue we should use Analyst; For all policy questions we should use Search",
"system": "You are a friendly agent ..."
},
"orchestration": {
"budget": {
"seconds": 30,
"tokens": 16000
}
},
"tools": [
{
"tool_spec": {
"type": "generic",
"name": "get_revenue",
"description": "Fetch the delivery revenue for a location.",
"input_schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
}
}
},
"required": [
"location"
]
}
}
],
"tool_resources": {
"get_revenue": {
"type": "function",
"execution_environment": {
"type": "warehouse",
"warehouse": "MY_WH"
},
"identifier": "DB.SCHEMA.UDF"
}
}
}
Respostas de streaming¶
A API agent:run fornece respostas de streaming. O servidor transmite eventos de retorno. Isso permite que você exiba as respostas em seu aplicativo, token por token, à medida que são geradas pelo Agent. Cada evento transmitido na resposta da API tem um esquema estritamente digitado. Você pode encontrar uma lista de todos os eventos na seção a seguir e selecionar quais deseja se inscrever.
O último evento enviado pela API é um evento response. Esse evento contém toda a saída do agente. Você pode usar isso como a resposta final do agente. Para qualquer cliente que não seja de streaming, você pode se inscrever nesse evento porque ele é a agregação lógica de todos os eventos anteriores. Se você não quiser usar respostas de streaming, aguarde o evento response e ignore todos os eventos anteriores.
A maioria dos outros eventos transmitidos podem ser divididos em duas categorias: Delta e Content Item.
Os eventos Delta representam um único token gerado pelo agente. Ao detectar esses eventos, você pode criar um efeito de máquina de escrever. Os principais eventos delta são response.thinking.delta, que representa um token de raciocínio, e response.text.delta, que representam um token de resposta.
Os eventos Content Item representam elementos da matriz content na resposta final do agente.
Nota
Certifique-se de que seu aplicativo possa lidar com tipos de eventos desconhecidos.
Exemplo de resposta:
event: response.status
data: {"message":"Planning the next steps","status":"planning"}
event: response.thinking.delta
data: {"content_index":0,"text":"\nThe user is asking for a"}
event: response.thinking.delta
data: {"content_index":0,"text":" chart showing the"}
...
...
...
event: response.status
data: {"message":"Reviewing the results","status":"reasoning_agent_stop"}
event: response.status
data: {"message":"Forming the answer","status":"proceeding_to_answer"}
response¶
Evento transmitido quando a resposta final está disponível. Esse é o último evento emitido, ele representa a agregação de todos os outros eventos transmitidos anteriormente.
Campo |
Tipo |
Descrição |
|---|---|---|
|
string |
A função para a mensagem. Sempre |
|
Matriz de MessageContentItem |
O conteúdo gerado pelo agente. |
Exemplo
{
"role": "assistant",
"content": [
{
"type": "chart",
"chart": {
"tool_use_id": "toolu_123",
"chart_spec": "{\"$schema\":\"https://vega.github.io/schema/vega-lite/v5.json\",\"data\":{...},\"mark\":\"bar\"}"
}
}
]
}
response.text¶
Um evento transmitido quando um bloco de conteúdo de texto é feito de streaming, incluindo todos os deltas agregados para um determinado índice de conteúdo.
Campo |
Tipo |
Descrição |
|---|---|---|
|
inteiro |
O índice na matriz de conteúdo de resposta que este evento representa |
|
string |
Um resultado de texto do agente |
|
Matriz de Annotation |
Quaisquer anotações anexadas ao resultado de texto (por exemplo, citações) |
|
booleano |
Se esse conteúdo de texto é o agente que solicita mais informações do usuário final. |
Exemplo
{
"content_index": 0,
"text": "Lorem ipsum dolor...",
"annotations": [
{
"type": "cortex_search_citation",
"index": 0,
"search_result_id": "cs_61987ff6-6d56-4695-83c0-1e7cfed818c7",
"doc_id": "4ac085cb-82d0-4eb4-94f3-2672aa0599a2",
"doc_title": "Earnings Report",
"text": "The revenue for 2025 was..."
}
],
"is_elicitation": false
}
response.text.delta¶
Evento transmitido quando um novo delta de texto de saída é gerado.
Campo |
Tipo |
Descrição |
|---|---|---|
|
inteiro |
O índice na matriz de conteúdo de resposta que este evento representa |
|
string |
O texto delta |
|
booleano |
Se esse conteúdo de texto é o agente que solicita mais informações do usuário final. |
Exemplo
{
"content_index": 0,
"text": "Hello",
"is_elicitation": false
}
response.text.annotation¶
Evento transmitido quando uma anotação é adicionada a um conteúdo de texto.
Campo |
Tipo |
Descrição |
|---|---|---|
|
inteiro |
O índice na matriz de conteúdo de resposta que este evento representa |
|
inteiro |
O índice na matriz de anotação ao qual essa |
|
O objeto de anotação que está sendo adicionado. |
Exemplo
{
"content_index": 0,
"annotation_index": 0,
"annotation": {
"type": "cortex_search_citation",
"index": 0,
"search_result_id": "cs_61987ff6-6d56-4695-83c0-1e7cfed818c7",
"doc_id": "4ac085cb-82d0-4eb4-94f3-2672aa0599a2",
"doc_title": "Earnings Report",
"text": "The revenue for 2025 was..."
}
}
response.thinking¶
Um evento transmitido quando um bloco de conteúdo de raciocínio termina de transmitir, incluindo todos os deltas agregados para um índice de conteúdo específico.
Campo |
Tipo |
Descrição |
|---|---|---|
|
inteiro |
O índice na matriz de conteúdo de resposta que este evento representa |
|
string |
Tokens de raciocínio do agente |
Exemplo
{
"content_index": 0,
"text": "To answer your question I must..."
}
response.thinking.delta¶
Evento transmitido quando um delta de raciocínio é gerado.
Campo |
Tipo |
Descrição |
|---|---|---|
|
inteiro |
O índice na matriz de conteúdo de resposta que este evento representa |
|
string |
O token de raciocínio |
Exemplo
{
"content_index": 0,
"text": "lorem ipsum"
}
response.tool_use¶
Um evento transmitido quando o agente solicita o uso de uma ferramenta.
Campo |
Tipo |
Descrição |
|---|---|---|
|
inteiro |
O índice na matriz de conteúdo de resposta que este evento representa |
|
string |
Identificador exclusivo para esse uso de ferramenta. Pode ser usado para associar resultados de ferramenta. |
|
string |
O tipo da ferramenta (por exemplo, cortex_search, cortex_analyst_text2sql) |
|
string |
O identificador único para essa instância de ferramenta |
|
objeto |
A entrada estruturada para essa ferramenta. O esquema desse objeto deve variar de acordo com a especificação da ferramenta. |
|
booleano |
Se o uso da ferramenta é executado no lado do cliente. |
Exemplo
{
"content_index": 0,
"tool_use_id": "toolu_123",
"type": "cortex_analyst_text2sql",
"name": "my_cortex_analyst_semantic_view",
"input": {
"location": "San Francisco, CA"
},
"client_side_execute": "true"
}
response.tool_result¶
Evento transmitido quando uma ferramenta termina de ser executada, incluindo o resultado da ferramenta.
Campo |
Tipo |
Descrição |
|---|---|---|
|
inteiro |
O índice na matriz de conteúdo de resposta que este evento representa |
|
string |
Identificador exclusivo para esse uso de ferramenta. Pode ser usado para associar resultados de ferramenta. |
|
string |
O tipo da ferramenta (por exemplo, cortex_search, cortex_analyst_text2sql) |
|
string |
O identificador único para essa instância de ferramenta |
|
Matriz de ToolResultContent |
O conteúdo no resultado da ferramenta |
|
string |
O status de execução da ferramenta |
Exemplo
{
"content_index": 0,
"tool_use_id": "toolu_123",
"type": "cortex_analyst_text2sql",
"name": "my_cortex_analyst_semantic_view",
"content": [
{
"type": "json",
"json": {
"answer": 42
}
}
],
"status": "success"
}
response.tool_result.status¶
Atualização de status para um uso de ferramenta específico.
Campo |
Tipo |
Descrição |
|---|---|---|
|
string |
Identificador exclusivo para esse uso de ferramenta. |
|
string |
O tipo da ferramenta (por exemplo, cortex_search, cortex_analyst_text2sql) |
|
string |
Enumeração para o estado atual. |
|
string |
Uma mensagem mais descritiva expandindo o status atual. |
Exemplo
{
"tool_use_id": "toolu_123",
"tool_type": "cortex_analyst_text2sql",
"status": "Executing SQL",
"message": "Executing query 'SELECT * FROM my_table'"
}
response.tool_result.analyst.delta¶
Um evento delta transmitido para a execução da ferramenta Cortex Analyst
Campo |
Tipo |
Descrição |
|---|---|---|
|
inteiro |
O índice na matriz de conteúdo de resposta que este evento representa |
|
string |
Identificador exclusivo para esse uso de ferramenta. Pode ser usado para associar resultados de ferramenta. |
|
string |
O tipo da ferramenta (sempre cortex_analyst_text2sql para esse evento) |
|
string |
O identificador único para essa instância de ferramenta |
|
O delta de conteúdo |
Exemplo
{
"content_index": 0,
"tool_use_id": "toolu_123",
"tool_type": "cortex_analyst_text2sql",
"tool_name": "my_cortex_analyst_semantic_view",
"delta": {
"text": "The...",
"think": "Thinking...",
"sql": "SELECT...",
"sql_explanation": "This...",
"query_id": "707787a0-a684-4ead-adb0-3c3b62b043d9",
"verified_query_used": false,
"result_set": {
"statementHandle": "707787a0-a684-4ead-adb0-3c3b62b043d9",
"resultSetMetaData": {
"partition": 0,
"numRows": 0,
"format": "jsonv2",
"rowType": [
{
"name": "my_column",
"type": "VARCHAR",
"length": 0,
"precision": 0,
"scale": 0,
"nullable": false
}
]
},
"data": [
[
"row1 col1",
"row1 col2"
],
[
"row2 col1",
"row2 col2"
]
]
},
"suggestions": {
"index": 0,
"delta": "What..."
}
}
}
response.table¶
Um evento transmitido quando um bloco de conteúdo de tabela é adicionado.
Campo |
Tipo |
Descrição |
|---|---|---|
|
inteiro |
O índice na matriz de conteúdo de resposta que este evento representa |
|
string |
O ID do uso da ferramenta que gerou essa tabela |
|
string |
O ID da consulta SQL que gerou esses dados |
|
Os resultados de SQL para renderizar uma tabela. Corresponde ao esquema do ResultSet da API SQL do Snowflake (https://docs.snowflake.com/en/developer-guide/sql-api/reference#resultset) |
|
|
string |
O título dessa tabela |
Exemplo
{
"content_index": 0,
"tool_use_id": "toolu_123",
"query_id": "6ac75378-6337-48a6-80ab-6de48dd680eb",
"result_set": {
"statementHandle": "707787a0-a684-4ead-adb0-3c3b62b043d9",
"resultSetMetaData": {
"partition": 0,
"numRows": 0,
"format": "jsonv2",
"rowType": [
{
"name": "my_column",
"type": "VARCHAR",
"length": 0,
"precision": 0,
"scale": 0,
"nullable": false
}
]
},
"data": [
[
"row1 col1",
"row1 col2"
],
[
"row2 col1",
"row2 col2"
]
]
},
"title": "Revenue by Month"
}
response.chart¶
Um evento transmitido quando um bloco de conteúdo de gráfico é adicionado.
Campo |
Tipo |
Descrição |
|---|---|---|
|
inteiro |
O índice na matriz de conteúdo de resposta que este evento representa |
|
string |
O ID do uso da ferramenta que gerou esse gráfico |
|
string |
A especificação do gráfico vega-lite serializada como uma string |
Exemplo
{
"content_index": 0,
"tool_use_id": "toolu_123",
"chart_spec": "{\"$schema\":\"https://vega.github.io/schema/vega-lite/v5.json\",\"data\":{...},\"mark\":\"bar\"}"
}
response.status¶
Atualização de status da execução do agente.
Campo |
Tipo |
Descrição |
|---|---|---|
|
string |
Enumeração para o estado atual. |
|
string |
Uma mensagem mais descritiva expandindo o status atual. |
Exemplo
{
"status": "executing_tool",
"message": "Executing tool `my_analyst_tool`"
}
error¶
Enviado quando um erro fatal é encontrado.
Campo |
Tipo |
Descrição |
|---|---|---|
|
string |
O código de erro do Snowflake |
|
string |
A mensagem de erro |
|
string |
O identificador único dessa solicitação. |
Exemplo
{
"code": "399504",
"message": "Error during execution",
"request_id": "61987ff6-6d56-4695-83c0-1e7cfed818c7"
}
Evento metadata¶
Metadados sobre a solicitação. Esse evento é enviado quando uma mensagem é adicionada ao thread. É útil para obter o parent_message_id para usar nas seguintes solicitações à API Agents.
Campo |
Tipo |
Descrição |
|---|---|---|
|
string |
Identifica quem enviou a mensagem, o usuário ou o assistente. |
|
inteiro |
O ID da mensagem do thread. Use esse ID (quando a função for |
Exemplo
{
"role": "user",
"message_id": 0
}
Esquemas¶
AgentInstructions¶
Campo |
Tipo |
Descrição |
|---|---|---|
|
string |
Instruções para geração de respostas. |
|
string |
Essas instruções personalizadas são usadas quando o agente está planejando quais ferramentas usar. |
|
string |
Instruções do sistema para o agente. |
Exemplo
{
"response": "You will respond in a friendly but concise manner",
"orchestration": "For any query related to revenue we should use Analyst; For all policy questions we should use Search",
"system": "You are a friendly agent ..."
}
Annotation¶
Campo
Tipo
Descrição
typestring
O tipo de citação (sempre
cortex_search_citation)
indexinteiro
O índice da citação nos resultados da pesquisa.
search_result_idstring
O identificador único do resultado da pesquisa.
doc_idstring
O identificador único do documento.
doc_titlestring
O título do documento.
textstring
O trecho de texto do documento usado como citação.
Exemplo
{ "type": "cortex_search_citation", "index": 0, "search_result_id": "cs_61987ff6-6d56-4695-83c0-1e7cfed818c7", "doc_id": "4ac085cb-82d0-4eb4-94f3-2672aa0599a2", "doc_title": "Earnings Report", "text": "The revenue for 2025 was..." }
BudgetConfig¶
Campo |
Tipo |
Descrição |
|---|---|---|
|
inteiro |
Orçamento de tempo em segundos. |
|
inteiro |
Orçamento de token. |
Exemplo
{
"seconds": 30,
"tokens": 16000
}
ChartContent¶
Campo |
Tipo |
Descrição |
|---|---|---|
|
string |
O ID do uso da ferramenta que gerou esse gráfico |
|
string |
A especificação do gráfico vega-lite serializada como uma string |
Exemplo
{
"tool_use_id": "toolu_123",
"chart_spec": "{\"$schema\":\"https://vega.github.io/schema/vega-lite/v5.json\",\"data\":{...},\"mark\":\"bar\"}"
}
CortexAnalystSuggestionDelta¶
Campo |
Tipo |
Descrição |
|---|---|---|
|
inteiro |
O índice da matriz de sugestões que esse delta representa |
|
string |
O delta de texto para a sugestão nesse índice |
Exemplo
{
"index": 0,
"delta": "What..."
}
CortexAnalystToolResultDelta¶
Campo |
Tipo |
Descrição |
|---|---|---|
|
string |
Um texto delta da resposta final do Cortex Analyst. |
|
string |
Um texto delta das etapas de raciocínio do Cortex Analyst. |
|
string |
Um delta da saída SQL do Cortex Analyst. Atualmente, toda a consulta SQL vem em um único evento, mas podemos transmitir o SQL token por token no futuro. |
|
string |
Um delta da explicação do Cortex Analyst sobre o que a consulta SQL faz |
|
string |
O ID da consulta uma vez que a execução do SQL começa |
|
booleano |
Se uma consulta verificada foi usada para gerar essa resposta |
|
Os resultados da execução do SQL. Corresponde ao esquema do ResultSet da API SQL do Snowflake (https://docs.snowflake.com/en/developer-guide/sql-api/reference#resultset) |
|
|
Um delta das perguntas sugeridas pelo Cortex Analyst. Ele é enviado quando o analista não pode responder à pergunta devido à falta de informações ou outras falhas. |
Exemplo
{
"text": "The...",
"think": "Thinking...",
"sql": "SELECT...",
"sql_explanation": "This...",
"query_id": "707787a0-a684-4ead-adb0-3c3b62b043d9",
"verified_query_used": false,
"result_set": {
"statementHandle": "707787a0-a684-4ead-adb0-3c3b62b043d9",
"resultSetMetaData": {
"partition": 0,
"numRows": 0,
"format": "jsonv2",
"rowType": [
{
"name": "my_column",
"type": "VARCHAR",
"length": 0,
"precision": 0,
"scale": 0,
"nullable": false
}
]
},
"data": [
[
"row1 col1",
"row1 col2"
],
[
"row2 col1",
"row2 col2"
]
]
},
"suggestions": {
"index": 0,
"delta": "What..."
}
}
ExecutionEnvironment¶
Configuração de ferramentas executadas pelo servidor.
Campo |
Tipo |
Descrição |
|---|---|---|
|
string |
O tipo de ambiente de execução, atualmente apenas |
|
string |
O nome do warehouse. Se for um identificador não delimitado entre aspas, forneça o nome em letras maiúsculas. |
|
inteiro |
O tempo limite da consulta em segundos |
Exemplo
{
"type": "warehouse",
"warehouse": "MY_WAREHOUSE",
"query_timeout": 60
}
Message¶
Representa uma única mensagem na conversa. Pode ser do usuário ou do assistente.
Campo |
Tipo |
Descrição |
|---|---|---|
|
string |
Identifica quem enviou a mensagem, o usuário ou o assistente. As mensagens do usuário geralmente contêm consultas, enquanto as mensagens do assistente contêm respostas e resultados de ferramentas. |
|
Matriz de MessageContentItem |
Conjunto de elementos de conteúdo que compõem a mensagem. Pode incluir texto, resultados de ferramentas ou tipos de conteúdo personalizados. |
Exemplo
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is the total revenue for 2023?"
}
]
}
MessageContentItem¶
Campo
Tipo
Descrição
typestring
O tipo de conteúdo (sempre
chart).
chartO gráfico.
Exemplo
{ "type": "chart", "chart": { "tool_use_id": "toolu_123", "chart_spec": "{\"$schema\":\"https://vega.github.io/schema/vega-lite/v5.json\",\"data\":{...},\"mark\":\"bar\"}" } }
Campo
Tipo
Descrição
typestring
O tipo de conteúdo (sempre
table).
tableA tabela.
Exemplo
{ "type": "table", "table": { "tool_use_id": "toolu_123", "query_id": "6ac75378-6337-48a6-80ab-6de48dd680eb", "result_set": { "statementHandle": "707787a0-a684-4ead-adb0-3c3b62b043d9", "resultSetMetaData": { "partition": 0, "numRows": 0, "format": "jsonv2", "rowType": [ { "name": "my_column", "type": "VARCHAR", "length": 0, "precision": 0, "scale": 0, "nullable": false } ] }, "data": [ [ "row1 col1", "row1 col2" ], [ "row2 col1", "row2 col2" ] ] }, "title": "Revenue by Month" } }
Campo
Tipo
Descrição
textstring
Um resultado de texto do agente
annotationsMatriz de Annotation
Quaisquer anotações anexadas ao resultado de texto (por exemplo, citações)
is_elicitationbooleano
Se esse conteúdo de texto é o agente que solicita mais informações do usuário final.
typestring
O tipo de conteúdo (sempre
text).Exemplo
{ "text": "Lorem ipsum dolor...", "annotations": [ { "type": "cortex_search_citation", "index": 0, "search_result_id": "cs_61987ff6-6d56-4695-83c0-1e7cfed818c7", "doc_id": "4ac085cb-82d0-4eb4-94f3-2672aa0599a2", "doc_title": "Earnings Report", "text": "The revenue for 2025 was..." } ], "is_elicitation": false, "type": "text" }
Campo
Tipo
Descrição
typestring
O tipo de conteúdo (sempre
thinking).
thinkingO conteúdo de raciocínio.
Exemplo
{ "type": "thinking", "thinking": { "text": "To answer your question I must..." } }
Campo
Tipo
Descrição
typestring
O tipo de conteúdo (sempre
tool_result).
tool_resultO resultado da ferramenta.
Exemplo
{ "type": "tool_result", "tool_result": { "tool_use_id": "toolu_123", "type": "cortex_analyst_text2sql", "name": "my_cortex_analyst_semantic_view", "content": [ { "type": "json", "json": { "answer": 42 } } ], "status": "success" } }
Campo
Tipo
Descrição
typestring
O tipo de conteúdo (sempre
tool_use).
tool_useO uso da ferramenta.
Exemplo
{ "type": "tool_use", "tool_use": { "tool_use_id": "toolu_123", "type": "cortex_analyst_text2sql", "name": "my_cortex_analyst_semantic_view", "input": { "location": "San Francisco, CA" }, "client_side_execute": "true" } }
ModelConfig¶
Campo |
Tipo |
Descrição |
|---|---|---|
|
string |
Modelo a ser usado para orquestração. Se não for fornecido, um modelo será selecionado automaticamente. |
Exemplo
{
"orchestration": "claude-4-sonnet"
}
OrchestrationConfig¶
Campo |
Tipo |
Descrição |
|---|---|---|
|
Restrições orçamentárias para o agente. Se mais de uma restrição for especificada, o que for atingido primeiro encerrará a solicitação. |
Exemplo
{
"budget": {
"seconds": 30,
"tokens": 16000
}
}
ResultSet¶
Campo |
Tipo |
Descrição |
|---|---|---|
|
string |
O ID da consulta. |
|
Metadados sobre o conjunto de resultados. |
|
|
matriz de matriz |
Matriz 2D representando os dados |
Exemplo
{
"statementHandle": "707787a0-a684-4ead-adb0-3c3b62b043d9",
"resultSetMetaData": {
"partition": 0,
"numRows": 0,
"format": "jsonv2",
"rowType": [
{
"name": "my_column",
"type": "VARCHAR",
"length": 0,
"precision": 0,
"scale": 0,
"nullable": false
}
]
},
"data": [
[
"row1 col1",
"row1 col2"
],
[
"row2 col1",
"row2 col2"
]
]
}
ResultSetMetaData¶
Campo |
Tipo |
Descrição |
|---|---|---|
|
inteiro |
O número de índice da partição. |
|
inteiro |
O número total de linhas de resultados. |
|
string |
Formato dos dados no conjunto de resultados. |
|
Matriz de RowType |
Descrição das colunas no resultado. |
Exemplo
{
"partition": 0,
"numRows": 0,
"format": "jsonv2",
"rowType": [
{
"name": "my_column",
"type": "VARCHAR",
"length": 0,
"precision": 0,
"scale": 0,
"nullable": false
}
]
}
RowType¶
Campo |
Tipo |
Descrição |
|---|---|---|
|
string |
Nome da coluna. |
|
string |
Tipo de dados do Snowflake da coluna. (https://docs.snowflake.com/en/sql-reference/intro-summary-data-types) |
|
inteiro |
Comprimento da coluna. |
|
inteiro |
Precisão da coluna. |
|
inteiro |
Escala da coluna. |
|
booleano |
Especifica se a coluna é ou não anulável. |
Exemplo
{
"name": "my_column",
"type": "VARCHAR",
"length": 0,
"precision": 0,
"scale": 0,
"nullable": false
}
TableContent¶
Campo |
Tipo |
Descrição |
|---|---|---|
|
string |
O ID do uso da ferramenta que gerou essa tabela |
|
string |
O ID da consulta SQL que gerou esses dados |
|
Os resultados de SQL para renderizar uma tabela. Corresponde ao esquema do ResultSet da API SQL do Snowflake (https://docs.snowflake.com/en/developer-guide/sql-api/reference#resultset) |
|
|
string |
O título dessa tabela |
Exemplo
{
"tool_use_id": "toolu_123",
"query_id": "6ac75378-6337-48a6-80ab-6de48dd680eb",
"result_set": {
"statementHandle": "707787a0-a684-4ead-adb0-3c3b62b043d9",
"resultSetMetaData": {
"partition": 0,
"numRows": 0,
"format": "jsonv2",
"rowType": [
{
"name": "my_column",
"type": "VARCHAR",
"length": 0,
"precision": 0,
"scale": 0,
"nullable": false
}
]
},
"data": [
[
"row1 col1",
"row1 col2"
],
[
"row2 col1",
"row2 col2"
]
]
},
"title": "Revenue by Month"
}
ThinkingContent¶
Campo |
Tipo |
Descrição |
|---|---|---|
|
string |
Tokens de raciocínio do agente |
Exemplo
{
"text": "To answer your question I must..."
}
Tool¶
Define uma ferramenta que pode ser usada pelo agente. As ferramentas fornecem capacidades específicas como análise de dados, pesquisa ou funções genéricas.
Campo |
Tipo |
Descrição |
|---|---|---|
|
Especificação do tipo, da configuração e dos requisitos de entrada da ferramenta. |
Exemplo
{
"tool_spec": {
"type": "generic",
"name": "get_revenue",
"description": "Fetch the delivery revenue for a location.",
"input_schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
}
}
},
"required": [
"location"
]
}
}
ToolChoice¶
Campo |
Tipo |
Descrição |
|---|---|---|
|
string |
Determina como as ferramentas são selecionadas: auto - seleção automática de ferramentas (padrão); required - deve usar pelo menos uma ferramenta; tool - usar ferramentas nomeadas específicas |
|
matriz de string |
Lista de nomes de ferramentas específicas a serem usadas quando o tipo for «tool». |
Exemplo
{
"type": "auto",
"name": [
"analyst_tool",
"search_tool"
]
}
ToolInputSchema¶
Campo |
Tipo |
Descrição |
|---|---|---|
|
string |
O tipo do objeto de esquema de entrada. |
|
string |
Uma descrição do que a entrada faz. |
|
Mapa de ToolInputSchema |
Se o tipo for |
|
Se o tipo for |
|
|
matriz de string |
Se o tipo for |
Exemplo
{
"type": "object",
"description": "Input for my custom tool",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
}
},
"items": {},
"required": [
"location"
]
}
ToolResource¶
Configuração da ferramenta de análise texto-para-SQL. Fornece parâmetros para geração e execução de consultas SQL. Exatamente um de semantic_model_file ou semantic_view deve ser fornecido.
Campo
Tipo
Descrição
semantic_model_filestring
O caminho para um arquivo armazenado em uma área de preparação do Snowflake com o modelo semântico yaml.
semantic_viewstring
O nome do objeto do modelo semântico nativo do Snowflake.
execution_environmentConfiguração de como executar a consulta SQL gerada.
Exemplo
{ "semantic_model_file": "@db.schema.stage/semantic_model.yaml", "semantic_view": "db.schema.semantic_view", "execution_environment": { "type": "warehouse", "warehouse": "MY_WAREHOUSE", "query_timeout": 60 } }Configuração da funcionalidade de pesquisa. Define como a pesquisa e recuperação de documentos deve ser realizada.
Campo
Tipo
Descrição
search_servicestring
O nome completo e qualificado do serviço de pesquisa.
title_columnstring
A coluna de título do documento.
id_columnstring
A coluna de ID do documento.
filterobjeto
Filtrar consulta para obter resultados de pesquisa.
Exemplo
{ "search_service": "database.schema.service_name", "title_column": "account_name", "id_column": "account_id", "filter": { "@eq": { "<column>": "<value>" } } }
Campo
Tipo
Descrição
typestring
Se a ferramenta for executada no lado do servidor, seja um procedimento armazenado ou uma UDF.
execution_environment
identifierstring
Nome totalmente qualificado do procedimento armazenado ou UDF.
Exemplo
{ "type": "function", "execution_environment": { "type": "warehouse", "warehouse": "MY_WAREHOUSE", "query_timeout": 60 }, "identifier": "MY_DB.MY_SCHEMA.MY_UDF" }
ToolResult¶
Campo |
Tipo |
Descrição |
|---|---|---|
|
string |
Identificador exclusivo para esse uso de ferramenta. Pode ser usado para associar resultados de ferramenta. |
|
string |
O tipo da ferramenta (por exemplo, cortex_search, cortex_analyst_text2sql) |
|
string |
O identificador único para essa instância de ferramenta |
|
Matriz de ToolResultContent |
O conteúdo no resultado da ferramenta |
|
string |
O status de execução da ferramenta |
Exemplo
{
"tool_use_id": "toolu_123",
"type": "cortex_analyst_text2sql",
"name": "my_cortex_analyst_semantic_view",
"content": [
{
"type": "json",
"json": {
"answer": 42
}
}
],
"status": "success"
}
ToolResultContent¶
Campo
Tipo
Descrição
typestring
O tipo de resultado (sempre
json)
jsonobjeto
Saída estruturada de uma ferramenta. O esquema varia de acordo com o tipo de ferramenta.
Exemplo
{ "type": "json", "json": { "answer": 42 } }
Campo
Tipo
Descrição
typestring
O tipo de resultado (sempre
text)
textstring
O texto do resultado
Exemplo
{ "type": "text", "text": "The answer is 42" }
ToolSpec¶
Especificação do tipo, da configuração e dos requisitos de entrada da ferramenta.
Campo |
Tipo |
Descrição |
|---|---|---|
|
string |
O tipo de recurso da ferramenta. Podem ser tipos especializados como «cortex_analyst_text_to_sql» ou «generic» para ferramentas de uso geral. |
|
string |
Identificador exclusivo para referenciar esta instância de ferramenta. Usado para corresponder à configuração em tool_resources. |
|
string |
Descrição da ferramenta a ser considerada para o uso da ferramenta. |
|
Definição do esquema JSON dos parâmetros de entrada esperados para essa ferramenta. Será alimentado ao agente para que ele saiba a estrutura que deve seguir para ao gerar a entrada para ToolUses. Obrigatório para que ferramentas genéricas especifiquem seus parâmetros de entrada. |
Exemplo
{
"type": "generic",
"name": "get_weather",
"description": "lorem ipsum",
"input_schema": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
}
},
"required": [
"location"
]
}
}
ToolUse¶
Campo |
Tipo |
Descrição |
|---|---|---|
|
string |
Identificador exclusivo para esse uso de ferramenta. Pode ser usado para associar resultados de ferramenta. |
|
string |
O tipo da ferramenta (por exemplo, cortex_search, cortex_analyst_text2sql) |
|
string |
O identificador único para essa instância de ferramenta |
|
objeto |
A entrada estruturada para essa ferramenta. O esquema desse objeto deve variar de acordo com a especificação da ferramenta. |
|
booleano |
Se o uso da ferramenta é executado no lado do cliente. |
Exemplo
{
"tool_use_id": "toolu_123",
"type": "cortex_analyst_text2sql",
"name": "my_cortex_analyst_semantic_view",
"input": {
"location": "San Francisco, CA"
},
"client_side_execute": "true"
}