- Kategorien:
Zeichenfolgen- und Binärfunktionen (AI-Funktionen)
DATA_AGENT_RUN (SNOWFLAKE.CORTEX)¶
Führt einen :doc:` Cortex-Agent</user-guide/snowflake-cortex/cortex-agents>` aus und gibt die Antwort als JSON zurück.
Sie können diese Funktion verwenden, um einen Cortex Agent zu starten, der sowohl über strukturierte als auch über unstrukturierte Datenquellen hinweg orchestriert, um Erkenntnisse zu liefern. Dazu gehören die Planung von Aufgaben, die Verwendung von Tools zur Ausführung dieser Aufgaben und die Generierung von Antworten.
Bemerkung
SNOWFLAKE.CORTEX.DATA_AGENT_RUN ist ein Hilfsprogramm-Wrapper im Rahmen der Cortex Agents Run API. Für die meisten Anwendungsintegrationen empfiehlt Snowflake, die Streaming RESTAPI direkt aufzurufen.
- Siehe auch:
Syntax¶
SNOWFLAKE.CORTEX.DATA_AGENT_RUN( '<agent_name>', <request_body> )
Argumente¶
'agent_name'Vollqualifizierter Name des auszuführenden Agenten in der Form
database.schema.agent_name.request_bodyJSON-Anforderungstext, der an den Agenten gesendet werden soll. Dieser Wert muss eine Zeichenfolge sein (z. B. ein Literal des Typs
$$...$$).Die folgenden Felder werden im Anforderungstext unterstützt:
Feld
Typ
Beschreibung
thread_idGanzzahl
Die Thread-ID für die Konversation. Wenn „thread_id“ verwendet wird, muss auch „parent_message_id“ übergeben werden.
parent_message_idGanzzahl
Die ID der übergeordneten Nachricht im Thread. Wenn dies die erste Nachricht ist, sollte „parent_message_id“ 0 sein.
messagesArray von Message
Wenn „thread_id“ und „parent_message_id“ in der Anfrage übergeben werden, enthalten Nachrichten die aktuelle Benutzernachricht in der Konversation. Andernfalls enthalten die Nachrichten den Konversationsverlauf und die aktuelle Nachricht. Nachrichten enthalten sowohl Benutzerabfragen als auch die Assistentenantworten in chronologischer Reihenfolge.
streamboolean
Ob eine Streaming-Antwort (
text/event-stream) oder eine Nicht-Streaming-JSON-Antwort (application/json) zurückgegeben werden soll. Bei „true“ wird die Antwort als vom Server gesendete Ereignisse gestreamt. Bei „false“ wird die Antwort als JSON zurückgegeben.tool_choiceKonfiguriert, wie der Agent während der Interaktion Tools auswählen und verwenden soll. Steuert, ob die Verwendung von Tools automatisch erfolgt, erforderlich ist oder ob bestimmte Tools verwendet werden müssen.
Beispiel
{ "thread_id": 0, "parent_message_id": 0, "messages": [ { "role": "user", "content": [ { "type": "text", "text": "What is the total revenue for 2023?" } ] } ], "stream": false, "tool_choice": { "type": "auto", "name": [ "analyst_tool", "search_tool" ] } }
Wichtig
Das Feld stream wird ignoriert. Es wird immer eine Nicht-Streaming-Antwort zurückgegeben.
Rückgabewerte¶
Gibt eine JSON-Zeichenfolge zurück, die die Antwort des Agenten enthält.
Anforderungen an die Zugriffssteuerung¶
Um einen Agenten auszuführen, müssen Sie eine Rolle verwenden, die auf Cortex Agents und das Agentenobjekt, das Sie aufrufen, zugreifen kann. Weitere Details dazu finden Sie unter Anforderungen an die Zugriffssteuerung.
Nutzungshinweise¶
Die Funktion gibt eine JSON-Zeichenfolge zurück. Übergeben Sie diese Zeichenfolge an:doc:
try_parse_json, um die Antwort in einen VARIANT-Wert zu konvertieren.
Beispiele¶
Starten Sie einen Agenten und analysieren Sie das Antwort-JSON:
SELECT
TRY_PARSE_JSON(
SNOWFLAKE.CORTEX.DATA_AGENT_RUN(
'MY_DB.MY_SCHEMA.MY_AGENT',
$${
"parent_message_id": 1234,
"thread_id": 5678,
"messages": [
{
"role": "user",
"content": [
{ "type": "text", "text": "What are some types of products?" }
]
}
]
}$$
)
) AS resp;
Beispielrückgabewert:
{
"role": "assistant",
"content": [
{
"thinking": {
"text": "\n...\n"
},
"type": "thinking"
},
{
"tool_use": {
"input": {
"...": "..."
},
"name": "<tool_name>",
"tool_use_id": "<tool_use_id>",
"type": "<tool_type>"
},
"type": "tool_use"
},
{
"text": "Based on the data available, there are two main types of products...",
"type": "text"
}
],
"metadata": {
"run_id": "<run_id>"
}
}