Aller au contenu
Réussir mon BTS SIO

Tape une notion, une commande ou le nom d'une épreuve.

Par exemple

Chapitre 612 minDébutant

Assistants de code et agents IA

Par Josselyn C., prof de BTS SIO. Mis à jour le .

À la fin de ce chapitre, tu sauras

  • distinguer complétion, assistant conversationnel et agent ;
  • décrire la boucle d'un agent et ses outils ;
  • régler les permissions d'un agent et relire ses changements ;
  • travailler avec un agent sans cesser d'apprendre.

3 exercices corrigés1 schéma

Un assistant de code est un outil d'IA intégré à ton éditeur ou à ton terminal qui propose, explique ou modifie du code. Un agent IA va plus loin : tu lui donnes un objectif, et il enchaîne seul les actions nécessaires (lire des fichiers, lancer des commandes, modifier le code, exécuter les tests) jusqu'à l'atteindre, en te demandant ton accord pour les actions sensibles. Ce chapitre explique comment ils fonctionnent, comment les régler, comment relire leur travail, et comment t'en servir sans cesser d'apprendre.

Trois niveaux d'aide

NiveauCe que fait l'outilQui décide de l'étape suivanteExemples
ComplétionPropose la suite de la ligne ou de la fonction pendant que tu tapesToi, à chaque touche TabLes suggestions de GitHub Copilot dans VS Code
Assistant conversationnelRépond à tes questions, explique, génère un bloc de code que tu copiesToi, à chaque messageLe chat de l'éditeur, claude.ai, ChatGPT
AgentLit le projet, modifie plusieurs fichiers, lance des commandes et les tests, corrige, recommenceLe modèle, dans les limites des permissions que tu lui donnesClaude Code, OpenAI Codex, Gemini CLI, le mode agent de GitHub Copilot ou de Cursor

Le chatbot parle, l'agent agit. Cette différence change tout côté sécurité : un agent qui peut exécuter des commandes sur ta machine a les droits de ton compte.

La boucle d'un agent

Un agent est un LLM placé dans une boucle, avec des outils : lire un fichier, chercher dans le code, modifier un fichier, lancer une commande dans le terminal, ouvrir une page Web. Le programme qui fait tourner la boucle s'appelle le harnais.

  1. Tu donnes un objectif : « Ajoute la pagination à la liste des tickets et fais passer les tests. »
  2. Le modèle choisit une action, sous forme d'appel d'outil : « lire src/routes/tickets.js ».
  3. Le harnais vérifie que l'action est permise, au besoin te demande ton accord, l'exécute, et ajoute le résultat au contexte.
  4. Le modèle lit le résultat et choisit l'action suivante : modifier le fichier, lancer npm test, lire l'erreur, corriger.
  5. La boucle s'arrête quand le modèle estime l'objectif atteint, quand il te pose une question, ou quand une limite est atteinte.
1. Objectifdonné par toi2. Le modèle décideet écrit un appel d’outil3. Permissionsautorisé, refusé, ou demandéaction sensible : ton accord4. L’outil s’exécutelire, modifier un fichier,lancer une commande5. Résultatajouté au contextedu modèleboucleobjectif atteint6. Finrésumé et diff,à relire par toiLe modèle n’écrit que des demandes d’action : c’est le harnais qui les exécute.
Un agent enchaîne décision, appel d'outil et lecture du résultat, sous le contrôle des permissions et de ta relecture finale

Les outils sont ce qui rend l'agent utile, et ce qui le rend dangereux. Le chapitre 8 montre comment un appel d'outil fonctionne au niveau de l'API.

Régler les permissions

Les agents de code proposent en général trois modes : demander l'accord pour chaque action, accepter automatiquement les modifications de fichiers mais demander pour les commandes, ou tout accepter. Applique le principe du moindre privilège : l'agent n'a que les droits nécessaires à la tâche, et rien sur ce qui ne la concerne pas.

ActionRéglage conseilléPourquoi
Lire les fichiers du projetAutoriserIndispensable, sans effet sur le système
Modifier les fichiers du projetAutoriser, si le projet est sous GitTout se relit et s'annule avec Git
Lancer les tests, le linter, la compilationAutoriserSans effet hors du projet
Installer une dépendanceDemanderRisque de paquet inventé ou malveillant (chapitre 5)
Lire .env ou un fichier de secretsInterdireLe contenu partirait dans le contexte, donc chez le fournisseur du modèle
git push, déploiement, commande réseauDemander, au cas par casEffet hors de ta machine
Supprimer des fichiers hors du projet, commandes en administrateurInterdireDégâts irréversibles possibles

Relire le diff

Ton filet de sécurité, c'est Git. Avant de lancer un agent :

  1. git status doit être propre : commite ou range ton travail en cours ;
  2. crée une branche : git switch -c pagination-tickets ;
  3. donne l'objectif, laisse l'agent travailler ;
  4. relis tout le diff : git diff, ou l'onglet des modifications de ton éditeur ;
  5. garde ce qui va, annule le reste : git restore fichier (annuler en Git).

Ce que tu cherches pendant la relecture :

  • des fichiers modifiés qui n'ont rien à voir avec la tâche ;
  • un test modifié ou supprimé pour qu'il passe, au lieu du code corrigé ;
  • une vérification désactivée, un // TODO, une exception avalée ;
  • une nouvelle dépendance ;
  • un secret, une adresse interne ou des données réelles ajoutés au code.

Donner du contexte à un agent

Un agent démarre chaque session sans rien savoir de ton projet. Les outils lisent un fichier de consignes à la racine du dépôt : AGENTS.md, un format partagé par plusieurs outils, ou CLAUDE.md pour Claude Code. Écris-y ce qu'un nouveau développeur devrait savoir le premier jour :

markdown
# Consignes pour les agents

- Application Node.js 24 + Express, base MySQL 8.4. Lancer les tests : npm test.
- Ne jamais modifier les fichiers de migration déjà appliqués (dossier migrations/).
- Toute requête SQL passe par une requête préparée (mysql2, placeholders ?).
- Ne pas lire ni modifier .env. Les variables attendues sont listées dans .env.example.
- Avant de proposer une nouvelle dépendance, demander.

Ce fichier ne remplace pas les permissions : c'est une consigne, que le modèle peut ne pas suivre. Les interdictions qui comptent se règlent dans les permissions de l'outil.

MCP : brancher des outils sur un modèle

Le Model Context Protocol (MCP) est un protocole ouvert qui standardise la façon de donner des outils et des données à un modèle. Un serveur MCP expose des outils : consulter les tickets de GLPI, interroger une base, lire la documentation interne, piloter un navigateur. Un client MCP, l'assistant ou l'agent, les découvre et peut les appeler. Proposé par Anthropic fin 2024, MCP a été confié en décembre 2025 à l'Agentic AI Foundation, une fondation hébergée par la Linux Foundation.

Pour un technicien, un serveur MCP est un logiciel comme un autre : il tourne avec des droits, il peut contenir des failles et il fait entrer dans le contexte du modèle des contenus qui peuvent porter une injection de prompt. N'installe que des serveurs MCP de source connue, avec un compte aux droits minimaux, et seulement ceux dont la tâche a besoin.

Ce que les agents font bien, et moins bien

BienMoins bien
Une modification répétitive sur vingt fichiersUne demande floue : il comble les trous à sa façon
Écrire des tests pour un code existantUn choix d'architecture ou de sécurité : il prend la solution la plus courante
Explorer un code inconnu et t'en faire le planUne tâche longue sans tests pour vérifier qu'il avance
Un script d'administration à essayer dans une VMUne opération sur un système en production
Corriger une erreur de compilation ou de linterSavoir quand s'arrêter : il peut tourner en rond et consommer des tokens

Coder avec un agent sans perdre la main

Un agent peut te faire progresser vite ou t'empêcher d'apprendre. En janvier 2026, Anthropic a publié un essai contrôlé sur 52 développeurs, surtout juniors, qui découvraient une bibliothèque Python. Le groupe aidé par l'IA a obtenu 50 % en moyenne au quiz final, contre 67 % pour le groupe qui codait à la main. Dans le groupe avec IA, ceux qui demandaient des explications ou posaient des questions de compréhension ont obtenu 65 % ou plus ; ceux qui déléguaient le code, moins de 40 %. Les sous-groupes sont petits, mais le message est clair : c'est ta façon de t'en servir qui compte.

Quelques règles qui marchent en TP :

  • Essaie d'abord seul, au moins le temps de formuler ton hypothèse. Demande ensuite.
  • Demande une explication, pas seulement une correction : « Explique pourquoi ce code plante, sans le corriger. »
  • Refuse le code que tu ne saurais pas expliquer. Demande ce qu'il fait ligne par ligne, puis réécris-le avec tes mots.
  • Fais-toi interroger : « Pose-moi trois questions pour vérifier que j'ai compris les promesses en JavaScript. »
  • Active les modes d'apprentissage quand ton outil en propose : ils guident au lieu de donner la réponse.

Le TP Découvrir un agent IA de code te fait pratiquer tout cela sur ton portfolio, et l'article BTS SIO et IA détaille ce que l'IA change pour tes études et ton futur métier.

Exercices

Exercice 1 sur 3 Régler les permissions Réussi À revoir

Chloé lance un agent sur le dépôt de l'application de tickets, avec l'objectif « Corrige le bug du tri par date et ajoute un test ». Pour chaque action, dis si elle doit être autorisée, soumise à son accord, ou interdite.

  1. Lire src/services/tickets.js.
  2. Lancer npm test.
  3. Lire .env pour « comprendre la configuration de la base ».
  4. Lancer npm install date-sorter-utils.
  5. Lancer git push origin main.
  6. Modifier tests/tickets.test.js.
Voir la réponseMasquer la réponse de l'exercice 1
  1. Autoriser : lecture dans le projet, nécessaire à la tâche.
  2. Autoriser : sans effet hors du projet, et indispensable pour vérifier.
  3. Interdire : le contenu (mots de passe, clés) entrerait dans le contexte. La structure attendue est dans .env.example.
  4. Soumettre à son accord, et vérifier le paquet : trier des dates ne demande aucune dépendance, et ce nom peut être inventé.
  5. Interdire pour cette tâche : on ne pousse pas sur main sans relecture. Chloé poussera elle-même sa branche après avoir relu.
  6. Autoriser, puisque la tâche demande un test, mais relire le diff : un test existant ne doit pas avoir été modifié pour passer.

Tu avais trouvé ?

Exercice 2 sur 3 Relire le travail d'un agent Réussi À revoir

L'agent annonce : « Le tri par date est corrigé et tous les tests passent. » Le diff montre trois fichiers modifiés : src/services/tickets.js (le tri), tests/tickets.test.js (une ligne expect modifiée dans un test existant, plus un nouveau test) et src/config/database.js (le délai de connexion passé de 5 à 60 secondes). Que fais-tu ?

Voir la réponseMasquer la réponse de l'exercice 2
  1. Lire la modification du tri et vérifier qu'elle corrige la cause du bug.
  2. Examiner la ligne expect modifiée : si l'agent a changé la valeur attendue pour que le test passe, il a peut-être cassé un comportement voulu. Chloé vérifie dans le cahier des charges quel comportement est juste ; si c'est l'ancien test qui avait raison, elle annule cette ligne avec git restore -p.
  3. Annuler la modification de database.js : elle n'a rien à voir avec la tâche, et elle peut masquer un vrai problème de connexion.
  4. Relancer npm test soi-même.
  5. Ne commiter qu'ensuite, avec un message qui décrit la correction.

Tu avais trouvé ?

Exercice 3 sur 3 Apprendre ou déléguer ? Réussi À revoir

Classe ces demandes de Yanis, en première année, entre « je progresse » et « je délègue sans apprendre ».

  1. « Écris-moi la fonction de validation du formulaire. »
  2. « Voici ma fonction de validation. Elle accepte une adresse sans @. Explique-moi pourquoi, sans me donner la correction. »
  3. « Fais le TP à ma place. »
  4. « J'ai écrit cette requête SQL avec un LEFT JOIN. Pose-moi deux questions pour vérifier que je sais pourquoi ce n'est pas un INNER JOIN. »
  5. « Le code que tu m'as donné marche. Explique-moi chaque ligne, puis je le réécris sans regarder. »
Voir la réponseMasquer la réponse de l'exercice 3
  • Je progresse : 2, 4 et 5. Yanis cherche à comprendre, se fait interroger ou reconstruit lui-même.
  • Je délègue sans apprendre : 1 et 3. La demande 1 peut devenir utile si Yanis a d'abord écrit sa propre version et compare ensuite. La 3 ne lui apprend rien, et il ne saura pas défendre ce travail à l'oral.

Tu avais trouvé ?

Chapitre terminé !

Fais les 3 exercices avant de passer à la suite : c'est en t'entraînant que tout se fixe.

chapitres
–
de série
–
du cours
–
Chapitre suivant : Appeler un LLM par API : SDK Python et OllamaRevoir le sommaire du cours