04 Fonctionnalités avancées

Agent Sessions et sub-agents

Cette leçon contient des faits datés. Dates et sources

4.4 Agent Sessions

Définition

Une Agent Session est une session de travail où Copilot agit comme un agent sur une tâche donnée.

Dans le contexte du Copilot cloud agent, GitHub explique que Copilot peut rechercher dans un repository, créer un plan d’implémentation, faire des changements sur une branche, et permettre au développeur de revoir le diff, itérer et créer une pull request quand c’est prêt.

Ne confonds pas les surfaces : une session du Copilot app est un espace de travail isolé, tandis qu’une session cloud agent travaille à distance sur une branche et peut aboutir à une pull request. Le CLI possède aussi ses propres sessions locales, reprenables avec les commandes de session.

Exemple simple

Tu ouvres une issue :

Texte
Add CSV export for monthly invoices.

Tu peux lancer une session agent pour que Copilot :

  1. comprenne l’issue ;
  2. inspecte le repository ;
  3. identifie les fichiers concernés ;
  4. crée un plan ;
  5. applique les changements ;
  6. pousse une branche ;
  7. prépare une PR.

Exemple réaliste

Issue GitHub :

Texte
Bug: Users with deactivated accounts can still request password reset emails.

Copilot cloud agent peut :

  • analyser le flow password reset ;
  • trouver le service utilisateur ;
  • identifier la condition manquante ;
  • modifier le code ;
  • ajouter un test ;
  • proposer une branche.

Mais attention :

Le résultat doit être revu comme n’importe quelle contribution.

GitHub insiste sur le fait que les pull requests produites par Copilot doivent recevoir une review aussi sérieuse que toute autre contribution.

Quand utiliser Agent Sessions ?

Utilise une Agent Session pour :

  • traiter une issue ;
  • faire une correction autonome ;
  • explorer une tâche définie ;
  • créer une branche de travail ;
  • produire une PR ;
  • itérer avec Copilot sur un changement.

Déléguer, encadrer, relire

Le cloud agent n’est pas l’Agent Mode de l’IDE. L’Agent Mode agit dans ta session locale, sous tes yeux. Le cloud agent travaille en arrière-plan, dans un environnement cloud éphémère de GitHub : il crée lui-même la branche, les commits et la pull request en brouillon, et tout reste visible dans les logs de session et l’historique de la PR.

Pour déléguer, on assigne une issue claire à Copilot, ou on démarre la tâche depuis le panneau Agents, une conversation ou une pull request sur GitHub.com (depuis le CLI, c’est /delegate, vu au chapitre 5). Pour corriger le tir, on commente la PR en mentionnant @copilot.

Texte
issue ou tâche → cloud agent → PR en brouillon → review humaine → merge
Garde-fouCe qu’il implique
DroitsSeuls les utilisateurs avec accès en écriture le déclenchent.
BrancheIl ne pousse que sur une branche dédiée (préfixe copilot/), jamais sur la branche par défaut.
Pull requestElle reste en brouillon : un humain la relit et la fusionne. Celui qui l’a demandée ne peut pas l’approuver.
CILes workflows ne démarrent pas avant cette relecture.
RéseauL’accès à Internet est restreint par un pare-feu.

Ses limites : une seule repository par tâche, une branche et une pull request par tâche, et une durée de session plafonnée (59 minutes dans la documentation actuelle).

Deux leviers l’améliorent. L’environnement : un workflow copilot-setup-steps.yml préinstalle outils et dépendances, et les instructions du dépôt lui expliquent comment construire et tester. Le contexte : il peut utiliser des outils MCP (voir 4.7) ; par défaut, le GitHub MCP server ne lui donne accès qu’au dépôt de travail.

Il consomme des AI Credits et des minutes GitHub Actions : voir les chapitres 2 et 6 pour la facturation et la gouvernance. Quant aux content exclusions, Microsoft Learn indique qu’il ne les applique pas alors que la documentation GitHub ne le précise pas : statut non établi, voir 11.3.

La GitHub Copilot app

La GitHub Copilot app est une application de bureau (macOS, Windows, Linux) conçue pour le développement piloté par des agents : on y dirige plusieurs sessions d’agent en parallèle et on suit le travail de l’issue à la pull request. Elle repose sur le runtime de Copilot CLI et se connecte directement à GitHub.

Chaque session tourne dans son propre espace de travail isolé (un git worktree avec sa branche) : plusieurs tâches avancent sans se gêner. Trois modes règlent l’autonomie : Interactive (l’agent propose, tu valides pas à pas), Plan (il présente un plan avant d’agir) et Autopilot (il avance seul). L’app complète l’IDE, le CLI et GitHub.com ; la table de 4.15 aide à choisir.

Ce qu’il faut vérifier après une Agent Session

Checklist :

  • Le diff est compréhensible.
  • Les fichiers modifiés sont cohérents.
  • Les tests sont ajoutés ou mis à jour.
  • Le comportement métier est respecté.
  • Aucun secret n’a été ajouté.
  • Les permissions restent minimales.
  • La solution ne casse pas la compatibilité.
  • La PR est relue par un humain.

Piège d’examen

Question possible :

Texte
Copilot cloud agent opened a pull request with generated code.
What should the team do before merging?

Bonne réponse :

Texte
Review the changes, run tests, validate behavior, and treat it like any other contribution.

4.5 Sub-Agents

Définition simple

Les Sub-Agents sont des agents spécialisés qui peuvent être utilisés pour des tâches particulières.

L’idée est de ne pas avoir un seul Copilot générique, mais des agents plus spécialisés selon le besoin. GitHub documente les custom agents comme des profils nommés avec leur propre prompt, leurs outils et éventuellement leurs serveurs MCP. Lorsqu’un runtime en invoque un pour une partie de la tâche, il s’exécute comme sub-agent dans un contexte isolé et renvoie son résultat à la session parente. Les instructions repository ne sont pas automatiquement héritées par tous les sub-agents.

Exemple conceptuel

Tu pourrais avoir :

Texte
Security review agent

Spécialisé pour :

  • repérer les injections ;
  • vérifier les permissions ;
  • identifier les secrets ;
  • proposer des mitigations.

Ou :

Texte
Test generation agent

Spécialisé pour :

  • générer des tests unitaires ;
  • identifier les edge cases ;
  • améliorer la couverture ;
  • respecter le framework de test du projet.

Ou :

Texte
Migration agent

Spécialisé pour :

  • moderniser du code legacy ;
  • proposer une migration progressive ;
  • limiter les régressions.

Exemple d’usage

Prompt :

Texte
Use the security-focused agent to review this authentication change.
Focus on session management, password handling, brute-force protection, and error messages.

Pourquoi c’est utile ?

Parce qu’un agent spécialisé peut mieux respecter :

  • des instructions spécifiques ;
  • un rôle précis ;
  • des outils particuliers ;
  • des conventions projet ;
  • des règles entreprise.

Attention

Même si un sub-agent est spécialisé, il n’est pas infaillible.

Il faut toujours :

  • relire ;
  • tester ;
  • valider ;
  • vérifier les règles internes ;
  • garder une review humaine.

Piège d’examen

Question possible :

Texte
A team wants an agent specialized for security reviews with specific tools and instructions.
What Copilot capability is most relevant?

Bonne réponse :

Texte
Custom agents / specialized agents with relevant instructions and tools.

À retenir pour le GH-300

  • Le Copilot cloud agent traite une issue claire à distance : branche, diff à relire, pull request.
  • Une pull request produite par Copilot se relit, se teste et se valide comme toute autre contribution : elle reste en brouillon et son demandeur ne peut pas l’approuver.
  • Les surfaces diffèrent : cloud agent distant, sessions locales du CLI, app Copilot (plusieurs sessions isolées en parallèle).
  • Un custom agent est un profil spécialisé (prompt, outils, MCP) ; appelé pour une partie de la tâche, il agit comme sub-agent, sans être infaillible.

Faits datés de cette leçon

Ces points changent avec le produit. Chacun indique quand il a été vérifié et où le contrôler.

D2 · Utiliser les fonctionnalités de GitHub Copilot · 25–30 %