Cortex Agents 実行 API¶
Agentとやり取りするには2つの方法があります。
エージェントオブジェクトを構築し、
agent:runAPI へのリクエストでこのエージェントオブジェクトを参照します。エージェントオブジェクトを使用せずに直接
agent:runを呼び出します。agent:runのリクエスト本文で構成を提示します。
どちらの方法も、Streaming Responses の下で指定されたサーバー送信イベントにより応答するストリーミング APIs を使用します。
エージェントオブジェクトによるエージェント実行リクエスト¶
POST /api/v2/databases/{database}/schemas/{schema}/agents/{name}:run
ユーザークエリをエージェントオブジェクトに送信し、その応答をイベントのストリームとして返します。
パスパラメーター¶
パラメーター |
説明 |
|---|---|
|
(必須)エージェントを含むデータベース。 |
|
(必須)エージェントを含むスキーマ。 |
|
(必須)エージェントの名前。 |
リクエストヘッダー¶
ヘッダー |
説明 |
|---|---|
|
(必須)認証トークン:ref: |
|
(必須)application/json |
リクエスト本文¶
フィールド |
型 |
説明 |
|---|---|---|
|
整数 |
会話のためのスレッド ID。thread_idを使用する場合、parent_message_idも渡す必要があります。 |
|
整数 |
そのスレッドの親メッセージの ID。これが最初のメッセージである場合、parent_message_idは0である必要があります。 |
|
Message の配列 |
リクエストでthread_idとparent_message_idを渡す場合、messagesには会話の現在のユーザーメッセージが含まれます。そうでない場合は、messagesには会話履歴と現在のメッセージが含まれます。messagesには、ユーザークエリとアシスタントの応答の両方が時系列で含まれます。 |
|
対話中にエージェントがどのようにツールを選択し、使用するかを構成します。ツールの使用が自動か、必須か、または特定のツールを使用すべきかを制御します。 |
例
{
"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 Agentサービスにユーザークエリを送信し、その応答を返します。エージェントオブジェクトを作成せずにエージェントと対話します。
注釈
2025年9月1日より前には、agent:run API のリクエストと応答のスキーマはこのドキュメントに記載されているスキーマとは異なりました。以前は、オーケストレーションは静的であり、回答を生成するために同じシーケンスのツールが使用されていました。現在 agent:run には、リクエストと応答の両方についてスキーマが更新されています。さらに、API は動的にオーケストレーションし、最終的な応答に到達するまで反復するようになりました。エンドユーザーの体験を改善するために、このドキュメントで説明されているスキーマを使用することをお勧めします。
従来のスキーマと動作を使用するには、次のスキーマを使用します。
{
"model": "claude-4-sonnet",
"messages": [
{"role":"user", "content": [] }
]
}
リクエストヘッダー¶
ヘッダー |
説明 |
|---|---|
|
(必須)認証トークン:ref: |
|
(必須)application/json |
リクエスト本文¶
フィールド |
型 |
説明 |
|---|---|---|
|
整数 |
会話のためのスレッド ID。thread_idを使用する場合、parent_message_idも渡す必要があります。 |
|
整数 |
そのスレッドの親メッセージの ID。これが最初のメッセージである場合、parent_message_idは0である必要があります。 |
|
Message の配列 |
リクエストでthread_idとparent_message_idを渡す場合、messagesには会話の現在のユーザーメッセージが含まれます。そうでない場合は、messagesには会話履歴と現在のメッセージが含まれます。messagesには、ユーザークエリとアシスタントの応答の両方が時系列で含まれます。 |
|
対話中にエージェントがどのようにツールを選択し、使用するかを構成します。ツールの使用が自動か、必須か、または特定のツールを使用すべきかを制御します。 |
|
|
エージェントのモデル構成。オーケストレーションモデル(claude-4-sonnetなど)が含まれます。提示されない場合、モデルは自動的に選択されます。現在、 |
|
|
応答、オーケストレーション、システム、サンプルの質問など、エージェントの動作の指示。 |
|
|
予算の制約(秒、トークンなど)を含むオーケストレーション構成。 |
|
|
Tool の配列 |
エージェントが利用可能なツールのリスト。各ツールには、型、名前、説明、入力スキーマを含むtool_specが含まれています。toolsには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 はストリーミング応答を提供します。サーバーはイベントをストリームバックします。これにより、Agentによって生成された応答をトークンごとにアプリケーションで表示できます。API 応答でストリーミングされる各イベントには、厳密に型付けされたスキーマがあります。次のセクションにはすべてのイベントのリストがあるので、サブスクライブするイベントを選択できます。
API によって送信された最後のイベントは response イベントです。このイベントには、エージェントの出力全体が含まれます。これはエージェントの最終応答として使用できます。非ストリーミングクライアントの場合、このイベントは以前のすべてのイベントの論理的な集約であるため、このイベントにサブスクライブできます。ストリーミング応答を使用しない場合は、response イベントを待ち、それ以前のすべてのイベントは無視します。
ストリーミングされている他のイベントの大部分は、2つのカテゴリに分けられます。デルタ と コンテンツアイテム です。
デルタ イベントは、Agentによって生成された単一のトークンを表します。これらのイベントをリッスンすることで、タイプライター効果を作成できます。主なデルタイベントは、推論トークンを表す response.thinking.delta と、回答トークンを表す response.text.delta です。
コンテンツアイテム イベントは、最終的なエージェント応答の コンテンツ 配列を表します。
注釈
確実にアプリケーションが不明なイベント型を処理できるようにします。
応答例
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¶
最終的な応答が利用可能になったときにストリーミングされるイベント。これは出力された最後のイベントであり、以前にストリーミングされた他のすべてのイベントの集約を表します。
フィールド |
型 |
説明 |
|---|---|---|
|
string |
メッセージのロール。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¶
テキストコンテンツブロックのストリーミングが完了したときにストリーミングされるイベントであり、特定のコンテンツインデックスのすべての集約されたデルタを含みます。
フィールド |
型 |
説明 |
|---|---|---|
|
整数 |
このイベントが表す応答コンテンツ配列のインデックス |
|
string |
エージェントからのテキスト結果 |
|
Annotation の配列 |
テキスト結果に添付された注釈(引用など) |
|
boolean |
このテキストコンテンツがエンドユーザーからの詳細情報を求めるエージェントであるかどうか。 |
例
{
"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¶
新しい出力テキストデルタが生成されたときにストリーミングされるイベント。
フィールド |
型 |
説明 |
|---|---|---|
|
整数 |
このイベントが表す応答コンテンツ配列のインデックス |
|
string |
テキストデルタ |
|
boolean |
このテキストコンテンツがエンドユーザーからの詳細情報を求めるエージェントであるかどうか。 |
例
{
"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¶
思考コンテンツブロックのストリーミングが完了したときにストリーミングされるイベントであり、特定のコンテンツインデックスのすべての集約されたデルタを含みます。
フィールド |
型 |
説明 |
|---|---|---|
|
整数 |
このイベントが表す応答コンテンツ配列のインデックス |
|
string |
エージェントからの思考トークン |
例
{
"content_index": 0,
"text": "To answer your question I must..."
}
response.thinking.delta¶
思考デルタが生成されたときにストリーミングされるイベント。
フィールド |
型 |
説明 |
|---|---|---|
|
整数 |
このイベントが表す応答コンテンツ配列のインデックス |
|
string |
思考トークン |
例
{
"content_index": 0,
"text": "lorem ipsum"
}
response.tool_use¶
エージェントがツールの使用をリクエストしたときにストリーミングされるイベント。
フィールド |
型 |
説明 |
|---|---|---|
|
整数 |
このイベントが表す応答コンテンツ配列のインデックス |
|
string |
このツールの使用に対する一意の識別子。関連ツールの結果に使用できます。 |
|
string |
ツールの型(cortex_search、cortex_analyst_text2sqlなど) |
|
string |
このツールインスタンスの一意の識別子 |
|
object |
このツールの構造化された入力。このオブジェクトのスキーマはツール仕様によって異なります。 |
|
boolean |
ツールの使用がクライアント側で実行されるかどうか。 |
例
{
"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¶
ツールの実行が終了したときにストリーミングされるイベントで、ツールの結果も含まれます。
フィールド |
型 |
説明 |
|---|---|---|
|
整数 |
このイベントが表す応答コンテンツ配列のインデックス |
|
string |
このツールの使用に対する一意の識別子。関連ツールの結果に使用できます。 |
|
string |
ツールの型(cortex_search、cortex_analyst_text2sqlなど) |
|
string |
このツールインスタンスの一意の識別子 |
|
ツール結果のコンテンツ |
|
|
string |
ツールの実行のステータス |
例
{
"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¶
特定のツール使用のためのステータス更新。
フィールド |
型 |
説明 |
|---|---|---|
|
string |
このツールの使用に対する一意の識別子。 |
|
string |
ツールの型(cortex_search、cortex_analyst_text2sqlなど) |
|
string |
現在の状態の列挙型。 |
|
string |
現在のステータスを拡張するより説明的なメッセージ。 |
例
{
"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ツール実行用にストリーミングされたデルタイベント
フィールド |
型 |
説明 |
|---|---|---|
|
整数 |
このイベントが表す応答コンテンツ配列のインデックス |
|
string |
このツールの使用に対する一意の識別子。関連ツールの結果に使用できます。 |
|
string |
ツールの型(このイベントの場合は常にcortex_analyst_text2sql) |
|
string |
このツールインスタンスの一意の識別子 |
|
コンテンツデルタ |
例
{
"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¶
テーブルコンテンツブロックが追加されたときにストリーミングされるイベント。
フィールド |
型 |
説明 |
|---|---|---|
|
整数 |
このイベントが表す応答コンテンツ配列のインデックス |
|
string |
このテーブルを生成したツール使用の ID |
|
string |
このデータを生成したSQLクエリのクエリID |
|
テーブルをレンダリングする SQL の結果。Snowflakeの SQL API ResultSet (https://docs.snowflake.com/en/developer-guide/sql-api/reference#resultset)のスキーマと一致します |
|
|
string |
このテーブルのタイトル |
例
{
"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¶
チャートコンテンツブロックが追加されたときにストリーミングされるイベント。
フィールド |
型 |
説明 |
|---|---|---|
|
整数 |
このイベントが表す応答コンテンツ配列のインデックス |
|
string |
このチャートを生成したツール使用の ID |
|
string |
文字列としてシリアル化された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¶
エージェント実行のステータス更新。
フィールド |
型 |
説明 |
|---|---|---|
|
string |
現在の状態の列挙型。 |
|
string |
現在のステータスを拡張するより説明的なメッセージ。 |
例
{
"status": "executing_tool",
"message": "Executing tool `my_analyst_tool`"
}
error¶
致命的なエラーが発生したときに送信されます。
フィールド |
型 |
説明 |
|---|---|---|
|
string |
Snowflakeエラーコード |
|
string |
エラーメッセージ |
|
string |
リクエストに対する一意の識別子。 |
例
{
"code": "399504",
"message": "Error during execution",
"request_id": "61987ff6-6d56-4695-83c0-1e7cfed818c7"
}
metadata イベント¶
リクエストに関するメタデータ。このイベントは、スレッドにメッセージが追加されたときに送信されます。Agents API に対する次のリクエストで使用する parent_message_id を取得するのに便利です。
フィールド |
型 |
説明 |
|---|---|---|
|
string |
メッセージの送信者(ユーザーかアシスタントのいずれか)を識別します。 |
|
整数 |
スレッドメッセージID。この ID (ロールが |
例
{
"role": "user",
"message_id": 0
}
スキーマ¶
AgentInstructions¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
応答生成の指示。 |
|
string |
これらのカスタム手順は、エージェントが使用するツールを計画するときに使用されます。 |
|
string |
エージェントのシステム指示。 |
例
{
"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¶
フィールド
型
説明
typestring
引用の型(常に
cortex_search_citation)
index整数
検索結果内の引用のインデックス。
search_result_idstring
検索結果の一意の識別子。
doc_idstring
ドキュメントに対する一意の識別子。
doc_titlestring
ドキュメントのタイトル。
textstring
引用として使用されるドキュメントからのテキストの抜粋。
例
{ "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¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
このチャートを生成したツール使用の ID |
|
string |
文字列としてシリアル化されたVega-Liteチャート仕様 |
例
{
"tool_use_id": "toolu_123",
"chart_spec": "{\"$schema\":\"https://vega.github.io/schema/vega-lite/v5.json\",\"data\":{...},\"mark\":\"bar\"}"
}
CortexAnalystSuggestionDelta¶
フィールド |
型 |
説明 |
|---|---|---|
|
整数 |
このデルタが表す提案配列のインデックス |
|
string |
このインデックスの提案のテキストデルタ |
例
{
"index": 0,
"delta": "What..."
}
CortexAnalystToolResultDelta¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
Cortex Analystの最終応答からのテキストデルタ。 |
|
string |
Cortex Analystの推論ステップからのテキストデルタ。 |
|
string |
Cortex Analystの SQL 出力からのデルタ。現在は、SQL クエリ全体が単一のイベントで送られますが、将来的には、トークン単位で SQL をストリーミングできます。 |
|
string |
Cortex Analystの SQL クエリが行うことの説明からのデルタ |
|
string |
SQL 実行開始後のクエリID |
|
boolean |
この応答を生成するために検証済みクエリが使用されたかどうか |
|
SQL 実行からの結果。Snowflakeの SQL API ResultSet (https://docs.snowflake.com/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¶
サーバー実行ツールの構成。
フィールド |
型 |
説明 |
|---|---|---|
|
string |
実行環境の型。現在は |
|
string |
ウェアハウスの名前。大文字と小文字が区別され、引用符で囲まれていない識別子の場合は、名前をすべて大文字で指定します。 |
|
整数 |
クエリのタイムアウト(秒) |
例
{
"type": "warehouse",
"warehouse": "MY_WAREHOUSE",
"query_timeout": 60
}
Message¶
会話の単一のメッセージを表します。ユーザーから、またはアシスタントからのいずれかです。
フィールド |
型 |
説明 |
|---|---|---|
|
string |
メッセージの送信者(ユーザーかアシスタントのいずれか)を識別します。通常、ユーザーメッセージにはクエリが含まれ、アシスタントメッセージには応答とツール結果が含まれます。 |
|
メッセージを構成するコンテンツ要素の配列。テキスト、ツール結果、またはカスタムコンテンツの型を含めることができます。 |
例
{
"role": "user",
"content": [
{
"type": "text",
"text": "What is the total revenue for 2023?"
}
]
}
MessageContentItem¶
フィールド
型
説明
typestring
コンテンツの型(常に
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\"}" } }
フィールド
型
説明
typestring
コンテンツの型(常に
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" } }
フィールド
型
説明
textstring
エージェントからのテキスト結果
annotationsAnnotation の配列
テキスト結果に添付された注釈(引用など)
is_elicitationboolean
このテキストコンテンツがエンドユーザーからの詳細情報を求めるエージェントであるかどうか。
typestring
コンテンツの型(常に
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" }
フィールド
型
説明
typestring
コンテンツの型(常に
thinking)。
thinking思考コンテンツ。
例
{ "type": "thinking", "thinking": { "text": "To answer your question I must..." } }
フィールド
型
説明
typestring
コンテンツの型(常に
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" } }
フィールド
型
説明
typestring
コンテンツの型(常に
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¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
オーケストレーションに使用するモデル。提示されない場合、モデルは自動的に選択されます。 |
例
{
"orchestration": "claude-4-sonnet"
}
OrchestrationConfig¶
フィールド |
型 |
説明 |
|---|---|---|
|
エージェントの予算の制約。複数の制約が指定されている場合は、最初のヒットでリクエストが終了します。 |
例
{
"budget": {
"seconds": 30,
"tokens": 16000
}
}
ResultSet¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
クエリID。 |
|
結果セットのメタデータ。 |
|
|
配列の配列 |
データを表す2D配列 |
例
{
"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¶
フィールド |
型 |
説明 |
|---|---|---|
|
整数 |
パーティションのインデックス番号。 |
|
整数 |
結果の行の合計数。 |
|
string |
結果セット内のデータの形式。 |
|
RowType の配列 |
結果内の列の説明。 |
例
{
"partition": 0,
"numRows": 0,
"format": "jsonv2",
"rowType": [
{
"name": "my_column",
"type": "VARCHAR",
"length": 0,
"precision": 0,
"scale": 0,
"nullable": false
}
]
}
RowType¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
列の名前。 |
|
string |
Snowflakeの列のデータ型。(https://docs.snowflake.com/en/sql-reference/intro-summary-data-types) |
|
整数 |
列の長さ。 |
|
整数 |
列の精度。 |
|
整数 |
列のスケール。 |
|
boolean |
列がNULL許容かどうかを指定します。 |
例
{
"name": "my_column",
"type": "VARCHAR",
"length": 0,
"precision": 0,
"scale": 0,
"nullable": false
}
TableContent¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
このテーブルを生成したツール使用の ID |
|
string |
このデータを生成したSQLクエリのクエリID |
|
テーブルをレンダリングする SQL の結果。Snowflakeの SQL API ResultSet (https://docs.snowflake.com/en/developer-guide/sql-api/reference#resultset)のスキーマと一致します |
|
|
string |
このテーブルのタイトル |
例
{
"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¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
エージェントからの思考トークン |
例
{
"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¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
ツールの選択方法を定義します。autoは自動ツール選択(デフォルト)で、requiredは1つ以上のツールを使用する必要があり、toolは特定の名前のツールを使用します。 |
|
文字列の配列。 |
型が「tool」の場合に使用する特定のツール名のリスト。 |
例
{
"type": "auto",
"name": [
"analyst_tool",
"search_tool"
]
}
ToolInputSchema¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
入力スキーマオブジェクトのタイプ。 |
|
string |
入力が何かの説明。 |
|
ToolInputSchema のマップ |
型が |
|
型が |
|
|
文字列の配列。 |
型が |
例
{
"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_filestring
セマンティックモデルyamlを保持するSnowflakeステージに格納されているファイルへのパス。
semantic_viewstring
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_servicestring
検索サービスの完全修飾名。
title_columnstring
ドキュメントのタイトル列。
id_columnstring
ドキュメントの ID 列。
filterobject
検索結果のクエリをフィルターします。
例
{ "search_service": "database.schema.service_name", "title_column": "account_name", "id_column": "account_id", "filter": { "@eq": { "<column>": "<value>" } } }
フィールド
型
説明
typestring
ツールがサーバー側で実行される場合、ストアドプロシージャか UDF のどちらであるか。
execution_environment
identifierstring
ストアドプロシージャまたは UDF の完全修飾名。
例
{ "type": "function", "execution_environment": { "type": "warehouse", "warehouse": "MY_WAREHOUSE", "query_timeout": 60 }, "identifier": "MY_DB.MY_SCHEMA.MY_UDF" }
ToolResult¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
このツールの使用に対する一意の識別子。関連ツールの結果に使用できます。 |
|
string |
ツールの型(cortex_search、cortex_analyst_text2sqlなど) |
|
string |
このツールインスタンスの一意の識別子 |
|
ツール結果のコンテンツ |
|
|
string |
ツールの実行のステータス |
例
{
"tool_use_id": "toolu_123",
"type": "cortex_analyst_text2sql",
"name": "my_cortex_analyst_semantic_view",
"content": [
{
"type": "json",
"json": {
"answer": 42
}
}
],
"status": "success"
}
ToolResultContent¶
フィールド
型
説明
typestring
結果の型(常に
json)
jsonobject
ツールからの構造化出力。スキーマはツールの型によって異なります。
例
{ "type": "json", "json": { "answer": 42 } }
フィールド
型
説明
typestring
結果の型(常に
text)
textstring
結果テキスト
例
{ "type": "text", "text": "The answer is 42" }
ToolSpec¶
ツールの型、構成、および入力要件の仕様。
フィールド |
型 |
説明 |
|---|---|---|
|
string |
ツール機能の型。「cortex_analyst_text_to_sql」のような特殊型や汎用ツール向けの「generic」など。 |
|
string |
このツールインスタンスを参照するための一意の識別子。tool_resourcesの構成と照合するために使用されます。 |
|
string |
ツールの使用を考慮するツールの説明。 |
|
このツールに対して想定される入力パラメーターの 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¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
このツールの使用に対する一意の識別子。関連ツールの結果に使用できます。 |
|
string |
ツールの型(cortex_search、cortex_analyst_text2sqlなど) |
|
string |
このツールインスタンスの一意の識別子 |
|
object |
このツールの構造化された入力。このオブジェクトのスキーマはツール仕様によって異なります。 |
|
boolean |
ツールの使用がクライアント側で実行されるかどうか。 |
例
{
"tool_use_id": "toolu_123",
"type": "cortex_analyst_text2sql",
"name": "my_cortex_analyst_semantic_view",
"input": {
"location": "San Francisco, CA"
},
"client_side_execute": "true"
}