# Le wrapper ## Définition Un wrapper est un logiciel ordinaire qui enveloppe une capacité de plus bas niveau — des appels HTTP bruts, une API complexe, l'analyse d'un format de fichier — derrière une interface plus simple et taillée pour un usage précis (des fonctions, une ligne de commande, une petite bibliothèque). Il n'est lié à aucun concept d'intelligence artificielle : un humain, une tâche planifiée, un autre programme ou un assistant IA qui l'invoque via un shell peuvent tous utiliser exactement le même wrapper sans qu'il sache, ni n'ait besoin de savoir, qui l'appelle. *(Schéma : une boîte « wrapper » au centre, une flèche entrante depuis plusieurs appelants possibles, une flèche sortante vers le système enveloppé.)* ## Utilité Le wrapper masque la complexité et la répétition (authentification, nouvelles tentatives, traduction des erreurs) derrière un petit nombre de fonctions bien nommées, rendant la capacité sous-jacente sûre et pratique à réutiliser à de nombreux points d'appel sans dupliquer une logique fragile à chaque fois. ## Contre-exemple Un wrapper qui avale silencieusement toute erreur (un attrape-tout qui renvoie une valeur par défaut quel que soit l'échec) est pire que l'absence de wrapper : il cache le vrai mode d'échec à tous ses appelants, transformant un problème diagnosticable en mystère. Un wrapper digne de confiance doit faire remonter des erreurs nommées et spécifiques pour chaque cas d'échec réel identifié en lisant le code ou la documentation de ce qu'il enveloppe — jamais un unique « quelque chose s'est mal passé » générique. ## Sécurité Un wrapper n'est fiable qu'à hauteur du code qu'il contient — parce qu'il se place entre l'appelant et un système réel, un wrapper qui accepte une entrée non validée et la transmet telle quelle (par exemple en construisant une URL ou une commande shell par concaténation de chaînes à partir d'une donnée fournie par l'appelant) réintroduit les risques classiques d'injection exactement au point censé les supprimer. Toute la raison d'être d'un wrapper est justement d'être l'endroit où les entrées sont validées une bonne fois, correctement. ## Combinaison possible Le wrapper est le plus souvent le véritable « moteur » derrière les deux autres sujets de ce cours — le script embarqué par un skill en est très souvent un, et les outils qu'expose un serveur MCP sont des wrappers auxquels une couche de protocole a été ajoutée par-dessus. Voir les sujets « Le skill » et « Le protocole MCP ». ## Langage de programmation conseillé et pourquoi Le langage qui offre le meilleur support natif de ce qui est enveloppé, avec une préférence marquée pour zéro ou très peu de dépendances externes quand le wrapper doit rester facile à faire confiance et à auditer — un wrapper construit uniquement sur la bibliothèque standard d'un langage (aucun paquet tiers) est bien plus facile à lire et à vérifier intégralement qu'un wrapper qui tire un arbre de dépendances que personne n'a relu.