Microsoft annonce la sortie de Visual Studio Code 1.121, avec la prise en charge des sessions d'agents distants, des options de configuration étendues pour les modèles et des aperçus Mermaid et HTML intégrés

Microsoft a publié Visual Studio Code 1.121, ajoutant la prise en charge des sessions d'agent sur une machine distante, des options de configuration des modèles utilitaires plus étendues, des optimisations du terminal pour les flux de travail pilotés par des agents, ainsi qu'une nouvelle prise en charge intégrée de l'aperçu pour les fichiers HTML et les diagrammes Mermaid.

Visual Studio Code (communément appelé VS Code) est un environnement de développement intégré développé par Microsoft pour Windows, Linux, macOS et les navigateurs Web. Il offre notamment des fonctionnalités de débogage, de mise en évidence de la syntaxe, de complétion intelligente du code, d'extraits de code, de refactorisation du code et de contrôle de version intégré avec Git. Les utilisateurs peuvent modifier le thème, les raccourcis clavier et les préférences, ainsi qu'installer des extensions qui ajoutent des fonctionnalités, notamment pour étendre ses capacités afin qu'il puisse fonctionner comme un EDI pour d'autres langages.

Microsoft a publié Visual Studio Code 1.121 le 20 mai dernier, enrichit l'éditeur de Microsoft avec des aperçus Mermaid et HTML intégrés, des sessions d'agents IA à distance et des options de configuration des modèles plus étendues. Cette mise à jour introduit également des optimisations du terminal visant à réduire la consommation de ressources et l'utilisation de jetons lors des workflows des agents.

Nom : visual studio code 1.121 1.png
Affichages : 907
Taille : 54,9 Ko

Agents distants (Aperçu)

La fenêtre « Agents » offre une prise en charge expérimentale permettant d'exécuter des sessions d'agent sur une machine distante dont vous êtes propriétaire et à laquelle vous pouvez vous connecter via SSH ou des tunnels de développement.

Nom : visual studio code 1.121 2.png
Affichages : 363
Taille : 26,8 Ko

Connexion à un ordinateur distant

Les utilisateurs peuvent connecter la fenêtre Agents à un ordinateur distant de deux manières :

  • SSH : sélectionnez l'une des entrées existantes dans ~/.ssh/config ou saisissez user@host.
  • Tunnels de développement : sélectionnez l'un des tunnels que vous avez déjà créés en exécutant la commande code tunnel sur la machine cible.

Fonctionnement

Cette fonctionnalité est similaire aux extensions de développement à distance de VS Code, mais n'est pas identique. La fenêtre Agents se connecte à l'ordinateur distant, puis télécharge et installe la CLI de VS Code (SSH) ou se connecte au serveur CLI en cours d'exécution via un tunnel de développement que vous avez lancé. Elle lance un processus léger appelé « agent host », qui héberge une nouvelle boucle d'agent basée sur le SDK Copilot.

Il est important de noter que l'hôte de l'agent distant est un processus de longue durée. Les sessions en cours continuent de s'exécuter sur le serveur distant même si le client se déconnecte ; vous pouvez donc fermer votre ordinateur portable pendant que l'agent distant continue de fonctionner.

Protocole hôte d'agent

La connexion entre la fenêtre Agents et l'hôte d'agent repose sur un nouveau protocole ouvert appelé « Agent Host Protocol » (AHP). Microsoft le développe en toute transparence sous la forme d'une spécification autonome.

Le principe de conception fondamental de l'AHP réside dans le fait qu'il permet de coordonner simultanément les sessions des agents sur plusieurs clients. C'est en cela qu'il se distingue d'autres protocoles tels que l'ACP. Un hôte d'agent gère l'état de référence, le synchronise avec chaque client connecté et ordonne toutes les modifications à l'aide de réducteurs purs.

Comme AHP est un protocole ouvert, n'importe qui peut développer un client capable de se connecter à l'hôte de l'agent de la CLI de VS Code, ou créer un hôte d'agent AHP auquel VS Code peut se connecter.

Configurer les modèles utilitaires

VS Code utilise des modèles utilitaires en arrière-plan pour les tâches liées au chat, telles que la génération de titres, de résumés et de messages de commit, les suggestions de renommage, la catégorisation des invites et la détection d'intentions. Par défaut, ces tâches utilisent les modèles utilitaires fournis par GitHub Copilot.

Les utilisateurs peuvent utiliser leurs propres modèles disponibles, y compris les modèles BYOK (Bring Your Own Key), pour les flux suivants :

  • chat.utilityModel : Remplace le modèle utilisé pour les flux utilitaires généraux.
  • chat.utilitySmallModel : Remplace le modèle utilisé pour les flux utilitaires rapides et légers. Un modèle rapide et peu coûteux est recommandé pour ce paramètre.

Ces deux paramètres utilisent la valeur par défaut s'ils ne sont pas configurés, ce qui permet de conserver les modèles utilitaires fournis par GitHub Copilot.

Diagrammes Mermaid dans l'aperçu Markdown et les Notebooks

Microsoft a intégré l'extension « Markdown Preview Mermaid Support » de Matt Bierner à VS Code sous la forme d'une nouvelle extension intégrée appelée « Mermaid Markdown Features ». Cette extension permet d'afficher les diagrammes Mermaid dans l'aperçu Markdown intégré de VS Code, dans les cellules Markdown des notebooks et dans les chats.

Les diagrammes Mermaid peuvent être créés à l'aide d'un bloc de code Mermaid dans votre Markdown :

Code markdown : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
```mermaid
flowchart LR
  Sleep[Sleep] --> Wake{Awake?}
  Wake -->|No| Sleep
  Wake -->|Hungry| Snack[Get treat]
  Wake -->|Not in in Sun?| Move[Move to sun]
  Wake -->|Human is typing| Keyboard[Sleep on keyboard]
  Snack --> Sleep
  Move --> Sleep
  Keyboard --> Sleep
```


Voici à quoi ressemble le diagramme dans l'aperçu Markdown :

Nom : visual studio code 1.121 3.png
Affichages : 113
Taille : 78,5 Ko

Les diagrammes Mermaid générés prennent également en charge le défilement et le zoom, ce qui facilite l'examen des diagrammes volumineux sans quitter l'aperçu. Les utilisateurs peuvent également cliquer avec le bouton droit sur un diagramme pour copier son code source Mermaid.

Ouverture rapide des fichiers HTML dans le navigateur intégré

Auparavant, pour prévisualiser un fichier HTML, il fallait installer une extension, ce qui constituait une étape superflue pour une opération aussi courante. Les utilisateurs peuvent désormais ouvrir facilement des fichiers HTML locaux via l'option « Ouvrir dans le navigateur intégré » en cliquant avec le bouton droit sur le fichier dans l'Explorateur de fichiers, ou en cliquant avec le bouton droit sur l'onglet de l'éditeur lorsque le fichier est déjà ouvert. Ils peuvent également sélectionner l'icône « Aperçu » dans la barre de titre de l'éditeur lorsqu'un fichier HTML est actif.

Nom : visual studio code 1.121 4.png
Affichages : 114
Taille : 41,9 Ko

Optimisations des outils du terminal

Commandes de terminal prenant en compte l'agent

Les outils en ligne de commande n'avaient aucun moyen de déterminer si une commande de terminal avait été lancée par un utilisateur ou par le flux d'agents de VS Code, ce qui signifiait que les animations de progression, les invites interactives et le formatage détaillé pouvaient bloquer ou perturber les sessions des agents.

VS Code définit désormais une variable d'environnement VSCODE_AGENT pour les commandes de terminal lancées par l'agent. Les interfaces en ligne de commande peuvent vérifier cette variable pour passer à un format de sortie lisible par la machine, désactiver les animations de progression ou ignorer les invites qui, autrement, bloqueraient la session.

Si vous gérez des scripts ou des interfaces en ligne de commande (CLI) qui adaptent déjà le comportement pour la CI ou d'autres agents, vous pouvez utiliser le même modèle pour les commandes lancées depuis Copilot Chat.

Indicateur d'exécution en arrière-plan pour les outils de terminal

Auparavant, lorsqu'une commande du terminal de chat continuait à s'exécuter après le retour de l'appel de l'outil, l'interface utilisateur de chat donnait l'impression que la commande était déjà terminée, ce qui rendait difficile de savoir si le traitement était toujours en cours.

Les appels d'outils affichent désormais le message « Running <command> in background - Show » tant que le terminal est actif. L'action « Show » vous permet d'afficher le terminal sous-jacent et d'y placer le focus. Une fois la commande terminée, l'en-tête revient à son état normal (terminée).

Cela permet de voir plus clairement quand une commande est encore en cours d'exécution en arrière-plan, notamment pour les exécutions asynchrones ou les commandes qui ont été transférées en arrière-plan après un timeout.

Nettoyage des terminaux des agents en arrière-plan

Auparavant, lorsqu'un utilisateur menait une session de chat de longue durée impliquant plusieurs commandes de terminal, des terminaux en arrière-plan s'accumulaient à la fin de chaque commande, ce qui encombrait la liste des terminaux d'entrées obsolètes et mobilisait des ressources.

VS Code ferme désormais automatiquement les terminaux en arrière-plan créés par l'agent de chat une fois la commande exécutée, tout en conservant le résultat de la commande dans l'interface utilisateur du chat. Si vous affichez un terminal en arrière-plan à l'aide de la commande « Afficher », celui-ci reste ouvert afin que vous puissiez continuer à l'inspecter ou à interagir avec lui.

Cela permet de garder les listes de terminaux bien organisées et de réduire la consommation de ressources lors des sessions s'étalant sur plusieurs tours.

Compression plus étendue pour la sortie des outils de terminal

Les commandes telles que pytest, jest, cargo test, tsc et les workflows d'installation de paquets génèrent souvent un volume important de données de progression avant d'afficher le résultat important, ce qui gaspille des jetons et complique la tâche du modèle pour trouver les informations pertinentes.

Les outils de terminal de chat compressent désormais davantage de types de sorties de commande détaillées avant de les renvoyer au modèle (paramètre : chat.tools.compressOutput.enabled). Cette couverture élargie inclut les exécuteurs de tests courants, les outils de compilation, les linters, les commandes Docker et les gestionnaires de paquets, ce qui permet de supprimer plus souvent les informations de progression répétitives et autres sorties peu utiles.

Les longues séquences de sortie sont désormais plus faciles à interpréter pour le modèle et sont moins susceptibles de gaspiller des jetons dans des sorties standardisées.

Les prompts sensibles du terminal restent dans le terminal

Les prompts de mot de passe, de phrase secrète, de code PIN ou de code de vérification dans les commandes du terminal peuvent présenter un risque : l'agent pourrait accidentellement intercepter ou rejouer des informations confidentielles s'il tentait de gérer lui-même ces prompts.

Lorsqu'une commande du terminal de chat atteint un prompt sensible, VS Code l'intercepte désormais. En mode d'autorisation par défaut, le chat affiche une boîte de dialogue de confirmation qui vous permet de basculer vers le terminal pour y saisir directement le secret. Dans les flux d'approbation automatique, VS Code annule la commande et indique au modèle de ne pas réessayer ni de demander le secret.

Cela permet d'éviter que les identifiants ne se retrouvent dans le contexte du chat et empêche l'agent de divulguer ou de reproduire accidentellement des informations sensibles.

Source : Microsoft

Et vous ?

Quel est votre avis sur le sujet ?
Que pensez-vous des nouveautés proposées par cette version ? Les trouvez-vous utiles et intéressantes ?

Voir aussi :

Microsoft annonce la disponibilité de Visual Studio Code 1.120, avec une nouvelle fenêtre « Agents », des améliorations pour les modèles BYOK et un aperçu des différences en Markdown

Microsoft annonce la sortie de Visual Studio Code 1.119, avec des améliorations en matière d'intégration entre l'agent et le navigateur, de traçage et d'utilisation des jetons

Microsoft publie Visual Studio Code 1.118 qui introduit la gestion à distance des sessions Copilot CLI, l'application Visual Studio Code Agents en préversion et l'indexation sémantique