Flashback : Qu'est-ce qu'un agent ?
« Les agents sont des processus autonomes basés sur le LLM qui peuvent interagir avec des systèmes externes pour atteindre un objectif de haut niveau. »
Les agents sont des systèmes basés sur le LLM qui peuvent effectuer des actions en fonction de la demande de l'utilisateur et du scénario, déterminés par le LLM du système Agent. Un agent minimal se compose 1. d'un composant LLM et 2. d'outils que l'Agent peut utiliser. Considérez l'agent comme un robot doté d'un cerveau (LLM) et de bras robotiques (outils). En fonction de la demande, le cerveau peut « décider » d'effectuer une action, puis le bras exécute l'action décidée par le cerveau. Ensuite, en fonction du scénario, le cerveau peut déterminer si d'autres actions sont nécessaires ou mettre fin à l'action si la demande est terminée.
Le processus d'un agent
Nous avons précédemment présenté le modèle de pipeline « Agent Driver and Agent Worker », qui définit clairement chaque opération pouvant se produire dans un processus Agent. Le processus du modèle peut être décrit comme suit
Agent conducteur

- Définissez les instructions de l'agent. (Invite système)
- Formatez la demande de l'utilisateur sous forme de conversation. (Tableau de messages)
- Définir les outils à mettre à la disposition de l'agent.
- Envoyez toutes les informations ci-dessus dans une « boucle », exécutez le processus Agent jusqu'à ce que le processus soit terminé.
Agent Travailleur

- Appelez le LLM avec les instructions, la conversation et les définitions des outils.
- LLM décide…
- Si la demande peut être traitée, terminez la conversation et passez à l'étape 7.
- Si des appels d'outils sont nécessaires, passez à l'étape 3.
- Appelez les outils.
- Mettre en forme le résultat de l'outil.
- Ajouter les résultats de l'outil à la conversation
- Retour à l'étape 1.
- La demande est terminée, l'agent répond.
La justification
À partir du pipeline Agent Driver et Agent Worker, voici une observation :
- Le pipeline du pilote gère toute la « configuration » de l'agent.
- Le pipeline des travailleurs gère le « fonctionnement » de l'agent.
Maintenant, imaginez ceci :
Si nous pouvions regrouper l'« opération Agent » dans un seul module, afin de pouvoir créer des agents simplement en fournissant des instructions et des outils, ce serait formidable, n'est-ce pas ?
C'est exactement ce que fait Agent Snap. Agent Snap combine PipeLoop Snap et le pipeline Agent Worker, de sorte que toutes les opérations de l'agent se déroulent dans un seul Snap.
Informations et conditions préalables
Avant de rêver de créer votre propre société d'agents, maintenant que la création d'agents est devenue si simple, il y a certaines informations à connaître et certaines conditions à remplir avant que cela ne puisse se faire.
1. Les Agent Snaps sont spécifiques à chaque modèle.
Modèle spécifique Agent Snaps
Agent Snap est une combinaison de « loop » et d'Agent Worker. Par conséquent, le fournisseur LLM à utiliser pour un Agent Snap est également fixe. Cette conception permet aux utilisateurs de conserver leur combinaison préférée de paramètres de modèle personnalisés.
2. Les définitions des fonctions (outils) doivent être liées à un pipeline pour permettre leur exécution.


Auparavant, dans un pipeline Agent Worker, le Snap Tool Calling était connecté aux Snaps Pipeline Execute pour effectuer les appels d'outils, mais ce n'est plus le cas avec le Snap Agent. À la place, une définition de fonction doit inclure le chemin d'accès du pipeline pour effectuer l'exécution si cet outil est appelé. De cette façon, nous pouvons garantir que chaque appel d'outil peut être effectué avec succès. Si l'utilisateur ne fournit pas de pipeline d'outils avec la définition de fonction, le Snap Agent ne procédera pas.
3. Entrées et sorties attendues d'un pipeline d'outils
Lorsqu'un appel d'outil est demandé par un LLM, celui-ci fournit le nom de l'outil à appeler et les paramètres correspondants. L'Agent Snap décompresse les paramètres et les envoie directement au pipeline de l'outil.
Voici un exemple : j'ai un outil get_weather, qui prend city: string comme paramètre. Le LLM décide d'appeler l'outil get_weather avec la charge utile suivante :
{ "name": "get_weather", "parameters": { "city": "New York City" }, "sl_tool_metadata": { ... } }
Pour que cela fonctionne, mon pipeline d'outils doit être capable d'accepter le document d'entrée :
{"city": "New York City"}
À titre d'information, l'objetsl_tool_metadata sera également disponible pour le pipeline d'outils en tant qu'entrée pour les outils APIM et OpenAPI.
Supposons maintenant que mon pipeline d'outils ait réussi à récupérer les données météorologiques de New York. Il est temps pour l'Agent Snap de collecter le résultat de cet appel d'outil. L'Agent Snap collectera toutes les informations contenues dans le document de sortie du pipeline d'outils en tant que résultat de l'appel d'outil*. Ainsi, le LLM pourra déterminer correctement les étapes suivantes.
*Remarque : à une exception près, si la sortie d'un « pipeline d'outils » contient le champ « messages » ou « contenus », elle sera traitée comme l'historique des conversations de l'« agent enfant », qui sera filtré et ne sera pas inclus.
Créer un agent avec Agent Snap
Nous avons compris le concept, nous avons passé en revue les prérequis, et il est temps de créer un agent.

Dans cet exemple, nous avons un agent doté de deux outils : un outil météo et un outil calendrier. Nous commençons par un générateur d'invites pour formater les entrées utilisateur. Ensuite, nous définissons les outils auxquels l'agent peut accéder.
Examinons l'une des définitions de l'outil.
Dans cet exemple d'outil, nous pouvons voir le nom de l'outil, sa description, ses paramètres et le chemin d'accès au pipeline de l'outil permettant d'effectuer cette tâche. Cela répond à l'exigence d'un outil pouvant être utilisé par un Agent Snap.

Une fois les outils configurés, examinons l'Agent Snap, en prenant comme exemple l'Amazon Bedrock Converse API Agent Snap.
La configuration d'un Snap Agent est similaire à celle du Snap correspondant qui appelle l'outil, à l'exception de quelques champs supplémentaires, tels qu'un bouton permettant de visualiser le flux de l'agent et une section permettant de configurer le fonctionnement de l'agent, comme la limite d'itération et le nombre de threads pour les exécutions du pipeline d'outils.
L'Agent Snap gère l'ensemble du processus d'exécution et se termine lorsque 1. la requête est terminée (aucun autre appel d'outil n'est nécessaire) ou 2. une erreur s'est produite.

Voilà ! Vous avez créé un agent.
Une fois que le pipeline de l'agent a terminé un cycle d'exécution, l'utilisateur peut utiliser le bouton « Visualiser le flux de l'agent » dans l'Agent Snap pour voir les outils appelés par le LLM.

Conseils et astuces pour l'Agent Snap
Jetons un œil aux fonctionnalités intégrées à Agent Snap.
Réutiliser les pipelines
La plupart des appels d'outils agents sont des processus réutilisables. Pour minimiser la charge d'exécution, nous pouvons utiliser la fonctionnalité « Réutiliser le pipeline d'outils ». Cette fonctionnalité permet de réutiliser les instances du pipeline d'outils, de sorte que l'agent n'ait pas besoin de générer un pipeline à chaque fois qu'un outil est appelé.
Pour utiliser cette fonctionnalité, le pipeline d'outils à réutiliser doit être « Ultra compatible » ; sinon, l'exécution du pipeline se bloquerait et l'Agent Snap finirait par expirer.
Surveillance des appels d'outils
Les agents peuvent fonctionner pendant longtemps ; il n'est pas rare qu'un agent exécute plusieurs itérations. Pour voir ce qui se passe dans le processus, Agent Snap a intégré une fonction de surveillance pendant la validation. L'utilisateur pourra voir l'index d'itération, l'outil actuellement appelé et les paramètres utilisés pour l'appel de l'outil dans la barre d'état des statistiques du pipeline.
La sélection de l'option « Monitor tool call » (Surveiller l'appel de l'outil) inclut le paramètre dans la mise à jour d'état, qui est une fonctionnalité optionnelle. Si l'utilisateur ne souhaite pas divulguer ces informations à SnapLogic, il doit désactiver cette option.
Avertissements
La configuration de l'agent est un processus délicat ; une erreur peut potentiellement entraîner des dysfonctionnements. L'Agent Snap dispose d'une série de fonctions d'alerte intégrées, afin que l'utilisateur soit mieux informé des problèmes potentiels.
1. Processus de l'agent terminé avant la fin de tous les appels d'outils

Dans Agent Snap, il existe un paramètre de limite d'itération qui limite le nombre d'itérations que l'agent peut exécuter. Si l'utilisateur a défini une limite inférieure, ce qui a entraîné l'arrêt de l'agent alors que le LLM attendait toujours des appels d'outils, cet avertissement s'afficherait pour signaler à l'utilisateur que l'exécution est incomplète.
2. Le chemin d'accès au pipeline d'outils n'est pas défini.

Une définition de fonction (outil) destinée à être utilisée par Agent Snap doit inclure un chemin d'accès au pipeline de l'outil, afin qu'Agent Snap puisse se connecter au pipeline réel qui exécute la fonction. Si le chemin d'accès au pipeline n'est pas inclus dans la définition de la fonction, cet avertissement s'affiche pour signaler à l'utilisateur que l'agent ne poursuivra pas l'opération.
3. Noms d'outils en double

Alors que nous essayons d'ajouter de plus en plus d'outils à Agent Snap, deux outils sont susceptibles de partager le même nom. Agent Snap a la capacité de renommer les outils envoyés au LLM, puis de les relier au pipeline correct. Un avertissement sera également disponible dans les statistiques du pipeline pour alerter l'utilisateur d'un changement de comportement.
Délais de publication
Agent Snap est la base de la nouvelle génération d'Agent SnapLogic. Nous publierons 4 Agent Snaps dans la version de novembre:
- Agent API Amazon Bedrock Converse
- Agent de complétion de conversation OpenAI
- Agent de complétion de conversation Azure OpenAI
- Agent API Google Gemini
Afin d'optimiser l'utilisation des Snaps Agent, nous allons également introduire de nouvelles fonctionnalités dans certains de nos générateurs de fonctions. Voici la liste des Snaps Générateur de fonctions qui seront bientôt modifiés :
- Générateur de fonctions APIM Snap
- Générateur de fonctions OpenAPI Snap
- Générateur de fonctions MCP Snap
Nous espérons que vous êtes aussi enthousiastes que nous à propos de celui-ci.




