Découvrez les outils existants avant d'en ajouter un ; préférez un appel d'outil direct pour un travail ponctuel. custom_tool_list trouve les workflows sauvegardés. Utilisez custom_tool_create pour une séquence réutilisable nommée. Les noms commencent par user_. Décrivez son objectif précis et définissez des paramètres typés avec des noms, types, descriptions et indicateurs obligatoires. Les types pris en charge sont string, number, boolean, object et array.
Chaque étape nécessite un identifiant unique, un nom d'outil de base existant et des arguments correspondant au schéma de cet outil. Dans les arguments, {"$input":"expression"} substitue une entrée nommée. {"$step":"étape_précédente","path":"résultat"} lit le data.result d'une étape antérieure. Tout autre JSON est littéral. Les références doivent pointer vers l'arrière ; vérifiez d'abord la forme réelle du résultat. Les entrées optionnelles nécessitent des valeurs littérales fixes dans toute étape qui les exige, ou doivent être transformées en entrées obligatoires.
Exemple : paramètres [{"name":"expression","type":"string","description":"Arithmétique numérique","required":true}], étapes [{"id":"réponse","tool":"calculate","arguments":{"expression":{"$input":"expression"}}}]. Découvrez d'abord calculate, puis créez et testez avec une entrée inoffensive.
Les nouveaux outils sont immédiatement découvrables et survivent au redémarrage de l'application. Les workflows s'exécutent via le registre existant : les subventions, la mémoire désactivée/incognito, les restrictions d'édition, l'annulation et la disponibilité d'exécution s'appliquent toujours. Une étape en échec arrête l'exécution et renvoie les completed_steps ainsi que l'erreur ; inspectez les effets secondaires avant de réessayer. Ne répétez jamais aveuglément une action externe déjà effectuée. Les passerelles, autres workflows et outils de création ne peuvent pas être des étapes. Pour une nouvelle logique exécutable, créez et testez un script d'espace de travail avec les outils de fichier/terminal autorisés, puis enveloppez l'appel terminal réel ; ceci est réservé au bureau là où l'accès au terminal est disponible. Ne prétendez pas qu'une compétence ou une définition JSON crée une nouvelle capacité native. Supprimez les outils obsolètes uniquement sur demande en utilisant custom_tool_delete.