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
| Niveau | Ce que fait l'outil | Qui décide de l'étape suivante | Exemples |
|---|---|---|---|
| Complétion | Propose la suite de la ligne ou de la fonction pendant que tu tapes | Toi, à chaque touche Tab | Les suggestions de GitHub Copilot dans VS Code |
| Assistant conversationnel | Répond à tes questions, explique, génère un bloc de code que tu copies | Toi, à chaque message | Le chat de l'éditeur, claude.ai, ChatGPT |
| Agent | Lit le projet, modifie plusieurs fichiers, lance des commandes et les tests, corrige, recommence | Le modèle, dans les limites des permissions que tu lui donnes | Claude 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.
- Tu donnes un objectif : « Ajoute la pagination à la liste des tickets et fais passer les tests. »
- Le modèle choisit une action, sous forme d'appel d'outil : « lire
src/routes/tickets.js». - 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.
- Le modèle lit le résultat et choisit l'action suivante : modifier le fichier, lancer
npm test, lire l'erreur, corriger. - 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.
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.
| Action | Réglage conseillé | Pourquoi |
|---|---|---|
| Lire les fichiers du projet | Autoriser | Indispensable, sans effet sur le système |
| Modifier les fichiers du projet | Autoriser, si le projet est sous Git | Tout se relit et s'annule avec Git |
| Lancer les tests, le linter, la compilation | Autoriser | Sans effet hors du projet |
| Installer une dépendance | Demander | Risque de paquet inventé ou malveillant (chapitre 5) |
Lire .env ou un fichier de secrets | Interdire | Le contenu partirait dans le contexte, donc chez le fournisseur du modèle |
git push, déploiement, commande réseau | Demander, au cas par cas | Effet hors de ta machine |
| Supprimer des fichiers hors du projet, commandes en administrateur | Interdire | Dégâts irréversibles possibles |
Relire le diff
Ton filet de sécurité, c'est Git. Avant de lancer un agent :
git statusdoit être propre : commite ou range ton travail en cours ;- crée une branche :
git switch -c pagination-tickets; - donne l'objectif, laisse l'agent travailler ;
- relis tout le diff :
git diff, ou l'onglet des modifications de ton éditeur ; - 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 :
# 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
| Bien | Moins bien |
|---|---|
| Une modification répétitive sur vingt fichiers | Une demande floue : il comble les trous à sa façon |
| Écrire des tests pour un code existant | Un choix d'architecture ou de sécurité : il prend la solution la plus courante |
| Explorer un code inconnu et t'en faire le plan | Une tâche longue sans tests pour vérifier qu'il avance |
| Un script d'administration à essayer dans une VM | Une opération sur un système en production |
| Corriger une erreur de compilation ou de linter | Savoir 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.
- Lire
src/services/tickets.js. - Lancer
npm test. - Lire
.envpour « comprendre la configuration de la base ». - Lancer
npm install date-sorter-utils. - Lancer
git push origin main. - Modifier
tests/tickets.test.js.
Voir la réponseMasquer la réponse de l'exercice 1
- Autoriser : lecture dans le projet, nécessaire à la tâche.
- Autoriser : sans effet hors du projet, et indispensable pour vérifier.
- Interdire : le contenu (mots de passe, clés) entrerait dans le contexte. La structure attendue est dans
.env.example. - Soumettre à son accord, et vérifier le paquet : trier des dates ne demande aucune dépendance, et ce nom peut être inventé.
- Interdire pour cette tâche : on ne pousse pas sur
mainsans relecture. Chloé poussera elle-même sa branche après avoir relu. - 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
- Lire la modification du tri et vérifier qu'elle corrige la cause du bug.
- Examiner la ligne
expectmodifié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 avecgit restore -p. - 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. - Relancer
npm testsoi-même. - 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 ».
- « Écris-moi la fonction de validation du formulaire. »
- « Voici ma fonction de validation. Elle accepte une adresse sans @. Explique-moi pourquoi, sans me donner la correction. »
- « Fais le TP à ma place. »
- « 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. »
- « 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é ?