Cortex Agents Run API¶
有两种与代理交互的方法:
- 构建代理对象,并在向 - agent:runAPI 发送请求时引用此代理对象。
- 直接调用 - agent:run,无需使用代理对象。您在- agent:run的请求正文中提供配置。
这两种方法均采用流式传输 APIs,其响应以 Streaming Responses 中规定的服务器发送事件形式返回。
带有代理对象的代理运行请求¶
POST /api/v2/databases/{database}/schemas/{schema}/agents/{name}:run
将用户查询发送到代理对象,并以事件流的形式返回其响应。
路径参数¶
| 参数 | 描述 | 
|---|---|
| 
 | (必需)包含该代理的数据库。可使用  | 
| 
 | (必需)包含该代理的架构。可使用  | 
| 
 | (必需)代理的名称。 | 
请求标头¶
| 标头 | 描述 | 
|---|---|
| 
 | (必需)授权令牌。有关更多信息,请参阅 身份验证。 | 
| 
 | (必需)应用程序/json | 
请求正文¶
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 整数 | 对话的线程 ID。如果使用了 thread_id,则还必须传递 parent_message_id。 | 
| 
 | 整数 | 线程中的父消息的 ID。如果这是第一条消息,parent_message_id 应为 0。 | 
| 
 | Message 的数组 | 如果在请求中传递了 thread_id 和 parent_message_id,则消息将包含对话中的当前用户消息。否则,消息包括对话历史记录和当前消息。消息包含按时间顺序排列的用户查询和助手响应。 | 
| 
 | 配置代理在交互过程中应如何选择和使用工具。控制工具的使用是自动的、必需的,还是应使用特定工具。 | 
示例
{
  "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"
    ]
  }
}
代理在没有代理对象的情况下运行¶
POST /api/v2/cortex/agent:run
向请求正文中提供的 Cortex Agents 服务发送用户查询,然后返回其响应。
备注
在 2025 年 9 月 1 日之前,agent:run API 的请求和响应架构与本文档中列出的架构不同。以前,编排是静态的,使用相同的工具序列来生成答案。现在,agent:run 的请求和响应架构已经更新。此外,API 现在动态编排和迭代以达到最终响应。我们建议使用本文档中描述的架构,以改善最终用户体验。
要使用旧架构和行为,请使用以下架构:
{
  "model": "claude-4-sonnet",
  "messages": [
     {"role":"user", "content": [] }
  ]
}
请求标头¶
| 标头 | 描述 | 
|---|---|
| 
 | (必需)授权令牌。有关更多信息,请参阅 身份验证。 | 
| 
 | (必需)应用程序/json | 
请求正文¶
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 整数 | 对话的线程 ID。如果使用了 thread_id,则还必须传递 parent_message_id。 | 
| 
 | 整数 | 线程中的父消息的 ID。如果这是第一条消息,parent_message_id 应为 0。 | 
| 
 | Message 的数组 | 如果在请求中传递了 thread_id 和 parent_message_id,则消息将包含对话中的当前用户消息。否则,消息包括对话历史记录和当前消息。消息包含按时间顺序排列的用户查询和助手响应。 | 
| 
 | 配置代理在交互过程中应如何选择和使用工具。控制工具的使用是自动的、必需的,还是应使用特定工具。 | |
| 
 | 代理的模型配置。包括编排模型(例如 claude-4-sonnet)。如果未提供,则自动选择模型。目前仅适用于  | |
| 
 | 代理的行为指令,包括响应、编排、系统和示例问题。 | |
| 
 | 编排配置,包括预算约束(例如,秒数、令牌)。 | |
| 
 | Tool 的数组 | 代理可使用的工具列表。每个工具包含一个 tool_spec,其中包括类型、名称、描述和输入架构。工具可能在 tool_resources 中有相应的配置。 | 
| 
 | ToolResource 的地图 | 对工具数组中每个引用工具的配置。密钥必须与相应工具的名称匹配。 | 
示例
{
  "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"
    }
  }
}
流式传输响应¶
agent:run API 提供流式传输响应。服务器流回事件。这允许您在应用程序中逐个令牌地显示由代理生成的响应。API 响应中流式传输的每个事件都有严格定义的模式。您可以在以下部分中找到所有事件的列表,并选择要订阅的事件。
API 发送的最后一个事件是 response 事件。此事件包含整个代理输出。您可以将其用作代理的最终响应。对于任何非流式传输客户端,您都可以订阅此事件,因为它是所有先前事件的逻辑聚合。如果您不想使用流式传输响应,请等待 response 事件并忽略所有先前的事件。
大多数其他流式传输事件可分为两类:Delta 和 Content Items。
Delta 事件表示代理生成的单个令牌。通过监听这些事件,您可以创建打字机效果。主要的 Delta 事件是表示推理令牌的 response.thinking.delta,以及表示答案令牌的 response.text.delta。
Content Item 事件表示最终代理响应中 content 数组中的元素。
备注
确保应用程序可以处理未知事件类型。
示例响应
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¶
最终响应可用时流式传输的事件。这是最后发出的事件,表示所有之前已流式传输事件的聚合结果。
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 字符串 | 消息的角色。在 API 响应中始终为  | 
| 
 | 代理生成的内容。 | 
示例
{
  "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¶
当一个文本内容块完成流式传输时触发的事件,包括某个内容索引的所有聚合增量。
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 整数 | 此事件所表示的内容块在响应的内容数组中的索引 | 
| 
 | 字符串 | 来自代理的文本结果 | 
| 
 | Annotation 的数组 | 附加到文本结果的任何注释(例如引用) | 
| 
 | 布尔 | 此文本内容是否表示代理正在向终端用户请求更多信息。 | 
示例
{
  "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¶
生成新的输出文本增量时流式传输的事件。
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 整数 | 此事件所表示的内容块在响应的内容数组中的索引 | 
| 
 | 字符串 | 文本增量 | 
| 
 | 布尔 | 此文本内容是否表示代理正在向终端用户请求更多信息。 | 
示例
{
  "content_index": 0,
  "text": "Hello",
  "is_elicitation": false
}
response.text.annotation¶
向文本内容添加注释时流式传输的事件。
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 整数 | 此事件所表示的内容块在响应的内容数组中的索引 | 
| 
 | 整数 | 此  | 
| 
 | 要添加的注释对象。 | 
示例
{
  "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¶
当一个思考内容块完成流式传输时触发的事件,包括某个内容索引的所有聚合增量。
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 整数 | 此事件所表示的内容块在响应的内容数组中的索引 | 
| 
 | 字符串 | 代理的思考令牌 | 
示例
{
  "content_index": 0,
  "text": "To answer your question I must..."
}
response.thinking.delta¶
生成思考增量时流式传输的事件。
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 整数 | 此事件所表示的内容块在响应的内容数组中的索引 | 
| 
 | 字符串 | 思考令牌 | 
示例
{
  "content_index": 0,
  "text": "lorem ipsum"
}
response.tool_use¶
当代理请求使用工具时流式传输的事件。
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 整数 | 此事件所表示的内容块在响应的内容数组中的索引 | 
| 
 | 字符串 | 此工具使用的唯一标识符。可用于关联工具结果。 | 
| 
 | 字符串 | 工具的类型(例如 cortex_search、cortex_analyst_text2sql) | 
| 
 | 字符串 | 此工具实例的唯一标识符 | 
| 
 | 对象 | 此工具的结构化输入。此对象的架构应根据工具规范而有所不同。 | 
| 
 | 布尔 | 工具使用是否在客户端执行。 | 
示例
{
  "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¶
工具完成执行时流式传输的事件,包括工具结果。
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 整数 | 此事件所表示的内容块在响应的内容数组中的索引 | 
| 
 | 字符串 | 此工具使用的唯一标识符。可用于关联工具结果。 | 
| 
 | 字符串 | 工具的类型(例如 cortex_search、cortex_analyst_text2sql) | 
| 
 | 字符串 | 此工具实例的唯一标识符 | 
| 
 | 工具结果的内容 | |
| 
 | 字符串 | 工具执行的状态 | 
示例
{
  "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¶
特定工具使用的状态更新。
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 字符串 | 此工具使用请求的唯一标识符。 | 
| 
 | 字符串 | 工具的类型(例如 cortex_search、cortex_analyst_text2sql) | 
| 
 | 字符串 | 当前状态的枚举。 | 
| 
 | 字符串 | 扩展说明当前状态的更详细消息。 | 
示例
{
  "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¶
为 Cortex Analyst 工具执行流式传输的增量事件
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 整数 | 此事件所表示的内容块在响应的内容数组中的索引 | 
| 
 | 字符串 | 此工具使用的唯一标识符。可用于关联工具结果。 | 
| 
 | 字符串 | 工具的类型(对于此事件,始终为 cortex_analyst_text2sql) | 
| 
 | 字符串 | 此工具实例的唯一标识符 | 
| 
 | 内容增量 | 
示例
{
  "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¶
添加表内容块时流式传输的事件。
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 整数 | 此事件所表示的内容块在响应的内容数组中的索引 | 
| 
 | 字符串 | 生成此表的工具使用的 ID | 
| 
 | 字符串 | 生成此数据的 sql 查询的查询 ID。 | 
| 
 | 呈现表的 SQL 结果。与 Snowflake SQL API ResultSet 的架构匹配 (https://docs.snowflake.cn/en/developer-guide/sql-api/reference#resultset) | |
| 
 | 字符串 | 此表的标题 | 
示例
{
  "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¶
添加图表内容块时流式传输的事件。
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 整数 | 此事件所表示的内容块在响应的内容数组中的索引 | 
| 
 | 字符串 | 生成此图表的工具使用的 ID | 
| 
 | 字符串 | 以字符串序列化的 vega-lite 图表规范 | 
示例
{
  "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¶
代理执行的状态更新。
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 字符串 | 当前状态的枚举。 | 
| 
 | 字符串 | 扩展说明当前状态的更详细消息。 | 
示例
{
  "status": "executing_tool",
  "message": "Executing tool `my_analyst_tool`"
}
error¶
遇到致命错误时发送。
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 字符串 | Snowflake 错误代码 | 
| 
 | 字符串 | 错误消息 | 
| 
 | 字符串 | 此请求的唯一标识符 | 
示例
{
  "code": "399504",
  "message": "Error during execution",
  "request_id": "61987ff6-6d56-4695-83c0-1e7cfed818c7"
}
metadata 事件¶
有关请求的元数据。将消息添加到线程时发送此事件。它对于获取 Parent_message_id,以便在后续向 Agents API 发起请求时使用。
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 字符串 | 确定是谁发送了消息,即用户或助手。 | 
| 
 | 整数 | 线程消息 ID。使用此 ID (当角色是  | 
示例
{
  "role": "user",
  "message_id": 0
}
架构¶
AgentInstructions¶
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 字符串 | 响应生成的指令。 | 
| 
 | 字符串 | 当代理计划使用哪些工具时,将使用这些自定义指令。 | 
| 
 | 字符串 | 代理的系统指令。 | 
示例
{
  "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¶
字段
类型
描述
type字符串
引文类型(始终为
cortex_search_citation)
text整数
搜索结果中引用的索引。
"tool_results"字符串
搜索结果的唯一标识符。
data.id字符串
文档的唯一标识符。
type字符串
文档的标题。
text字符串
文档中作为引用使用的文本片段。
示例
{ "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¶
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 整数 | 时间预算(秒)。 | 
| 
 | 整数 | 令牌预算。 | 
示例
{
  "seconds": 30,
  "tokens": 16000
}
ChartContent¶
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 字符串 | 生成此图表的工具使用的 ID | 
| 
 | 字符串 | 以字符串序列化的 vega-lite 图表规范 | 
示例
{
  "tool_use_id": "toolu_123",
  "chart_spec": "{\"$schema\":\"https://vega.github.io/schema/vega-lite/v5.json\",\"data\":{...},\"mark\":\"bar\"}"
}
CortexAnalystSuggestionDelta¶
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 整数 | 此增量在推荐数组中所代表的索引 | 
| 
 | 字符串 | 此索引推荐问题的文本增量 | 
示例
{
  "index": 0,
  "delta": "What..."
}
CortexAnalystToolResultDelta¶
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 字符串 | 来自 Cortex Analyst 最终响应的文本增量。 | 
| 
 | 字符串 | 来自 Cortex Analyst 推理步骤的文本增量。 | 
| 
 | 字符串 | 来自 Cortex Analyst SQL 输出的增量。目前,整个 SQL 查询会包含于单个事件中;但未来我们或许会逐词元地流式传输该 SQL。 | 
| 
 | 字符串 | 来自 Cortex Analyst 对 SQL 查询作用解释的增量 | 
| 
 | 字符串 | SQL 执行开始后的查询 ID | 
| 
 | 布尔 | 是否使用了已验证的查询来生成此响应 | 
| 
 | SQL 执行的结果。与 Snowflake SQL API ResultSet 的架构匹配 (https://docs.snowflake.cn/en/developer-guide/sql-api/reference#resultset) | |
| 
 | 来自 Cortex Analyst 推荐问题的增量。当 Analyst 因信息缺失或其他错误无法回答问题时发送。 | 
示例
{
  "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¶
服务器执行工具的配置。
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 字符串 | 执行环境的类型,目前仅支持  | 
| 
 | 字符串 | 仓库的名称。区分大小写,如果是未加引号的标识符,则提供全部大写的名称。 | 
| 
 | 整数 | 查询超时(以秒为单位) | 
示例
{
  "type": "warehouse",
  "warehouse": "MY_WAREHOUSE",
  "query_timeout": 60
}
Message¶
表示对话中的单条消息。可以来自用户或助手。
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 字符串 | 确定是谁发送了消息,即用户或助手。用户消息通常包含查询,而助手消息包含响应和工具结果。 | 
| 
 | 组成消息的内容元素数组。可以包含文本、工具结果或自定义内容类型。 | 
示例
{
  "role": "user",
  "content": [
    {
      "type": "text",
      "text": "What is the total revenue for 2023?"
    }
  ]
}
MessageContentItem¶
字段
类型
描述
type字符串
内容类型(始终为
chart)。
chart图表。
示例
{ "type": "chart", "chart": { "tool_use_id": "toolu_123", "chart_spec": "{\"$schema\":\"https://vega.github.io/schema/vega-lite/v5.json\",\"data\":{...},\"mark\":\"bar\"}" } }
字段
类型
描述
type字符串
内容类型(始终为
table)。
table表。
示例
{ "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" } }
字段
类型
描述
text字符串
来自代理的文本结果
AuthorizationAnnotation 的数组
附加到文本结果的任何注释(例如引用)
"application/pdf"布尔
此文本内容是否表示代理正在向终端用户请求更多信息。
type字符串
内容类型(始终为
text)。示例
{ "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" }
字段
类型
描述
type字符串
内容类型(始终为
thinking)。
Authorization思考内容。
示例
{ "type": "thinking", "thinking": { "text": "To answer your question I must..." } }
字段
类型
描述
type字符串
内容类型(始终为
tool_result)。
tool_result工具结果。
示例
{ "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" } }
字段
类型
描述
type字符串
内容类型(始终为
tool_use)。
tool_use工具使用。
示例
{ "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¶
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 字符串 | 用于编排的模型。如果未提供,则自动选择模型。 | 
示例
{
  "orchestration": "claude-4-sonnet"
}
OrchestrationConfig¶
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 代理的预算约束。如果指定了多个约束则最先命中的约束将结束请求。 | 
示例
{
  "budget": {
    "seconds": 30,
    "tokens": 16000
  }
}
ResultSet¶
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 字符串 | 查询 id。 | 
| 
 | 结果集上的元数据。 | |
| 
 | 数组构成的数组 | 表示数据的二维数组 | 
示例
{
  "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¶
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 整数 | 分区的索引号。 | 
| 
 | 整数 | 结果的总行数。 | 
| 
 | 字符串 | 结果集中数据的格式。 | 
| 
 | RowType 的数组 | 结果中列的描述。 | 
示例
{
  "partition": 0,
  "numRows": 0,
  "format": "jsonv2",
  "rowType": [
    {
      "name": "my_column",
      "type": "VARCHAR",
      "length": 0,
      "precision": 0,
      "scale": 0,
      "nullable": false
    }
  ]
}
RowType¶
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 字符串 | 列的名称。 | 
| 
 | 字符串 | 列的 Snowflake 数据类型。(https://docs.snowflake.cn/en/sql-reference/intro-summary-data-types) | 
| 
 | 整数 | 列的长度。 | 
| 
 | 整数 | 列的精度。 | 
| 
 | 整数 | 列的标度。 | 
| 
 | 布尔 | 指定列是否可为空。 | 
示例
{
  "name": "my_column",
  "type": "VARCHAR",
  "length": 0,
  "precision": 0,
  "scale": 0,
  "nullable": false
}
TableContent¶
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 字符串 | 生成此表的工具使用的 ID | 
| 
 | 字符串 | 生成此数据的 sql 查询的查询 ID。 | 
| 
 | 呈现表的 SQL 结果。与 Snowflake SQL API ResultSet 的架构匹配 (https://docs.snowflake.cn/en/developer-guide/sql-api/reference#resultset) | |
| 
 | 字符串 | 此表的标题 | 
示例
{
  "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¶
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 字符串 | 代理的思考令牌 | 
示例
{
  "text": "To answer your question I must..."
}
Tool¶
定义代理可以使用的工具。工具提供特定功能,如数据分析、搜索或通用功能。
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 工具的类型、配置及输入要求的规范。 | 
示例
{
  "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¶
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 字符串 | 确定如何选择工具:- auto - 自动选择工具(默认)- required - 必须使用至少一个工具 - tool - 明确指定名称的工具 | 
| 
 | array of string | 当类型为“tool”时,要使用的特定工具名称列表。 | 
示例
{
  "type": "auto",
  "name": [
    "analyst_tool",
    "search_tool"
  ]
}
ToolInputSchema¶
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 字符串 | 输入架构对象的类型。 | 
| 
 | 字符串 | 输入内容的描述。 | 
| 
 | ToolInputSchema 的地图 | 如果类型为  | 
| 
 | 如果类型为  | |
| 
 | array of string | 如果类型为  | 
示例
{
  "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¶
文本转 SQL 分析工具的配置。提供用于 SQL 查询生成和执行的参数。必须仅提供 semantic_model_file 或 semantic_view 之一。
字段
类型
描述
semantic_model_file字符串
存储在 Snowflake Stage 中的文件路径,该文件包含语义模型 yaml。
semantic_view字符串
Snowflake 原生语义模型对象的名称。
execution_environment用于生成的 SQL 查询的执行方式的配置。
示例
{ "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 } }搜索功能的配置。定义文档搜索和检索的方式。
字段
类型
描述
search_service字符串
搜索服务的完全限定名称。
title_column字符串
文档的标题列。
id_column字符串
文档的 ID 列。
filter对象
搜索结果的筛选查询。
示例
{ "search_service": "database.schema.service_name", "title_column": "account_name", "id_column": "account_id", "filter": { "@eq": { "<column>": "<value>" } } }
字段
类型
描述
type字符串
如果该工具是在服务器端执行的,用于表示它是存储过程还是 UDF。
execution_environment
identifier字符串
存储过程或 UDF 的完全限定名称。
示例
{ "type": "function", "execution_environment": { "type": "warehouse", "warehouse": "MY_WAREHOUSE", "query_timeout": 60 }, "identifier": "MY_DB.MY_SCHEMA.MY_UDF" }
ToolResult¶
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 字符串 | 此工具使用的唯一标识符。可用于关联工具结果。 | 
| 
 | 字符串 | 工具的类型(例如 cortex_search、cortex_analyst_text2sql) | 
| 
 | 字符串 | 此工具实例的唯一标识符 | 
| 
 | 工具结果的内容 | |
| 
 | 字符串 | 工具执行的状态 | 
示例
{
  "tool_use_id": "toolu_123",
  "type": "cortex_analyst_text2sql",
  "name": "my_cortex_analyst_semantic_view",
  "content": [
    {
      "type": "json",
      "json": {
        "answer": 42
      }
    }
  ],
  "status": "success"
}
ToolResultContent¶
字段
类型
描述
type字符串
结果的类型(始终为
json)
json对象
来自工具的结构化输出。架构因工具类型而异。
示例
{ "type": "json", "json": { "answer": 42 } }
字段
类型
描述
type字符串
结果的类型(始终为
text)
text字符串
结果文本
示例
{ "type": "text", "text": "The answer is 42" }
ToolSpec¶
工具的类型、配置及输入要求的规范。
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 字符串 | 工具功能类型。可以是专用类型,如“cortex_analyst_text_to_sql”或用于通用工具的“generic”。 | 
| 
 | 字符串 | 工具实例的唯一标识符。用于匹配 tool_resources 中的配置。 | 
| 
 | 字符串 | 待考虑使用工具的描述。 | 
| 
 | 此工具期望输入参数的 JSON 架构定义。这将被提供给代理,以便它在生成 ToolUses 的输入时,知道应遵循的结构。对于通用工具,此字段必填,用于指定输入参数。 | 
示例
{
  "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¶
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
 | 字符串 | 此工具使用的唯一标识符。可用于关联工具结果。 | 
| 
 | 字符串 | 工具的类型(例如 cortex_search、cortex_analyst_text2sql) | 
| 
 | 字符串 | 此工具实例的唯一标识符 | 
| 
 | 对象 | 此工具的结构化输入。此对象的架构应根据工具规范而有所不同。 | 
| 
 | 布尔 | 工具使用是否在客户端执行。 | 
示例
{
  "tool_use_id": "toolu_123",
  "type": "cortex_analyst_text2sql",
  "name": "my_cortex_analyst_semantic_view",
  "input": {
    "location": "San Francisco, CA"
  },
  "client_side_execute": "true"
}