Aller au contenu

Clavarder avec un agent

Ce guide montre comment travailler avec un agent dans un espace.

  1. Accédez à Espaces dans la barre latérale
  2. Cliquez sur le bouton + à côté du titre Espaces
  3. Saisissez un nom — il est obligatoire. Un nom vide est refusé ; la boîte de dialogue reste ouverte
  4. Ajoutez facultativement des agents de l’espace de travail
  5. Si l’espace de travail contient au moins un dépôt, un sélecteur de dépôts apparaît. Il commence avec tous les dépôts sélectionnés ; réduisez la sélection (y compris en désélectionnant un seul dépôt) aux dépôts pour lesquels cet espace doit provisionner des arbres de travail
  6. Confirmez

Control Center ouvre l’espace et commence à provisionner en arrière-plan un arbre de travail avec copie sur écriture pour chaque dépôt sélectionné.

Saisissez votre message dans le composeur et appuyez sur Entrée. L’agent est lancé et commence à diffuser sa réponse.

Si l’espace est encore en cours de provisionnement, votre message est mis en attente plutôt que perdu — le composeur le garde et l’envoie automatiquement dès que les arbres de travail sont prêts.

Pendant que l’agent travaille, vous voyez son tour défiler : segments de raisonnement, appels d’outils (lectures et écritures de fichiers, commandes shell) et texte de réponse, le tout dans un seul message de tour d’agent.

Pendant qu’un agent travaille, un simple texte conversationnel n’ajoute pas un nouveau tour à la file. Il devient une carte de pilotage en attente dans le bandeau au-dessus du composeur et est injecté dans l’exécution en cours à la frontière de tour suivante. Aucune notification éphémère n’apparaît — la carte est la rétroaction.

Trois éléments modifient ce comportement :

  • Un message contenant une @mention est toujours envoyé comme message, jamais comme pilotage
  • Un message commençant par une commande slash est toujours traité comme cette commande
  • Un message comportant une pièce jointe est toujours envoyé comme message — la file de pilotage n’accepte que du texte
  • Si toutes les exécutions en cours sont déjà terminées, le texte passe et est envoyé comme un message normal

Lorsqu’un agent tombe sur une action que ses garde-fous interceptent — une commande destructive, un outil privilégié —, le serveur bloque l’exécution et publie une demande d’approbation à chaque client connecté. Si vous avez cette conversation ouverte, la demande apparaît dans le clavardage, au-dessus du composeur, sous la forme de la même carte à options numérotées que celle utilisée pour ask_user (refuser, approuver, et éventuellement approuver pendant huit heures). Aucun contournement n’est possible : un agent bloqué attend une décision.

Si vous êtes ailleurs dans l’application, un panneau toujours au-dessus, dans la coquille, énumère quand même ce qui attend, de sorte que vous pouvez débloquer l’agent sans chercher l’espace. La surcouche masque une demande dès que la conversation de cet espace est à l’écran, pour que vous ne répondiez jamais deux fois à la même invite.

Aucun délai d’attente n’est imposé : un agent bloqué attend qu’une personne décide. La même demande apparaît aussi dans le bandeau d’attention de la boîte de réception et sur le client mobile.

Un agent qui a besoin d’une préférence, d’une exigence manquante ou d’une véritable bifurcation doit appeler ask_user. Écrire la question comme message de clavardage met fin au tour et vous devez relancer l’invite. L’outil affiche une carte numérotée dans la conversation — options, texte libre facultatif, ou les deux — et l’exécution attend votre réponse.

Touchez une seule option pour l’envoyer (le numéro à la fin devient une flèche au survol). Les réponses à sélection multiple et les réponses saisies utilisent Continuer (⌘↵ / Ctrl↵). Ignorer demande à l’agent de choisir une valeur par défaut raisonnable et de ne plus poser la question.

Il s’agit d’un mécanisme distinct de la carte d’approbation ci-dessus : une approbation demande « puis-je faire ceci ? », une question demande « lequel de ces choix vouliez-vous dire ? ». La question est disponible sur le harnais intégré dans tous les modes, y compris ceux en lecture seule (elle ne modifie rien), et elle n’est délibérément pas enveloppée dans une invite d’approbation — une boîte de dialogue devant une autre aboutirait à un refus par défaut, aucun approbateur n’étant connecté. Une exécution sans conversation où s’afficher ne reçoit tout simplement pas l’outil.

Pendant que des exécutions sont en cours, le bouton d’envoi du composeur devient un bouton Arrêter. Videz le composeur et appuyez dessus — cela arrête tous les agents qui s’exécutent dans cette conversation.

Il n’y a aucune commande d’arrêt dans l’en-tête de l’espace ni aucun raccourci clavier pour y arriver. Pour arrêter une seule exécution lorsque plusieurs sont en cours, ouvrez l’onglet d’activité de cette exécution — son en-tête comporte une pause/reprise et un arrêt propres à l’exécution (l’arrêt vous demande de confirmer). Observabilité → En direct énumère tous les agents en cours d’exécution dans l’espace de travail avec la même commande.

Une exécution arrêtée est marquée comme arrêtée. Envoyez un nouveau message pour la lancer de nouveau.

Saisissez / dans le composeur pour voir la liste des commandes. Voici celles qui changent le comportement de la conversation :

Commande Ce qu’elle fait
/plan Bascule l’espace en mode plan. Un /plan seul ne fait qu’armer le mode ; /plan <request> l’arme et envoie le reste comme votre message
/goal <text> Enregistre l’objectif de travail de la conversation
/loop <text> Itère sur une tâche jusqu’à ce qu’elle soit terminée
/compact Replie l’historique plus ancien dans un résumé ancré et poursuit sur le contexte compacté
/todo … Consulte et modifie la liste de tâches persistée de cette conversation

Les skills apparaissent dans la même liste sous leur propre espace de noms skill:, de sorte qu’elles n’entrent jamais en collision avec les commandes ci-dessus — une skill nommée plan ou compact reste accessible :

Commande Ce qu’elle exécute
/skill:<name> Une skill installée dans l’espace de travail ou rattachée à l’agent
/skill:<repo>:<name> Une skill fournie par l’un des dépôts extraits dans cet espace

Les skills de dépôt portent un badge indiquant le dépôt d’où elles viennent, car un nom seul ne dit pas les conventions de quel service il encode et deux dépôts peuvent chacun fournir une skill testing. Vous n’avez pas à saisir le préfixe pour en trouver une : saisir le nom de la skill seul correspond aussi aux entrées avec espace de noms.

Un agent ne porte jamais que les skills du dépôt dans lequel il travaille actuellement — voir Skills à portée de dépôt. Le composeur n’a pas cette portée : vous pouvez invoquer la skill de n’importe quel dépôt en la nommant.

/compact et /todo sont interceptées par le client et ne sont jamais conservées comme messages — une ligne /compact dans la transcription repousserait la coupure de la prochaine compaction d’un tour. /plan bascule le mode stocké de l’espace plutôt que de circuler comme texte. Aucune des trois n’est donc « un message que vous envoyez à l’agent » ; ne vous attendez pas à les voir dans l’historique.

Avant un changement complexe, basculez l’espace en mode plan avec /plan, le menu déroulant de mode dans la barre d’outils du composeur, ou Shift+Tab. L’agent fait alors ses recherches en lecture seule et livre un plan typé que vous approuvez avant que tout travail commence. Voir Utiliser le mode plan.

Vous n’avez pas besoin d’un espace par agent. Dans n’importe quel espace :

@alice can you look at the failing tests in src/auth_test.dart?

L’agent mentionné est ajouté à l’espace et lancé avec le contexte de cet espace. Voir Mentionner des agents avec @ pour savoir comment les noms sont mis en correspondance.