Vous pouvez utiliser des agents existants comme outils. Cela permet à un agent actif de réutiliser les capacités d'un autre agent sans lui transférer la conversation. L'agent-as-a-tool peut être appelé de manière synchrone ou asynchrone par l'agent actif.
Utilisez un comportement asynchrone lorsque l'agent en tant qu'outil implique une latence notable en raison de plusieurs appels de LLM et d'outils. L'agent actif peut appeler l'agent en tant qu'outil, qui effectuera son travail en arrière-plan. L'agent actif peut poursuivre la conversation avec l'utilisateur final pendant que l'agent en tant qu'outil travaille sur une réponse. Une fois la tâche terminée, l'agent en tant qu'outil la finalise et l'agent actif peut résumer les résultats pour l'utilisateur.
Utilisez un comportement synchrone lorsque vous souhaitez simplement réutiliser le comportement d'un agent existant sans transférer la conversation à un autre agent.
Configuration
Vous pouvez configurer un agent en tant qu'outil à l'aide du bouton de création d'outil normal situé à droite du générateur d'agents, ou en utilisant le menu contextuel Créer un agent en tant qu'outil dans la barre de titre d'un agent spécifique.
L'outil nécessite les éléments de configuration suivants :
- Agent : agent cible pour cet outil.
- Name : Nom de l'outil.
- Description : description facultative de l'outil.
- Avancé > Asynchrone : lorsque cette option est activée (par défaut), l'agent actif poursuit la session pendant que l'outil s'exécute en arrière-plan.
Il est recommandé de spécifier un modèle de texte pour l'agent utilisé comme outil lorsque votre application d'agent utilise un modèle audio :
- Cela permet des workflows plus complexes, car vous pouvez utiliser des modèles plus grands et plus lents tandis que l'agent actif utilise un modèle plus petit et plus rapide.
- Les applications d'agents audio ne vous permettent pas de remplacer le modèle de l'agent, sauf lorsque l'agent est utilisé comme outil.
Instructions
Lorsque vous rédigez des instructions pour les appels d'outils asynchrones, tenez compte des points suivants :
- Les outils asynchrones peuvent envoyer une réponse "en attente" immédiate au début du travail. Il est utile que votre agent actif gère cette réponse dans les instructions.
- Il est utile d'indiquer à l'agent qu'il travaille sur une réponse.
- Demandez à l'agent d'éviter d'appeler le même outil pendant l'attente.
- L'agent en tant qu'outil peut demander des informations supplémentaires à l'utilisateur.
Exemples d'instructions :
* You MUST acknowledge the user's request with a short, conversational
word or phrase (e.g., 'Okay', 'Got it', 'One second') prior to
calling asynchronous tools.
* For tools that execute asynchronously, ignore 'pending' results
and continue conversing with the user while waiting for the complete result.
* NEVER notify the user that a function result is 'pending'.
* Do NOT call the same tool again while waiting for a complete result
from a previous call of that same tool.
* If {@TOOL: your_agent_tool} has follow up questions for the user,
be sure to relay the answers back to the tool.
Limites
Les limites suivantes s'appliquent :
- Un agent peut appeler plusieurs agents en tant qu'outils en parallèle, mais pas le même outil en parallèle.
- Il ne sera pas possible d'attribuer l'outil à l'agent racine de l'outil.