Cortex Agents 실행 API¶
참고
Cortex Agent REST API에 대한 요청은 15분 후에 시간 초과됩니다.
에이전트와 상호 작용하는 두 가지 방법은 다음과 같습니다.
에이전트 오브젝트를 만들고
agent:runAPI에 대한 요청에서 이 에이전트 오브젝트를 참조합니다.에이전트 오브젝트 없이 :code:`agent:run`을 직접 호출합니다. :code:`agent:run`의 요청 본문에 구성을 입력합니다.
:code:`agent:run`은 **기본적으로 스트리밍 응답**을 지원합니다. 스트리밍을 비활성화하고 단일 JSON 응답을 수신하려면 :code:`stream`을 :code:`false`로 설정합니다.
에이전트 오브젝트를 통한 에이전트 실행 요청¶
POST /api/v2/databases/{database}/schemas/{schema}/agents/{name}:run
에이전트 오브젝트에 사용자 쿼리를 보내고 응답을 반환합니다.
기본적으로 API는 서버 전송 이벤트(SSE)로 응답을 스트리밍합니다. 단일 JSON 응답을 수신하려면 요청 분문에서 :code:`stream`을 :code:`false`로 설정합니다.
참고
이 요청을 사용하여 models, instructions 및 orchestration 필드를 설정하거나, 업데이트하거나, 덮어쓸 수 없습니다. 이러한 필드를 업데이트하려면 :ref:`label_snowflake_agents_rest_api_update`를 사용해야 합니다.
경로 매개 변수¶
매개 변수 |
설명 |
|---|---|
|
(필수) 에이전트가 포함된 데이터베이스입니다. |
|
(필수) 에이전트가 포함된 스키마입니다. |
|
(필수) 에이전트의 이름입니다. |
헤더 요청¶
요청 본문¶
필드 |
타입 |
설명 |
|---|---|---|
|
정수 |
대화의 스레드 ID입니다. thread_id가 사용되는 경우 parent_message_id도 전달해야 합니다. |
|
정수 |
스레드에 있는 상위 메시지의 ID입니다. 이것이 첫 번째 메시지인 경우 parent_message_id는 0이어야 합니다. |
|
:ref:`label_snowflake_agent_run_Message`의 배열 |
thread_id 및 parent_message_id가 요청에서 전달되는 경우 메시지의 대화에는 현재 사용자 메시지가 포함됩니다. 그렇지 않으면 메시지에는 대화 기록과 현재 메시지가 포함됩니다. 메시지에는 사용자 쿼리와 어시스턴트 응답이 모두 시간순으로 포함됩니다. |
|
boolean |
스트리밍 응답( |
|
에이전트가 상호 작용 중에 도구를 선택하고 사용하는 방법을 구성합니다. 도구 사용이 자동인지, 필수인지 또는 특정 도구를 사용해야 하는지를 제어합니다. |
예
요청 본문은 선택적 stream 부울 필드를 지원합니다.
에이전트 오브젝트 없이 에이전트 실행¶
POST /api/v2/cortex/agent:run
요청 본문에 제공된 Cortex Agents 서비스에 사용자 쿼리를 보내고 해당 응답을 반환합니다. 에이전트 오브젝트를 생성하지 않고 에이전트와 상호 작용합니다.
참고
2025년 9월 1일 이전에는 agent:run API에 대한 요청 및 응답 스키마가 이 문서에 나열된 스키마와 달랐습니다. 이전에는 오케스트레이션이 정적이었고 동일한 도구 시퀀스를 사용하여 답변을 생성했습니다. :code:`agent:run`은 이제 요청과 응답 모두에 대해 업데이트된 스키마를 제공합니다. 또한, 이 API는 이제 동적으로 오케스트레이션하고 반복하면서 최종 응답에 도달합니다. 최종 사용자 환경을 개선하려면 이 문서에 설명된 스키마를 사용하는 것이 좋습니다.
레거시 스키마와 동작을 사용하려면 다음 스키마를 사용합니다.
헤더 요청¶
요청 본문¶
필드 |
타입 |
설명 |
|---|---|---|
|
정수 |
대화의 스레드 ID입니다. thread_id가 사용되는 경우 parent_message_id도 전달해야 합니다. |
|
정수 |
스레드에 있는 상위 메시지의 ID입니다. 이것이 첫 번째 메시지인 경우 parent_message_id는 0이어야 합니다. |
|
:ref:`label_snowflake_agent_run_Message`의 배열 |
thread_id 및 parent_message_id가 요청에서 전달되는 경우 메시지의 대화에는 현재 사용자 메시지가 포함됩니다. 그렇지 않으면 메시지에는 대화 기록과 현재 메시지가 포함됩니다. 메시지에는 사용자 쿼리와 어시스턴트 응답이 모두 시간순으로 포함됩니다. |
|
boolean |
스트리밍 응답( |
|
에이전트가 상호 작용 중에 도구를 선택하고 사용하는 방법을 구성합니다. 도구 사용이 자동인지, 필수인지 또는 특정 도구를 사용해야 하는지를 제어합니다. |
|
|
에이전트의 모델 구성입니다. 오케스트레이션 모델을 포함합니다(예: clade-4-sonnet). 입력하지 않으면 모델이 자동으로 선택됩니다. 현재 |
|
|
응답, 오케스트레이션, 시스템, 샘플 질문 등 에이전트의 동작에 대한 지침입니다. |
|
|
예산 제약 조건(예: 초, 토큰)을 포함한 오케스트레이션 구성입니다. |
|
|
:ref:`label_snowflake_agent_run_Tool`의 배열 |
에이전트가 사용할 수 있는 도구 목록입니다. 각 도구에는 유형, 이름, 설명, 입력 스키마가 있는 tool_spec이 포함됩니다. 도구의 tool_resources에 해당 구성이 있을 수 있습니다. |
|
:ref:`label_snowflake_agent_run_ToolResource`의 맵 |
도구 배열에서 참조되는 각 도구에 대한 구성입니다. 키는 해당 도구의 이름과 일치해야 합니다. |
예
요청 본문은 선택적 stream 부울 필드를 지원합니다.
스트리밍 응답¶
agent:run API는 스트리밍 응답을 제공합니다. 서버는 이벤트를 다시 스트리밍합니다. 이를 통해 에이전트가 생성한 응답을 토큰별로 애플리케이션에 표시할 수 있습니다. API 응답에서 스트리밍되는 각 이벤트는 엄격한 형식의 스키마를 제공합니다. 다음 섹션에서 모든 이벤트의 목록을 찾아 구독할 이벤트를 선택할 수 있습니다.
API에서 보낸 마지막 이벤트는 response 이벤트입니다. 이 이벤트에는 전체 에이전트 출력이 포함됩니다. 이를 에이전트의 최종 응답으로 사용할 수 있습니다. 비 스트리밍 클라이언트의 경우 이 이벤트는 모든 이전 이벤트의 논리적 집계이므로 구독할 수 있습니다. 스트리밍 응답을 사용하지 않으려면 response 이벤트를 대기하고 모든 이전 이벤트를 무시합니다.
스트리밍되는 대부분의 다른 이벤트는 두 가지 카테고리, 즉 델타 및 `콘텐츠 항목`으로 나눌 수 있습니다.
델타 이벤트는 에이전트가 생성한 단일 토큰을 나타냅니다. 이러한 이벤트를 수신하여 타자기 효과를 만들 수 있습니다. 주요 델타 이벤트는 추론 토큰을 나타내는 `response.Thinking.delta`와 응답 토큰을 나타내는 `response.text.delta`입니다.
콘텐츠 항목 이벤트는 최종 에이전트 응답의 콘텐츠 배열에 있는 요소를 나타냅니다.
참고
애플리케이션이 알 수 없는 이벤트 유형을 처리할 수 있는지 확인하세요.
응답 예
response¶
최종 응답을 사용할 수 있을 때 이벤트가 스트리밍됩니다. 이는 마지막으로 발생한 이벤트로, 이전에 스트리밍된 다른 모든 이벤트의 집계를 나타냅니다.
예
response.text¶
특정 콘텐츠 인덱스에 대해 집계된 모든 델타를 포함하여, 텍스트 콘텐츠 블록의 스트리밍이 완료될 때 스트리밍되는 이벤트입니다.
필드 |
타입 |
설명 |
|---|---|---|
|
정수 |
이 이벤트가 나타내는 응답 콘텐츠 배열의 인덱스입니다 |
|
문자열 |
에이전트의 텍스트 결과입니다 |
|
:ref:`label_snowflake_agent_run_Annotation`의 배열 |
텍스트 결과에 첨부된 모든 주석(예: 인용)입니다 |
|
boolean |
이 텍스트 콘텐츠가 최종 사용자에게 추가 정보를 요청하는 에이전트인지 여부입니다. |
예
response.text.delta¶
새 출력 텍스트 델타가 생성될 때 스트리밍되는 이벤트입니다.
필드 |
타입 |
설명 |
|---|---|---|
|
정수 |
이 이벤트가 나타내는 응답 콘텐츠 배열의 인덱스입니다 |
|
문자열 |
텍스트 델타입니다. |
|
boolean |
이 텍스트 콘텐츠가 최종 사용자에게 추가 정보를 요청하는 에이전트인지 여부입니다. |
예
response.text.annotation¶
텍스트 콘텐츠에 주석이 추가될 때 스트리밍되는 이벤트입니다.
필드 |
타입 |
설명 |
|---|---|---|
|
정수 |
이 이벤트가 나타내는 응답 콘텐츠 배열의 인덱스입니다 |
|
정수 |
이 `주석`이 속한 주석 배열의 인덱스입니다. |
|
추가되는 주석 오브젝트입니다. |
예
response.thinking¶
특정 콘텐츠 인덱스에 대해 집계된 모든 델타를 포함하여, 사고 콘텐츠 블록의 스트리밍이 완료될 때 스트리밍되는 이벤트입니다.
필드 |
타입 |
설명 |
|---|---|---|
|
정수 |
이 이벤트가 나타내는 응답 콘텐츠 배열의 인덱스입니다 |
|
문자열 |
에이전트의 사고 토큰입니다 |
|
문자열 |
사고 토큰의 서명입니다. |
예
response.thinking.delta¶
사고 델타가 생성될 때 스트리밍되는 이벤트입니다.
필드 |
타입 |
설명 |
|---|---|---|
|
정수 |
이 이벤트가 나타내는 응답 콘텐츠 배열의 인덱스입니다 |
|
문자열 |
사고 토큰입니다 |
|
문자열 |
사고 토큰의 서명입니다. |
예
response.tool_use¶
에이전트가 도구 사용을 요청할 때 스트리밍되는 이벤트입니다.
필드 |
타입 |
설명 |
|---|---|---|
|
정수 |
이 이벤트가 나타내는 응답 콘텐츠 배열의 인덱스입니다 |
|
문자열 |
이 도구 사용에 대한 고유 식별자입니다. 연결된 도구 결과에 사용할 수 있습니다. |
|
문자열 |
도구의 유형(예: cortex_search, cortex_analyst_text_to_sql)입니다 |
|
문자열 |
이 도구 인스턴스의 고유 식별자입니다 |
|
오브젝트 |
이 도구의 정형 입력입니다. 이 오브젝트의 스키마는 도구 사양에 따라 달라집니다. |
|
boolean |
도구 사용이 클라이언트 측에서 실행되는지 여부입니다. |
예
response.tool_result¶
도구 실행이 완료되면 스트리밍되는 이벤트로, 도구 결과를 포함합니다.
필드 |
타입 |
설명 |
|---|---|---|
|
정수 |
이 이벤트가 나타내는 응답 콘텐츠 배열의 인덱스입니다 |
|
문자열 |
이 도구 사용에 대한 고유 식별자입니다. 연결된 도구 결과에 사용할 수 있습니다. |
|
문자열 |
도구의 유형(예: cortex_search, cortex_analyst_text_to_sql)입니다 |
|
문자열 |
이 도구 인스턴스의 고유 식별자입니다 |
|
:ref:`label_snowflake_agent_run_ToolResultContent`의 배열 |
도구 결과의 콘텐츠입니다 |
|
문자열 |
도구 실행 상태입니다 |
예
response.tool_result.status¶
특정 도구 사용에 대한 상태 업데이트입니다.
필드 |
타입 |
설명 |
|---|---|---|
|
문자열 |
이 도구 사용에 대한 고유 식별자입니다. |
|
문자열 |
도구의 유형(예: cortex_search, cortex_analyst_text_to_sql)입니다 |
|
문자열 |
현재 상태의 열거형입니다. |
|
문자열 |
현재 상태를 더 상세히 설명하는 메시지입니다. |
|
오브젝트 |
도구별 상태 세부 정보입니다. |
예
response.tool_result.analyst.delta ¶
Cortex Analyst 도구 실행 시 스트리밍되는 델타 이벤트입니다
필드 |
타입 |
설명 |
|---|---|---|
|
정수 |
이 이벤트가 나타내는 응답 콘텐츠 배열의 인덱스입니다 |
|
문자열 |
이 도구 사용에 대한 고유 식별자입니다. 연결된 도구 결과에 사용할 수 있습니다. |
|
문자열 |
도구의 유형입니다(이 이벤트의 경우 항상 cortex_analyst_text_to_sql). |
|
문자열 |
이 도구 인스턴스의 고유 식별자입니다 |
|
콘텐츠 델타입니다 |
예
response.table¶
테이블 콘텐츠 블록이 추가될 때 스트리밍되는 이벤트입니다.
필드 |
타입 |
설명 |
|---|---|---|
|
정수 |
이 이벤트가 나타내는 응답 콘텐츠 배열의 인덱스입니다 |
|
문자열 |
이 테이블을 생성한 도구 사용의 ID입니다 |
|
문자열 |
이 데이터를 생성한 SQL 쿼리의 쿼리 ID입니다 |
|
테이블을 렌더링하기 위한 SQL 결과입니다. Snowflake의 SQL API ResultSet(https://docs.snowflake.com/en/developer-guide/sql-api/reference#resultset) 스키마와 일치합니다 |
|
|
문자열 |
이 테이블의 제목입니다 |
예
response.chart¶
차트 콘텐츠 블록이 추가될 때 스트리밍되는 이벤트입니다.
필드 |
타입 |
설명 |
|---|---|---|
|
정수 |
이 이벤트가 나타내는 응답 콘텐츠 배열의 인덱스입니다 |
|
문자열 |
이 차트를 생성한 도구 사용의 ID입니다 |
|
문자열 |
문자열로 직렬화된 vega-lite 차트 사양입니다 |
예
response.status¶
에이전트 실행에 대한 상태 업데이트 입니다.
필드 |
타입 |
설명 |
|---|---|---|
|
문자열 |
현재 상태의 열거형입니다. |
|
문자열 |
현재 상태를 더 상세히 설명하는 메시지입니다. |
예
response.warning¶
심각하지 않은 경고가 발생할 때 전송됩니다. 스트림은 이 이벤트 이후에도 계속됩니다.
필드 |
타입 |
설명 |
|---|---|---|
|
문자열 |
사용자에게 표시할 경고 메시지입니다. |
예
error¶
치명적인 오류가 발생하면 전송됩니다.
필드 |
타입 |
설명 |
|---|---|---|
|
문자열 |
Snowflake 오류 코드입니다 |
|
문자열 |
오류 메시지입니다 |
|
문자열 |
이 요청의 고유 식별자입니다 |
예
metadata¶
요청에 대한 메타데이터입니다. 이 이벤트는 메시지가 스레드에 추가될 때 전송됩니다. 에이전트 API에 대한 다음 요청에서 사용할 `parent_message_id`를 가져올 때 유용합니다.
필드 |
타입 |
설명 |
|---|---|---|
|
예
스키마¶
AgentInstructions¶
필드 |
타입 |
설명 |
|---|---|---|
|
문자열 |
응답 생성 지침입니다. |
|
문자열 |
이러한 사용자 지정 지침은 에이전트가 사용할 도구를 계획할 때 사용됩니다. |
|
문자열 |
에이전트에 대한 시스템 지침입니다. |
예
Annotation¶
필드
타입
설명
type문자열
인용 유형입니다(항상
cortex_search_citation)
index정수
검색 결과의 인용 인덱스입니다.
search_result_id문자열
검색 결과의 고유 식별자입니다.
doc_id문자열
문서의 고유 식별자입니다.
doc_title문자열
문서의 제목입니다.
text문자열
인용으로 사용된 문서에서 발췌한 텍스트입니다.
예
BudgetConfig¶
필드 |
타입 |
설명 |
|---|---|---|
|
정수 |
시간 예산(초)입니다. |
|
정수 |
토큰 예산입니다. |
예
ChartContent¶
필드 |
타입 |
설명 |
|---|---|---|
|
문자열 |
이 차트를 생성한 도구 사용의 ID입니다 |
|
문자열 |
문자열로 직렬화된 vega-lite 차트 사양입니다 |
예
CortexAnalystSuggestionDelta¶
필드 |
타입 |
설명 |
|---|---|---|
|
정수 |
이 델타가 나타내는 제안 배열의 인덱스입니다 |
|
문자열 |
이 인덱스의 제안에 대한 텍스트 델타입니다 |
예
CortexAnalystToolResultDelta¶
필드 |
타입 |
설명 |
|---|---|---|
|
문자열 |
Cortex Analyst의 최종 응답에서 가져온 텍스트 델타입니다. |
|
문자열 |
Cortex Analyst 추론 단계의 텍스트 델타입니다. |
|
문자열 |
Cortex Analyst SQL 출력의 델타입니다. 현재는 전체 SQL 쿼리가 단일 이벤트로 발생하지만 향후에는 토큰별로 SQL을 스트리밍할 수 있습니다. |
|
문자열 |
SQL 쿼리가 수행하는 작업에 대한 Cortex Analyst 설명에서 가져온 델타입니다 |
|
문자열 |
SQL 실행이 시작된 쿼리 ID입니다 |
|
boolean |
확인된 쿼리가 이 응답을 생성하는 데 사용되었는지 여부입니다 |
|
SQL 실행의 결과입니다. Snowflake의 SQL API ResultSet(https://docs.snowflake.com/en/developer-guide/sql-api/reference#resultset) 스키마와 일치합니다 |
|
|
Cortex Analyst가 제안한 질문의 델타입니다. 이는 Analyst가 정보 누락이나 기타 오류로 인해 질문에 답변할 수 없을 때 전송됩니다. |
예
ExecutionEnvironment¶
서버 실행 도구에 대한 구성입니다.
필드 |
타입 |
설명 |
|---|---|---|
|
문자열 |
실행 환경의 유형으로, 현재 `웨어하우스`만 지원됩니다. |
|
문자열 |
웨어하우스의 이름입니다. 대소문자를 구분하며, 따옴표가 없는 식별자인 경우 이름을 모두 대문자로 입력합니다. |
|
정수 |
쿼리 시간 제한(초)입니다. |
예
InputTokens¶
캐시 사용량별 입력 토큰 분석입니다.
필드 |
타입 |
설명 |
|---|---|---|
|
정수 |
처리된 총 입력 토큰 수입니다(캐시된 토큰 포함). |
|
정수 |
캐시에서 읽은 입력 토큰입니다. |
|
정수 |
캐시에 작성된 입력 토큰입니다. |
|
정수 |
캐시되지 않은 입력 토큰입니다. |
예
Message¶
대화의 단일 메시지를 나타냅니다. 사용자 또는 어시스턴트의 메시지일 수 있습니다.
필드 |
타입 |
설명 |
|---|---|---|
|
문자열 |
메시지를 보낸 사람(사용자 또는 어시스턴트)을 식별합니다. 사용자 메시지에는 일반적으로 쿼리가 포함되며, 어시스턴트 메시지에는 응답 및 도구 결과가 포함됩니다. |
|
:ref:`label_snowflake_agent_run_MessageContentItem`의 배열 |
메시지를 구성하는 콘텐츠 요소의 배열입니다. 텍스트, 도구 결과 또는 사용자 지정 콘텐츠 유형을 포함할 수 있습니다. |
예
MessageContentItem¶
필드
타입
설명
type문자열
콘텐츠 유형입니다(항상
chart).
chart차트입니다.
예
필드
타입
설명
type문자열
콘텐츠 유형입니다(항상
table).
table테이블입니다.
예
필드
타입
설명
text문자열
에이전트의 텍스트 결과입니다
annotations:ref:`label_snowflake_agent_run_Annotation`의 배열
텍스트 결과에 첨부된 모든 주석(예: 인용)입니다
is_elicitationboolean
이 텍스트 콘텐츠가 최종 사용자에게 추가 정보를 요청하는 에이전트인지 여부입니다.
type문자열
콘텐츠 유형입니다(항상
text).예
필드
타입
설명
type문자열
콘텐츠 유형입니다(항상
thinking).
thinking사고 콘텐츠입니다.
예
필드
타입
설명
type문자열
콘텐츠 유형입니다(항상
tool_result).
tool_result도구 결과입니다.
예
필드
타입
설명
type문자열
콘텐츠 유형입니다(항상
tool_use).
tool_use도구 사용입니다.
예
Metadata¶
필드 |
타입 |
설명 |
|---|---|---|
|
문자열 |
메시지를 보낸 사람(사용자 또는 어시스턴트)을 식별합니다. |
|
정수 |
스레드 메시지 ID입니다. 이 ID(역할이 `어시스턴트`인 경우)를 사용하여 스레드에 대한 후속 질문을 할 수 있습니다. |
|
문자열 |
이 에이전트 실행의 고유 식별자입니다. 출력 스트림에 다시 연결하는 데 사용할 수 있습니다. |
예
ModelConfig¶
필드 |
타입 |
설명 |
|---|---|---|
|
문자열 |
오케스트레이션에 사용할 모델입니다. 입력하지 않으면 모델이 자동으로 선택됩니다. |
예
OrchestrationConfig¶
필드 |
타입 |
설명 |
|---|---|---|
|
에이전트에 대한 예산 제약 조건입니다. 둘 이상의 제약 조건이 지정된 경우, 먼저 충족되는 제약 조건에 따라 요청이 종료됩니다. |
예
OutputTokens¶
출력 토큰 세부 정보입니다.
필드 |
타입 |
설명 |
|---|---|---|
|
정수 |
생성된 총 출력 토큰입니다. |
예
ResponseMetadata¶
사용량 정보를 포함한 응답에 대한 메타데이터입니다.
필드 |
타입 |
설명 |
|---|---|---|
|
||
|
문자열 |
이 에이전트 실행의 고유 식별자입니다. 출력 스트림에 다시 연결하는 데 사용할 수 있습니다. |
예
ResultSet¶
필드 |
타입 |
설명 |
|---|---|---|
|
문자열 |
쿼리 ID입니다. |
|
결과 세트의 메타데이터입니다. |
|
|
배열의 배열 |
데이터를 나타내는 2D 배열입니다 |
예
ResultSetMetaData¶
필드 |
타입 |
설명 |
|---|---|---|
|
정수 |
파티션의 인덱스 번호입니다. |
|
정수 |
결과의 총 행 수입니다. |
|
문자열 |
결과 세트의 데이터 형식입니다. |
|
:ref:`label_snowflake_agent_run_RowType`의 배열 |
결과의 열에 대한 설명입니다. |
예
RowType¶
필드 |
타입 |
설명 |
|---|---|---|
|
문자열 |
열의 이름입니다. |
|
문자열 |
열의 Snowflake 데이터 타입입니다. (https://docs.snowflake.com/en/sql-reference/intro-summary-data-types) |
|
정수 |
열의 길이입니다. |
|
정수 |
열의 정밀도입니다. |
|
정수 |
열의 스케일입니다. |
|
boolean |
열이 null을 허용하는지를 지정합니다. |
예
TableContent¶
필드 |
타입 |
설명 |
|---|---|---|
|
문자열 |
이 테이블을 생성한 도구 사용의 ID입니다 |
|
문자열 |
이 데이터를 생성한 SQL 쿼리의 쿼리 ID입니다 |
|
테이블을 렌더링하기 위한 SQL 결과입니다. Snowflake의 SQL API ResultSet(https://docs.snowflake.com/en/developer-guide/sql-api/reference#resultset) 스키마와 일치합니다 |
|
|
문자열 |
이 테이블의 제목입니다 |
예
ThinkingContent¶
필드 |
타입 |
설명 |
|---|---|---|
|
문자열 |
에이전트의 사고 토큰입니다 |
|
문자열 |
사고 토큰의 서명입니다. |
예
TokensConsumed¶
특정 모델에 대한 토큰 사용량입니다.
필드 |
타입 |
설명 |
|---|---|---|
|
문자열 |
사용된 모델의 이름입니다. |
|
||
|
||
|
정수 |
모델의 컨텍스트 윈도우 크기(토큰)입니다. |
예
Tool¶
에이전트가 사용할 수 있는 도구를 정의합니다. 도구는 데이터 분석, 검색 또는 일반 함수와 같은 특정 기능을 제공합니다.
필드 |
타입 |
설명 |
|---|---|---|
|
도구의 유형, 구성 및 입력 요구 사항에 대한 사양입니다. |
예
ToolChoice¶
필드 |
타입 |
설명 |
|---|---|---|
|
문자열 |
도구 선택 방법을 결정합니다. - 자동 - 자동 도구 선택(기본값) - 필수 - 하나 이상의 도구를 사용해야 함 - 도구 - 명명된 특정 도구 사용 |
|
문자열 배열 |
유형이 ‘도구’일 때 사용할 특정 도구 이름의 목록입니다. |
예
ToolInputSchema¶
예
ToolResource¶
텍스트-SQL 분석 도구의 구성입니다. SQL 쿼리 생성 및 실행에 대한 매개 변수를 제공합니다. semantic_model_file 또는 semantic_view 중 정확히 하나를 입력해야 합니다.
필드
타입
설명
semantic_model_file문자열
의미 체계 모델 yaml을 보유하는 Snowflake 스테이지에 저장된 파일의 경로입니다.
semantic_view문자열
Snowflake 네이티브 의미 체계 모델 오브젝트의 이름입니다.
execution_environment생성된 SQL 쿼리를 실행하는 방법에 대한 구성입니다.
예
검색 기능에 대한 구성입니다. 문서 검색 및 가져오기를 수행하는 방법을 정의합니다.
필드
타입
설명
search_service문자열
검색 서비스의 정규화된 이름입니다.
title_column문자열
문서의 제목 열입니다.
id_column문자열
문서의 ID 열입니다.
filter오브젝트
쿼리에서 검색 결과를 필터링합니다.
예
필드
타입
설명
type문자열
도구가 서버 측에서 실행되는 경우 저장 프로시저 또는 UDF입니다.
execution_environment
identifier문자열
저장 프로시저의 정규화된 이름 또는 UDF입니다.
예
웹 검색 기능에 대한 구성입니다.
필드
타입
설명
max_results정수
반환된 최대 웹 검색 결과입니다.
예
ToolResult¶
필드 |
타입 |
설명 |
|---|---|---|
|
문자열 |
이 도구 사용에 대한 고유 식별자입니다. 연결된 도구 결과에 사용할 수 있습니다. |
|
문자열 |
도구의 유형(예: cortex_search, cortex_analyst_text_to_sql)입니다 |
|
문자열 |
이 도구 인스턴스의 고유 식별자입니다 |
|
:ref:`label_snowflake_agent_run_ToolResultContent`의 배열 |
도구 결과의 콘텐츠입니다 |
|
문자열 |
도구 실행 상태입니다 |
예
ToolResultContent¶
필드
타입
설명
type문자열
결과 유형입니다(항상
json)
json오브젝트
도구의 정형 출력입니다. 스키마는 도구 유형에 따라 다릅니다.
예
필드
타입
설명
type문자열
결과 유형입니다(항상
text)
text문자열
결과 텍스트입니다
예
ToolSpec¶
도구의 유형, 구성 및 입력 요구 사항에 대한 사양입니다.
필드 |
타입 |
설명 |
|---|---|---|
|
문자열 |
도구 기능의 유형입니다. 범용 도구의 경우 ‘cortex_analyst_text_to_sql’ 또는 ‘generic’과 같은 특수 유형일 수 있습니다. |
|
문자열 |
이 도구 인스턴스를 참조하기 위한 고유 식별자입니다. tool_resources의 구성과 일치시키는 데 사용됩니다. |
|
문자열 |
도구 사용을 고려할 때 검토할 도구에 대한 설명입니다. |
|
이 도구에 예상되는 입력 매개 변수의 JSON 스키마 정의입니다. 이는 에이전트에 제공되어 ToolUses에 대한 입력을 생성할 때 따라야 하는 구조를 알도록 합니다. 일반 도구가 입력 매개 변수를 지정하는 데 필요합니다. |
예
ToolUse¶
필드 |
타입 |
설명 |
|---|---|---|
|
문자열 |
이 도구 사용에 대한 고유 식별자입니다. 연결된 도구 결과에 사용할 수 있습니다. |
|
문자열 |
도구의 유형(예: cortex_search, cortex_analyst_text_to_sql)입니다 |
|
문자열 |
이 도구 인스턴스의 고유 식별자입니다 |
|
오브젝트 |
이 도구의 정형 입력입니다. 이 오브젝트의 스키마는 도구 사양에 따라 달라집니다. |
|
boolean |
도구 사용이 클라이언트 측에서 실행되는지 여부입니다. |
예
UsageMetadata¶
이 요청에 대한 토큰 사용 정보입니다.
필드 |
타입 |
설명 |
|---|---|---|
|
:ref:`label_snowflake_agent_run_TokensConsumed`의 배열 |
이 요청에 사용된 모델별 토큰 사용량 세부 정보입니다. |
예
Warning¶
필드 |
타입 |
설명 |
|---|---|---|
|
문자열 |
사용자에게 표시할 경고 메시지입니다. |
예
비 스트리밍 응답(스트림: false)¶
**단일 비 스트리밍 JSON 응답**을 수신하려면 요청 본문에서 stream`을 :code:`false`로 설정하고 요청 :code:`Accept 헤더를 :code:`application/json`으로 설정합니다.
응답 본문은 스트리밍 모드의 response 이벤트 페이로드(즉, SSE response 이벤트의 data 필드에서 반환된 JSON)와 동일한 오브젝트입니다.
응답 예제