- Catégories :
Fonctions de chaîne et fonctions binaires (Fonctions AI)
DATA_AGENT_RUN (SNOWFLAKE.CORTEX)¶
Exécute un Agent Cortex et renvoie la réponse sous la forme JSON.
Vous pouvez utiliser cette fonction pour exécuter un Agent Cortex, qui orchestre les sources de données structurées et non structurées pour fournir des informations. Cela comprend la planification des tâches, l’utilisation des outils pour exécuter ces tâches et la génération des réponses.
Note
SNOWFLAKE.CORTEX.DATA_AGENT_RUN est un utilitaire qui encapsule l’API Cortex Agents Run. Pour la plupart des intégrations d’applications, Snowflake recommande d’appeler directement l’API REST de flux.
- Voir aussi :
Syntaxe¶
SNOWFLAKE.CORTEX.DATA_AGENT_RUN( '<agent_name>', <request_body> )
Arguments¶
'agent_name'Nom complet de l’agent à exécuter, au format
database.schema.agent_name.request_bodyCorps de la requête JSON à envoyer à l’agent. Cette valeur doit être une chaîne (par exemple, un littéral
$$...$$).Les champs suivants sont pris en charge dans le corps de la requête :
Champ
Type
Description
thread_identier
ID de thread pour la conversation. Si thread_id est utilisé, parent_message_id doit également être transmis.
parent_message_identier
ID du message parent dans le thread. S’il s’agit du premier message, parent_message_id doit correspondre à 0.
messagestableau d”Message
Si thread_id et parent_message_id sont transmis dans la requête, les messages incluent le message actuel de l’utilisateur dans la conversation. Sinon, les messages comprennent l’historique de la conversation et le message actuel. Les messages contiennent à la fois les requêtes des utilisateurs et les réponses des assistants dans l’ordre chronologique.
streambooléen
Renvoyer une réponse streaming (
texte/flux d’événements) ou une réponse JSON non-streaming (application/json). Si « true », la réponse sera envoyée (stream) en tant qu’événements envoyés par le serveur. Si « false », la réponse sera renvoyée en tant que JSON.tool_choiceConfigure la manière dont l’agent doit sélectionner et utiliser les outils pendant l’interaction. Contrôle si l’utilisation des outils est automatique, obligatoire, ou si des outils spécifiques doivent être utilisés.
Exemple
{ "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" ] } }
Important
Le champ stream est ignoré. Une réponse sans flux est toujours renvoyée.
Renvoie¶
Renvoie une chaîne JSON contenant la réponse de l’agent.
Exigences en matière de contrôle d’accès¶
Pour exécuter un agent, vous devez utiliser un rôle qui peut accéder aux Agents Cortex et à l’objet agent que vous appelez. Pour plus de détails, voir Exigences en matière de contrôle d’accès.
Notes sur l’utilisation¶
La fonction renvoie une chaîne JSON. Transmettez cette chaîne à TRY_PARSE_JSON pour convertir la réponse en une valeur VARIANT.
Exemples¶
Exécuter un agent et analyser la réponse 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;
Exemple de valeur de retour :
{
"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>"
}
}