Lab agent de code IA : utiliser opencode pour expliquer et corriger du code, et vérifier son travail

Ce lab donne à chaque élève son propre agent de code IA, opencode, à côté d’un petit programme de caisse de cafétéria avec cinq tests et un bug. L’agent peut lire le projet, répondre à des questions sur lui et le modifier, et il demande la permission avant de changer un fichier ou d’exécuter une commande.

Les réponses de l’agent viennent d’un modèle que la plateforme fait tourner sur Amazon Bedrock à Londres, choisi par la plateforme. La copie n’a aucune autre sortie vers internet, et aucune clé d’accès à un modèle ne s’y trouve jamais.

Ce que les élèves apprennent

Ce qu’est un agent de code et comment bien s’en servir : lui demander d’expliquer avant de lui demander de changer quoi que ce soit, lancer les tests avant et après, lire chaque modification avant de l’accepter, et ne jamais croire une réponse parce qu’elle a l’air sûre d’elle. Il convient à une initiation à la programmation avec des outils d’IA, ou à une séance sur les tests.

Le lancer dans votre navigateur

Le lab démarre un seul service, agent, avec le projet de la cafétéria dans /home/node/project. L’agent est installé à chaque démarrage du lab, ce qui prend environ une minute : la commande docker exec agent cat /tmp/agent/status répond ready quand il est prêt.

  1. Ouvrir la page Conteneur. Ouvrez « Créer » dans la barre et choisissez « Lancer un conteneur ». Tout le monde peut ouvrir la page, et le lab Git et le lab SQL se lancent sans compte. Tous les autres labs demandent un compte gratuit : créez-en un, connectez-vous, puis appuyez sur « Démarrer ».
  2. Trouver le lab. La carte « Laboratoires d’exemple » liste tous les exemples. Trouvez l’agent de code IA.
  3. Appuyer sur Démarrer. « Démarrer » le lance tel quel, en un clic. « Modifier le fichier d’abord » ouvre le fichier compose pour que vous puissiez le changer avant de démarrer.
  4. L’ouvrir. Sur la page du lab, appuyez sur « Ouvrir le terminal ». docker exec -w /home/node/project agent node --test lance les cinq tests, et l’un d’eux échoue. docker exec -it -w /home/node/project agent opencode ouvre l’agent, où l’élève tape ce qu’il veut faire faire.

Qui peut utiliser l’agent

Avec un compte personnel gratuit, l’agent fonctionne dans ce lab et dans celui où les élèves l’installent eux-mêmes, jusqu’à 80 crédits d’IA par jour et 300 au total, soit quelques séances. Dans un établissement, il ne fonctionne qu’une fois que l’administrateur de l’établissement a activé les agents de code dans les labs, sous « Assistance IA » dans les « Paramètres », et l’assistance IA pour la personne concernée. Chacun peut alors dépenser jusqu’à 400 crédits d’IA par jour. D’ici là, l’agent s’ouvre et indique qu’il n’a pas été activé.

Que demander aux élèves de rendre

La sortie des tests avant et après la correction, la ligne que l’agent a modifiée, et quelques phrases sur la façon dont ils ont vérifié eux-mêmes la modification. Cette dernière partie montre s’ils ont lu la modification ou s’ils l’ont simplement acceptée.

Une leçon de base sur ce lab

AI Coding Agent Basics est une petite leçon qui se fait dans ce lab. L’élève y lance les tests, demande à l’agent d’expliquer le code, le laisse corriger le bug après avoir lu la modification, puis relance les tests et la caisse pour vérifier.

Les comptes personnels gratuits l’ont dans le module Basics, qui se trouve sur l’« Accueil », chaque établissement peut la copier depuis le dossier Basics de la Bibliothèque, et un nouvel établissement l’a dans un module appelé DevOps Labs (Sample). Copiez-la dans un module à vous pour la modifier.

Le code sur GitHub

Le fichier compose n’a pas de Dockerfile : il lance l’image officielle node, figée à une version, avec un utilisateur sans privilèges, et installe opencode depuis npm, figé lui aussi, à chaque démarrage. opencode est sous licence MIT et n’est pas distribué par nous. Le projet est conservé dans un volume nommé ; l’agent ne l’est pas, car il est trop volumineux pour être sauvegardé.

En faire un travail

Indiquez dans la tâche ce qu’il faut rendre.

  1. Créer le lab. Dans votre module, ajoutez une tâche et choisissez la carte « Lab de conteneurs », puis « Dans un dépôt GitHub ». Indiquez https://github.com/mitsurutech/lab-ai-agent avec la branche main. Le fichier compose par défaut est compose.yaml. Faites d’abord un fork du dépôt si vous voulez le modifier.
  2. Publier et l’essayer. « Publier » fige le commit qui vous a été montré : un changement ultérieur dans le dépôt ne modifie donc pas un lab que vous avez déjà proposé. Démarrez d’abord votre propre copie.
  3. Le distribuer. Attribuez-le comme n’importe quelle tâche, avec une échéance si vous le souhaitez, et indiquez dans la tâche ce qu’il faut faire et ce qu’il faut rendre.
  4. Noter ce qui est rendu. Ouvrez la copie d’un élève et le travail rendu, notez-le et renvoyez-le avec un motif s’il demande un complément.

Questions fréquentes

Quel modèle répond à l’agent, et où va le code ?
Un modèle choisi par la plateforme, qui tourne sur Amazon Bedrock à Londres. Chaque étape envoie ce que l’agent a lu du projet et ce que l’élève a tapé, sans nom ni adresse e-mail, et rien n’est utilisé pour entraîner des modèles. La politique de confidentialité en dit plus.
Un élève peut-il utiliser l’agent pour autre chose ?
L’agent travaille dans la copie de l’élève et n’atteint rien d’autre que le modèle et le registre npm. Il répond à tout ce qu’on lui tape : formulez donc clairement la tâche et notez ce qui est rendu.
Pourquoi l’agent demande-t-il la permission avant de changer un fichier ?
La configuration du lab le lui impose, pour que l’élève lise chaque modification avant qu’elle soit faite. C’est l’habitude que la leçon enseigne.