https://retellai.com/?utm_source=discord&utm_medium=seo logo
qu'est ce qui est conseille de faire pour avoir un...
# ❓・ai-evy-support
s
@AI Evy qu'est ce qui est conseille de faire pour avoir un conversation flow plus deterministic et que les appels de tools soit bien realise et reconnus? Est ce qu'il est conseille de creer des subagents que je vais reutiliser a chaque fois dans des conversations flows comme par exemple: subagent qui va transferer l'appel a un humain, subagent qui va schedule meeting sur google calendar, subagent qui va savoir quand demander a l'auditeur de repeter/wrong number..? Ou bien il est preferable de garder pour chacun de ces cas des nodes uniquement plutot que des subagents
a
Thanks for tagging me @so16. I'll look through relevant sources and get back to you shortly.
### Answer Pour un flow plus déterministe, la logique dépend du type d'action : Transfert vers un humain : utilisez un Call Transfer Node dédié plutôt qu'un subagent — ce node existe spécifiquement pour transférer l'appel vers un numéro ou un SIP URI, et l'agent ne parle pas dans ce node lui-même (mettez un conversation node avec Skip Response avant pour dire "Let me transfer you") [(1) ]() . Scheduling / appels à des outils toujours nécessaires : pour une action qui doit s'exécuter de façon garantie à un point précis du flow (par exemple toujours vérifier une commande à l'entrée d'un node) , utilisez un Function Node — son exécution est déterministe, contrairement au subagent où c'est le LLM qui décide s'il doit appeler l'outil [(2) ]() [(1) ]() [(3) ]() . Pour intégrer Google Calendar spécifiquement via les integration tools, ceux-ci passent aussi par un function node dans le flow [(4) ]() . Détecter "repeat"/"wrong number" : ce sont des cas de dialogue conditionnel sans appel d'outil garanti — cela correspond davantage à un Conversation Node avec des transition conditions adaptées (pas de tool calling nécessaire ici) [(5) ]() [(1) ]() . Sur les subagents réutilisables : le subagent node est justement conçu pour les cas où le LLM doit décider si et quand appeler un outil selon le contexte de la conversation (ex: l'utilisateur donne un numéro de commande de façon optionnelle) [(2) ](
-flow/subagent-node) . La documentation recommande d'être explicite dans l'instruction du node sur quand utiliser chaque outil, et d'éviter d'empiler trop d'outils sur un seul subagent node car plus le LLM a de choix, plus il risque de se tromper — il vaut mieux répartir sur plusieurs subagent nodes . Règle générale de choix : "Use function nodes when you want guaranteed execution every time the flow reaches that step. Use subagent nodes when the agent should decide whether and when to call a tool based on what the user says." Donc pour votre cas : transfert humain → Call Transfer Node [(1) ]() , scheduling (si toujours exécuté à un point fixe) → Function Node [(4) ]() [(3) ]() , et repeat/wrong number → Conversation Node avec transitions [(5) ]() [(1) ]() . Les subagents sont plutôt pour des cas où l'appel d'outil est conditionnel au contexte conversationnel, pas pour des actions systématiques.
​ To learn more, see the sources I considered: [[1] Nodes and edges](https://docs.retellai.com/build/conversation-flow/node) [[2] Subagent node](https://docs.retellai.com/build/conversation-flow/subagent-node) [[3] Call a function from a conversation flow node](https://docs.retellai.com/build/conversation-flow/function-node) [[4] Integration tools in conversation flow](https://docs.retellai.com/build/conversation-flow/integration-tools) [[5] Conversation node](https://docs.retellai.com/build/conversation-flow/conversation-node) ​
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.
s
@AI Evy ecris moi pour les differentes node en anglais un (i) description qui va en une phrase expliquer a l'user quand utiliser chaque node selon la documentatiok: conversation, subagent, function, logic split, transfer call, extract variables, end call
a
Thanks for the follow-up, @so16. I'll get back to you soon.
### Answer Here's a one-sentence description for each node type, based on the documentation: - **Conversation Node**: Use it for pure multi-turn dialogue with the user when no tool calling is needed [(1) ]() [(2) ]() . - **Subagent Node**: Use it when the agent should decide whether and when to call one or more tools during dialogue, based on what the user says [(3) ]() [(2) ]() . - **Function Node**: Use it when a tool must always run deterministically at a fixed point in the flow, regardless of context [(2) ]() (see also the function node details in [(4) ]() for custom functions specifically) . - **Logic Split Node**: Use it to evaluate conditions immediately on entry and branch silently to different destinations, without the agent speaking, especially useful for splitting on dynamic variables or when you don't want to stack too many conditions on previous nodes [(5) ]() [(2) ]() . - **Call Transfer Node**: Use it whenever the agent should transfer the call to a human, another phone number, or a SIP URI — the agent doesn't speak in this node itself, so pair it with a Skip Response conversation node beforehand for a transfer line [(2) ]() . - **Extract DV Node**: Use it to extract information from the conversation so far and store it as dynamic variables on entry, rather than for dialogue . - **End Node**: Use it to end the call at a fixed po
int in the flow, optionally with a closing message spoken before hanging up [(6) ]() [(2) ]() .
Feel free to tag @AI Evy with additional questions. I also appreciate feedback, it helps me improve.