Dans cet article, nous présenterons les éléments suivants.
Partie 1 : Quatre nouvelles classes de snaps pour LLM : générateur de fonctions, appel d'outils, générateur de résultats de fonctions et appendice de messages, qui ont été développés spécifiquement pour l'appel d'outils.
Partie 2 : Le pipeline d'appel de fonction pour montrer comment les nouveaux snaps d'appel de fonction fonctionnent ensemble pour effectuer l'appel de fonction LLM.
Partie 3 : Utilisation de PipeLoop snap pour orchestrer les pipelines d'agents: appeler de manière itérative le pipeline d'appel de fonction jusqu'à ce que le modèle génère un résultat final ou remplisse d'autres conditions de terminaison pour exécuter les workflows des agents.
Partie 1 : Présentation de 4 nouvelles classes snap pour l'appel d'outils
Générateur de fonctions Snap: créez une définition de fonction.
Appel d'outil Snap: envoie une demande d'appel d'outil au modèle afin de récupérer la réponse du modèle LLM.
Fonction Résultat Snap: formate le résultat de l'exécution de l'outil à renvoyer au LLM.
Message Appender Snap: ajoute les résultats de l'outil au tableau des messages.
Générateur de fonctions Snap
Le générateur de fonctions Snap facilite la création d'une définition d'outil, permettant au modèle de comprendre et d'utiliser les outils disponibles.

Exemple de résultat :
[
{
"tools": [
{
"sl_type": "function",
"name": "get_current_weather",
"description": "Get the curent weather in a given location",
"parameters": [
{
"name": "location",
"type": "STRING",
"description": "The city and state, e.g. San Francisco, CA",
"required": true
},
{
"name": "unit",
"type": "STRING",
"enum": [
"celcius",
"fahrenheit"
],
"required": false
}
]
}
]
}
]
Outil d'appel instantané
L'outil Calling Snap transmet les entrées utilisateur et les spécifications de l'outil au modèle APIdu modèle, recevant en retour la sortie générée par le modèle.

Cet instantané comporte deux vues de sortie :
La première vue affiche
la réponse complète du modèle
la charge utile complète du message, y compris la réponse actuelle du modèle
La deuxième vue affiche
la liste des outils à appeler
Dans OpenAI et Azure OpenAI Tool Calling Snap, un champ d'argument JSON est ajouté par SnapLogic, dont la valeur est un objet JSON dérivé de la conversion de l'argument au format chaîne de l'appel à l'outil de réponse du modèle.

Exemple d'entrée :
[
{
"tools": [
{
"sl_type": "function",
"name": "get_current_weather",
"description": "Get the curent weather in a given location",
"parameters": [
{
"name": "location",
"type": "STRING",
"description": "The city and state, e.g. San Francisco, CA",
"required": true
},
{
"name": "unit",
"type": "STRING",
"enum": [
"celcius",
"fahrenheit"
],
"required": false
}
]
}
],
"original": {
"messages": [
{
"content": "You are a helpful assistant.",
"sl_role": "USER"
}
],
"original": {
"prompt": "You are a helpful assistant.",
"original": {
"prompt": "What's the weather in San Francisco?"
}
}
}
}
]
Exemple de résultat – Réponse LLM Afficher :
[
{
"output": {
"message": {
"role": "assistant",
"content": [
{
"text": "Okay, let's get the current weather for San Francisco."
},
{
"toolUse": {
"toolUseId": "tooluse_YOLmGccxRGWPmCKqxAKvgw",
"name": "get_current_weather",
"input": {
"location": "San Francisco, CA",
"unit": "fahrenheit"
}
}
}
]
}
},
"stopReason": "tool_use",
"usage": {
"inputTokens": 272,
"outputTokens": 90,
"totalTokens": 362
},
"metrics": {
"latencyMs": 1905
},
"messages": [
{
"role": "user",
"content": [
{
"text": "What's the weather in San Francisco?"
}
]
},
{
"role": "assistant",
"content": [
{
"text": "Okay, let's get the current weather for San Francisco."
},
{
"toolUse": {
"toolUseId": "tooluse_YOLmGccxRGWPmCKqxAKvgw",
"name": "get_current_weather",
"input": {
"location": "San Francisco, CA",
"unit": "fahrenheit"
}
}
}
]
}
],
"original": {
"tools": [
{
"sl_type": "function",
"name": "get_current_weather",
"description": "Get the curent weather in a given location",
"parameters": [
{
"name": "location",
"type": "STRING",
"description": "The city and state, e.g. San Francisco, CA",
"required": true
},
{
"name": "unit",
"type": "STRING",
"enum": [
"celcius",
"fahrenheit"
],
"required": false
}
]
}
],
"original": {
"messages": [
{
"content": "What's the weather in San Francisco?",
"sl_role": "USER"
}
],
"original": {
"prompt": "You are a helpful assistant.",
"original": {
"prompt": "What's the weather in San Francisco?"
}
}
}
}
}
]
Exemple de résultat – Vue des appels d'outils :
[
{
"toolUse": {
"toolUseId": "tooluse_YOLmGccxRGWPmCKqxAKvgw",
"name": "get_current_weather",
"input": {
"location": "San Francisco, CA",
"unit": "fahrenheit"
}
}
}
]
Fonction Résultat Générateur Snap
Le générateur de résultats de fonction Snap formate les résultats générés par les fonctions invoquées par l'utilisateur dans une structure de sortie de données personnalisée définie dans SnapLogic.
Différents modèles ont différentes exigences pour le type de données du Contenu champ. Par exemple, Bedrock Converse exige que le contenu soit un stringou un json, OpenAI exige que le contenu soit stringuniquement. Snap convertit le contenu saisi par l'utilisateur en chaîne de caractères si le format du champ n'est pas pris en charge.

Exemple d'entrée :
[
{
"content": [
{
"location": {
"name": "San Francisco",
"region": "California",
"country": "United States of America",
"lat": 37.775,
"lon": -122.4183,
"tz_id": "America/Los_Angeles",
"localtime_epoch": 1728429316,
"localtime": "2024-10-08 16:15"
},
"current": {
"last_updated_epoch": 1728429300,
"last_updated": "2024-10-08 16:15",
"temp_c": 17.3,
"temp_f": 63.1,
"is_day": 1,
"condition": {
"text": "Sunny",
"icon": "//cdn.weatherapi.com/weather/64x64/day/113.png",
"code": 1000
},
"wind_mph": 9.8,
"wind_kph": 15.8,
"wind_degree": 261,
"wind_dir": "W",
"pressure_mb": 1012,
"pressure_in": 29.89,
"precip_mm": 0,
"precip_in": 0,
"humidity": 88,
"cloud": 0,
"feelslike_c": 17.3,
"feelslike_f": 63.1,
"windchill_c": 17,
"windchill_f": 62.6,
"heatindex_c": 17,
"heatindex_f": 62.6,
"dewpoint_c": 13.7,
"dewpoint_f": 56.7,
"vis_km": 13,
"vis_miles": 8,
"uv": 2.3,
"gust_mph": 17.9,
"gust_kph": 28.8
}
}
],
"original": {
"toolUse": {
"toolUseId": "tooluse_YOLmGccxRGWPmCKqxAKvgw",
"name": "get_current_weather",
"input": {
"location": "San Francisco, CA",
"unit": "fahrenheit"
}
}
}
}
]
Exemple de résultat :
[
{
"sl_role": "TOOL",
"function_id": "tooluse_YOLmGccxRGWPmCKqxAKvgw",
"is_error": false,
"content": {
"location": {
"name": "San Francisco",
"region": "California",
"country": "United States of America",
"lat": 37.775,
"lon": -122.4183,
"tz_id": "America/Los_Angeles",
"localtime_epoch": 1728429316,
"localtime": "2024-10-08 16:15"
},
"current": {
"last_updated_epoch": 1728429300,
"last_updated": "2024-10-08 16:15",
"temp_c": 17.3,
"temp_f": 63.1,
"is_day": 1,
"condition": {
"text": "Sunny",
"icon": "//cdn.weatherapi.com/weather/64x64/day/113.png",
"code": 1000
},
"wind_mph": 9.8,
"wind_kph": 15.8,
"wind_degree": 261,
"wind_dir": "W",
"pressure_mb": 1012,
"pressure_in": 29.89,
"precip_mm": 0,
"precip_in": 0,
"humidity": 88,
"cloud": 0,
"feelslike_c": 17.3,
"feelslike_f": 63.1,
"windchill_c": 17,
"windchill_f": 62.6,
"heatindex_c": 17,
"heatindex_f": 62.6,
"dewpoint_c": 13.7,
"dewpoint_f": 56.7,
"vis_km": 13,
"vis_miles": 8,
"uv": 2.3,
"gust_mph": 17.9,
"gust_kph": 28.8
}
}
}
]
Appendice de message Snap
Le module complémentaire message appender ajoute les résultats des exécutions d'outils à la liste des messages, qui sert d'entrée pour les appels d'outils ultérieurs.

Exemple d'entrée – Première vue d'entrée – Messages
[
{
"output": {
"message": {
"role": "assistant",
"content": [
{
"text": "Okay, let's get the current weather for San Francisco."
},
{
"toolUse": {
"toolUseId": "tooluse_YOLmGccxRGWPmCKqxAKvgw",
"name": "get_current_weather",
"input": {
"location": "San Francisco, CA",
"unit": "fahrenheit"
}
}
}
]
}
},
"stopReason": "tool_use",
"usage": {
"inputTokens": 272,
"outputTokens": 90,
"totalTokens": 362
},
"metrics": {
"latencyMs": 1905
},
"messages": [
{
"role": "user",
"content": [
{
"text": "What's the weather in San Francisco?"
}
]
},
{
"role": "assistant",
"content": [
{
"text": "Okay, let's get the current weather for San Francisco."
},
{
"toolUse": {
"toolUseId": "tooluse_YOLmGccxRGWPmCKqxAKvgw",
"name": "get_current_weather",
"input": {
"location": "San Francisco, CA",
"unit": "fahrenheit"
}
}
}
]
}
],
"original": {
"tools": [
{
"sl_type": "function",
"name": "get_current_weather",
"description": "Get the curent weather in a given location",
"parameters": [
{
"name": "location",
"type": "STRING",
"description": "The city and state, e.g. San Francisco, CA",
"required": true
},
{
"name": "unit",
"type": "STRING",
"enum": [
"celcius",
"fahrenheit"
],
"required": false
}
]
}
],
"original": {
"messages": [
{
"content": "What's the weather in San Francisco?",
"sl_role": "USER"
}
],
"original": {
"prompt": "You are a helpful assistant.",
"original": {
"prompt": "What's the weather in San Francisco?"
}
}
}
}
}
]
Exemple d'entrée – Deuxième entrée Affichage – Résultat de l'outil
[
{
"sl_role": "TOOL",
"function_id": "tooluse_YOLmGccxRGWPmCKqxAKvgw",
"is_error": false,
"content": {
"location": {
"name": "San Francisco",
"region": "California",
"country": "United States of America",
"lat": 37.775,
"lon": -122.4183,
"tz_id": "America/Los_Angeles",
"localtime_epoch": 1728429316,
"localtime": "2024-10-08 16:15"
},
"current": {
"last_updated_epoch": 1728429300,
"last_updated": "2024-10-08 16:15",
"temp_c": 17.3,
"temp_f": 63.1,
"is_day": 1,
"condition": {
"text": "Sunny",
"icon": "//cdn.weatherapi.com/weather/64x64/day/113.png",
"code": 1000
},
"wind_mph": 9.8,
"wind_kph": 15.8,
"wind_degree": 261,
"wind_dir": "W",
"pressure_mb": 1012,
"pressure_in": 29.89,
"precip_mm": 0,
"precip_in": 0,
"humidity": 88,
"cloud": 0,
"feelslike_c": 17.3,
"feelslike_f": 63.1,
"windchill_c": 17,
"windchill_f": 62.6,
"heatindex_c": 17,
"heatindex_f": 62.6,
"dewpoint_c": 13.7,
"dewpoint_f": 56.7,
"vis_km": 13,
"vis_miles": 8,
"uv": 2.3,
"gust_mph": 17.9,
"gust_kph": 28.8
}
}
}
]
Exemple de résultat
[
{
"output": {
"message": {
"role": "assistant",
"content": [
{
"text": "Okay, let's get the current weather for San Francisco."
},
{
"toolUse": {
"toolUseId": "tooluse_YOLmGccxRGWPmCKqxAKvgw",
"name": "get_current_weather",
"input": {
"location": "San Francisco, CA",
"unit": "fahrenheit"
}
}
}
]
}
},
"stopReason": "tool_use",
"usage": {
"inputTokens": 272,
"outputTokens": 90,
"totalTokens": 362
},
"metrics": {
"latencyMs": 1905
},
"messages": [
{
"role": "user",
"content": [
{
"text": "What's the weather in San Francisco?"
}
]
},
{
"role": "assistant",
"content": [
{
"text": "Okay, let's get the current weather for San Francisco."
},
{
"toolUse": {
"toolUseId": "tooluse_YOLmGccxRGWPmCKqxAKvgw",
"name": "get_current_weather",
"input": {
"location": "San Francisco, CA",
"unit": "fahrenheit"
}
}
}
]
},
{
"sl_role": "TOOL",
"function_id": "tooluse_YOLmGccxRGWPmCKqxAKvgw",
"is_error": false,
"content": {
"location": {
"name": "San Francisco",
"region": "California",
"country": "United States of America",
"lat": 37.775,
"lon": -122.4183,
"tz_id": "America/Los_Angeles",
"localtime_epoch": 1728429316,
"localtime": "2024-10-08 16:15"
},
"current": {
"last_updated_epoch": 1728429300,
"last_updated": "2024-10-08 16:15",
"temp_c": 17.3,
"temp_f": 63.1,
"is_day": 1,
"condition": {
"text": "Sunny",
"icon": "//cdn.weatherapi.com/weather/64x64/day/113.png",
"code": 1000
},
"wind_mph": 9.8,
"wind_kph": 15.8,
"wind_degree": 261,
"wind_dir": "W",
"pressure_mb": 1012,
"pressure_in": 29.89,
"precip_mm": 0,
"precip_in": 0,
"humidity": 88,
"cloud": 0,
"feelslike_c": 17.3,
"feelslike_f": 63.1,
"windchill_c": 17,
"windchill_f": 62.6,
"heatindex_c": 17,
"heatindex_f": 62.6,
"dewpoint_c": 13.7,
"dewpoint_f": 56.7,
"vis_km": 13,
"vis_miles": 8,
"uv": 2.3,
"gust_mph": 17.9,
"gust_kph": 28.8
}
}
}
],
"original": {
"tools": [
{
"sl_type": "function",
"name": "get_current_weather",
"description": "Get the curent weather in a given location",
"parameters": [
{
"name": "location",
"type": "STRING",
"description": "The city and state, e.g. San Francisco, CA",
"required": true
},
{
"name": "unit",
"type": "STRING",
"enum": [
"celcius",
"fahrenheit"
],
"required": false
}
]
}
],
"original": {
"messages": [
{
"content": "What's the weather in San Francisco?",
"sl_role": "USER"
}
],
"original": {
"prompt": "You are a helpful assistant.",
"original": {
"prompt": "What's the weather in San Francisco?"
}
}
}
}
}
]
En tirant parti des quatre nouveaux Snaps, nous serons en mesure de créer des pipelines capables d'appeler des fonctions LLM, que nous appellerons « pipelines d'appel de fonctions ».
Partie 2 : Exemple de pipeline d'appel de fonction
Ce pipeline montre comment utiliser les nouveaux snaps pour effectuer l'appel de fonctions LLM.

Configuration
Nous utiliserons les quatre snaps suivants pour l'appel de la fonction LLM:
Générateur de fonctions Snap
Outil d'appel instantané
Fonction Résultat Générateur Snap
Appendice de message Snap
Le pipeline d'appel de fonction intègre deux outils en tant que pipelines :
get_current_weather ( à l'aide de PipeExec)
Ce pipeline récupère les informations météorologiques pour un lieu donné.
Configuration du pipeline

Un client HTTP qui se connecte au point de terminaison weatherapi
Un mappeur qui transmet la sortie JSON au champ de contenu
foo_tool
Un outil factice qui affiche « foo » comme résultat, utilisé pour démontrer les capacités d'appel multi-outils.
Configuration du pipeline

Un mappeur qui affiche « foo » dans la sortie de contenu.
Flux d'exécution

Le flux d'exécution de ce pipeline suit les étapes suivantes :
L'utilisateur fournit l'invite (intégrée dans une charge utile de messages) dans un Snap générateur JSON, crée des définitions d'outils à l'aide du Snap générateur de fonctions, qui sont ensuite envoyées au LLM via le Snap d'appel d'outils.
La vue « Chat completions » (Chat terminés) du Snap « Tool Calling » (Appel d'outils) génère la réponse du LLM et ajoute la réponse actuelle du LLM dans la charge utile des messages. Elle est connectée à la première entrée du Snap « Message Appender » (Ajouteur de messages) pour traitement. La vue « Tool calls » (Appels d'outils) est connectée à un routeur afin de transmettre les appels d'outils aux outils individuels.
Les outils sont invoqués, puis les résultats sont formatés par le générateur de résultats de fonction Snap.
Le Snap Message Appender collecte et ajoute tous les résultats d'invocation d'outils au tableau de messages à partir de la vue Chat completions générée par le Snap Tool Calling, puis affiche le tableau de messages modifié.
La sortie du Message Appender contient l'historique des messages provenant de l'invite utilisateur, les réponses du modèle LLM et la sortie d'appel de l'outil, qui marque la fin de ce cycle d'appel de l'outil.
Partie 3 : Pipelines d'agents
Pour orchestrer les pipelines d'appel de fonctions LLM ou les pipelines d'agents LLM, nous introduisons deux modèles sous forme de pipelines afin de permettre cette fonctionnalité.
Pipeline des agents pilotes
Le pipeline Agent Driver Pipeline exploite PipeLoop Snap pour permettre des exécutions itératives sur un seul pipeline. L'entrée rapide est définie puis envoyée au pipeline Agent Worker Pipeline (un pipeline d'appel de fonction). La sortie du pipeline d'appel de fonction est ensuite collectée et renvoyée comme deuxième entrée itérative du pipeline d'appel de fonction. L'itération se poursuit jusqu'à ce que la condition d'arrêt définie dans PipeLoop soit atteinte ou que la limite d'itération soit atteinte.

Pipeline des travailleurs agents
Le pipeline Agent Worker est similaire à un pipeline Function Calling, la seule différence étant que la charge utile du message est envoyée depuis le pipeline Agent Driver via PipeLoop Snap au lieu d'un snap JSON Generator.

Exemple de pipeline d'agent – get_weather
Cet exemple illustre un assistant de vérification météo. Cet agent est équipé d'un seul outil : get_weather, qui récupère les données météorologiques d'un lieu donné.
Pipeline des agents pilotes
Dans cet exemple, l'utilisateur fournira une charge utile comme ci-dessous, qui consiste à demander la météo d'un lieu donné. (Ceci est simulé à l'aide d'un générateur JSON Snap)
{ "prompt": "What's the weather in San Francisco?" }
L'invite système pour cet assistant météo est ensuite définie dans le premier générateur d'invites.
« Vous êtes un assistant météo utile qui répondra aux questions sur la météo d'un lieu donné. Vous disposerez d'un outil pour vérifier la météo de ce lieu. »
L'invite utilisateur pour ce cas est simplement la charge utile de l'invite provenant de l'utilisateur, que nous transmettrons à l'Agent Worker Pipeline via le PipeLoop Snap. Nous arrêterons l'exécution PipeLoop lorsque la raison de fin du LLM sera stop ou end_turn (selon le modèle LLM)
Pipeline des travailleurs agents
Dans le pipeline Agent Worker, le flux suit les étapes suivantes
Première itération :
Créez des définitions de fonction pour les outils à appeler. Dans ce cas, la fonction get_weather.
Transmettez la charge utile du message (invites système et utilisateur) et la charge utile des outils (définitions de fonction) au Tool Calling Snap. Le Tool Calling Snap décidera alors soit d'appeler un outil, soit de générer un résultat. Dans le premier cas, il renverra une décision d'appel d'outil que le pipeline devra traiter.
[
{
"toolUse": {
"toolUseId": "tooluse_YOLmGccxRGWPmCKqxAKvgw",
"name": "get_current_weather",
"input": {
"location": "San Francisco, CA",
"unit": "fahrenheit"
}
}
}
]- Le pipeline Worker se divisera ensuite en deux branches. La première branche transmettra la charge utile des messages de ce cycle au Message Appender Snap, tandis que la seconde transmettra la requête d'appel d'outil à l'outil afin d'invoquer un appel et d'obtenir les conditions météorologiques à San Francisco.
Le résultat de l'appel de l'outil sera collecté et formaté par le Snap Function Result Generator, puis transmis au Snap Message Appender afin que le résultat de l'appel de l'outil puisse être ajouté à la charge utile du message. Pour ce cycle, la raison de fin du LLM est
tool_use, ce qui signifie que l'exécution doit se poursuivre et que la sortie du Message Appender sera envoyée directement à l'entrée de l'Agent Worker Pipeline.
Sortie de l'ajouteur de messages
[
{
"output": {
"message": {
"role": "assistant",
"content": [
{
"text": "Okay, let's get the current weather for San Francisco."
},
{
"toolUse": {
"toolUseId": "tooluse_YOLmGccxRGWPmCKqxAKvgw",
"name": "get_current_weather",
"input": {
"location": "San Francisco, CA",
"unit": "fahrenheit"
}
}
}
]
}
},
"stopReason": "tool_use",
"usage": {
"inputTokens": 272,
"outputTokens": 90,
"totalTokens": 362
},
"metrics": {
"latencyMs": 1905
},
"messages": [
{
"role": "user",
"content": [
{
"text": "What's the weather in San Francisco?"
}
]
},
{
"role": "assistant",
"content": [
{
"text": "Okay, let's get the current weather for San Francisco."
},
{
"toolUse": {
"toolUseId": "tooluse_YOLmGccxRGWPmCKqxAKvgw",
"name": "get_current_weather",
"input": {
"location": "San Francisco, CA",
"unit": "fahrenheit"
}
}
}
]
},
{
"sl_role": "TOOL",
"function_id": "tooluse_YOLmGccxRGWPmCKqxAKvgw",
"is_error": false,
"content": {
"location": {
"name": "San Francisco",
"region": "California",
"country": "United States of America",
"lat": 37.775,
"lon": -122.4183,
"tz_id": "America/Los_Angeles",
"localtime_epoch": 1728429316,
"localtime": "2024-10-08 16:15"
},
"current": {
"last_updated_epoch": 1728429300,
"last_updated": "2024-10-08 16:15",
"temp_c": 17.3,
"temp_f": 63.1,
"is_day": 1,
"condition": {
"text": "Sunny",
"icon": "//cdn.weatherapi.com/weather/64x64/day/113.png",
"code": 1000
},
"wind_mph": 9.8,
"wind_kph": 15.8,
"wind_degree": 261,
"wind_dir": "W",
"pressure_mb": 1012,
"pressure_in": 29.89,
"precip_mm": 0,
"precip_in": 0,
"humidity": 88,
"cloud": 0,
"feelslike_c": 17.3,
"feelslike_f": 63.1,
"windchill_c": 17,
"windchill_f": 62.6,
"heatindex_c": 17,
"heatindex_f": 62.6,
"dewpoint_c": 13.7,
"dewpoint_f": 56.7,
"vis_km": 13,
"vis_miles": 8,
"uv": 2.3,
"gust_mph": 17.9,
"gust_kph": 28.8
}
}
}
],
"original": {
"tools": [
{
"sl_type": "function",
"name": "get_current_weather",
"description": "Get the curent weather in a given location",
"parameters": [
{
"name": "location",
"type": "STRING",
"description": "The city and state, e.g. San Francisco, CA",
"required": true
},
{
"name": "unit",
"type": "STRING",
"enum": [
"celcius",
"fahrenheit"
],
"required": false
}
]
}
],
"original": {
"messages": [
{
"content": "What's the weather in San Francisco?",
"sl_role": "USER"
}
],
"original": {
"prompt": "You are a helpful assistant.",
"original": {
"prompt": "What's the weather in San Francisco?"
}
}
}
}
}
]
Deuxième itération :
La charge utile du message mise à jour est ensuite renvoyée avec les définitions de fonction au Tool Calling Snap. Le Tool Calling Snap pour ce cycle génère alors un résultat, car il a récupéré les données météorologiques de San Francisco. La sortie Tool Call du Tool Calling Snap sera vide pour ce cycle, car aucun appel d'outil n'est nécessaire pour cette itération.
La charge utile du message est envoyée directement au Message Appender Snap, et la raison de fin du LLM est
end_turn, ce qui signifie que le LLM a exécuté la requête avec succès. L'exécution de PipeLoop s'arrête et le résultat est envoyé à la sortie du Snap PipeLoop dans le pipeline du pilote d'agent.
Et l'exécution est terminée.
Résumé
Dans cet article, nous avons présenté les nouveaux Snaps pour l'appel d'outils : générateur de fonctions, appel d'outils, générateur de résultats de fonctions et appendice de messages. Nous avons également expliqué comment créer des pipelines d'appel d'outils et des modèles de pipelines d'agents. Bonne création !


