Le problème
Le MCP (Model Context Protocol) est un standard ouvert pour brancher des serveurs d'outils externes sur un assistant : un compte GitHub, une base de données, un outil de dessin. Dans LIA, tu ajoutes les tiens dans les réglages, et leurs outils rejoignent ceux de LIA.
Beaucoup de ces outils sont simples : une recherche, une réponse. D'autres s'utilisent en plusieurs temps. Sur une base de données, il faut d'abord lister les tables avant d'interroger la bonne. Un serveur de dessin demande parfois qu'on lise sa documentation avant de créer quoi que ce soit. Or, en mode Pipeline, le planificateur fixe tous les paramètres avant le premier appel. Face à ces serveurs, il en serait réduit à deviner.
Ce que je voulais
Le formulaire de chaque serveur permet de choisir son pilotage : utiliser ses outils directement, lui confier un agent dédié en Pipeline seulement ou conserver cet agent dans les deux modes. Les outils directs conviennent aux appels indépendants. Un agent dédié convient à un service dont il faut lire la documentation et les résultats avant l’appel suivant. La synthèse du formulaire explique les conséquences dans les deux modes.
Comment ça se passe
Tu demandes : « combien de commandes sont en attente dans ma base ? ». L'assistant dédié lit la documentation que propose le serveur, liste les tables, repère celle des commandes, l'interroge, puis lit le résultat. Si un appel échoue, par exemple parce qu'un paramètre manque, il lit le message d'erreur et corrige son appel. Le tout tient dans un nombre d'étapes et un temps limités. Quand le budget s'épuise, un dernier passage rédige ce qu'il a déjà obtenu. Son résultat revient ensuite dans le plan principal, et LIA t'écrit la réponse.
- Deux modèles. Les serveurs qui affichent des widgets interactifs utilisent un modèle plus capable, les autres un modèle plus rapide et moins cher. L'administrateur règle les deux dans la configuration des modèles.
- En mode ReAct, vous pouvez laisser LIA utiliser directement les outils ou conserver l’agent dédié. Les serveurs à widgets interactifs gardent leur agent.
Les garde-fous
- Tes confirmations. Les choix du compte, du serveur et de l’outil déterminent si LIA demande. Un agent dédié reçoit ton accord une fois avant sa tâche si l’un de ses outils le demanderait, puis termine cette tâche. « Ne jamais demander » est ton accord permanent explicite pour un outil ; une déclaration modifiée le suspend. Une routine doit préapprouver dans son formulaire les serveurs dont les appels s’arrêteraient sinon.
- Chaque outil garde son origine. Tes serveurs personnels et ceux de l'administrateur restent séparés. Un outil reste attaché au serveur et au compte qui l'offrent, et un nom ressemblant ne permet pas de faire passer l'outil d'un serveur pour celui d'un autre.
- Une connexion contrôlée. Un serveur personnel se joint en HTTPS, et LIA vérifie l'adresse de destination avant de s'y connecter. Tes identifiants sont chiffrés avant d'être enregistrés.
- Un coût visible. Les appels de l'assistant au modèle s'ajoutent au coût de ta demande, comptés comme le reste.
Quand l'activer, et ses limites
Choisis les outils directs pour les appels indépendants et un agent dédié lorsque la documentation ou un résultat précédent détermine l’appel suivant. Le garder en ReAct est un choix, sauf pour les serveurs à widgets. Il appelle plusieurs fois un modèle, coûte davantage et ne garantit pas la réussite ; l’administrateur peut désactiver les agents dédiés sur l’instance.
Pour approfondir : Brancher tes propres outils sur LIA avec MCP ; Pipeline ou ReAct : deux façons pour LIA de mener ta demande.
